From: tip-bot for Josh Poimboeuf <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: jpoimboe@redhat.com, peterz@infradead.org, hpa@zytor.com,
mingo@kernel.org, tglx@linutronix.de, sudipm.mukherjee@gmail.com,
sfr@canb.auug.org.au, linux-kernel@vger.kernel.org,
torvalds@linux-foundation.org, akpm@linux-foundation.org
Subject: [tip:core/objtool] objtool: Detect and warn if libelf is missing anddon't break the build
Date: Fri, 4 Mar 2016 03:21:38 -0800 [thread overview]
Message-ID: <tip-d3a325df8e6636d912436ef4a2d16accf3b1fe7f@git.kernel.org> (raw)
In-Reply-To: <8c27fe00face60f42e888ddb3142c97e45223165.1457026550.git.jpoimboe@redhat.com>
Commit-ID: d3a325df8e6636d912436ef4a2d16accf3b1fe7f
Gitweb: http://git.kernel.org/tip/d3a325df8e6636d912436ef4a2d16accf3b1fe7f
Author: Josh Poimboeuf <jpoimboe@redhat.com>
AuthorDate: Thu, 3 Mar 2016 11:39:30 -0600
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Fri, 4 Mar 2016 12:18:23 +0100
objtool: Detect and warn if libelf is missing anddon't break the build
With CONFIG_STACK_VALIDATION enabled, if the host system doesn't have
a development version of libelf installed, the build fails with errors
like:
elf.h:22:18: fatal error: gelf.h: No such file or directory compilation terminated.
Instead of failing to build, instead just print a warning and disable
stack validation.
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-next@vger.kernel.org
Cc: linux@roeck-us.net
Cc: live-patching@vger.kernel.org
Link: http://lkml.kernel.org/r/8c27fe00face60f42e888ddb3142c97e45223165.1457026550.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
Makefile | 13 ++++++++++++-
scripts/Makefile.build | 2 ++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 2c27a01..60b7295 100644
--- a/Makefile
+++ b/Makefile
@@ -995,8 +995,19 @@ prepare0: archprepare FORCE
# All the preparing..
prepare: prepare0 prepare-objtool
+ifdef CONFIG_STACK_VALIDATION
+ has_libelf := $(shell echo "int main() {}" | $(HOSTCC) -xc -o /dev/null -lelf - &> /dev/null && echo 1 || echo 0)
+ ifeq ($(has_libelf),1)
+ objtool_target := tools/objtool FORCE
+ else
+ $(warning "Cannot use CONFIG_STACK_VALIDATION, please install libelf-dev or elfutils-libelf-devel")
+ SKIP_STACK_VALIDATION := 1
+ export SKIP_STACK_VALIDATION
+ endif
+endif
+
PHONY += prepare-objtool
-prepare-objtool: $(if $(CONFIG_STACK_VALIDATION), tools/objtool FORCE)
+prepare-objtool: $(objtool_target)
# Generate some files
# ---------------------------------------------------------------------------
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 130a452..e1bc190 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -242,6 +242,7 @@ cmd_record_mcount = \
endif
ifdef CONFIG_STACK_VALIDATION
+ifneq ($(SKIP_STACK_VALIDATION),1)
__objtool_obj := $(objtree)/tools/objtool/objtool
@@ -260,6 +261,7 @@ objtool_obj = $(if $(patsubst y%,, \
$(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \
$(__objtool_obj))
+endif # SKIP_STACK_VALIDATION
endif # CONFIG_STACK_VALIDATION
define rule_cc_o_c
next prev parent reply other threads:[~2016-03-04 11:24 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-03 6:09 linux-next: Tree for Mar 3 Stephen Rothwell
2016-03-03 11:00 ` Sudip Mukherjee
2016-03-03 11:18 ` Sudip Mukherjee
2016-03-03 14:35 ` Josh Poimboeuf
2016-03-03 14:53 ` [PATCH] tools: Support relative directory path for 'O=' Josh Poimboeuf
2016-03-03 16:52 ` [tip:core/objtool] " tip-bot for Josh Poimboeuf
2016-03-03 17:39 ` [PATCH] objtool: Warn if libelf is missing Josh Poimboeuf
2016-03-04 11:21 ` tip-bot for Josh Poimboeuf [this message]
2016-03-05 8:24 ` [tip:core/objtool] objtool: Detect and warn if libelf is missing and don't break the build tip-bot for Josh Poimboeuf
2016-03-03 12:04 ` linux-next: Tree for Mar 3 Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-d3a325df8e6636d912436ef4a2d16accf3b1fe7f@git.kernel.org \
--to=tipbot@zytor.com \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=sfr@canb.auug.org.au \
--cc=sudipm.mukherjee@gmail.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.