Message ID | 2fa138b613417581eca23afd8741aaf75fbf966a.1519668832.git.robin.jarry@6wind.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Feb 26, 2018 at 07:41:48PM +0100, Robin Jarry wrote: > When libelf headers and libs are not found and CONFIG_UNWINDER_ORC is > selected, there is a make error introduced by > commit 3dd40cb320fe ("objtool: Upgrade libelf-devel warning to error for > CONFIG_ORC_UNWINDER"). > > Host headers and libs may be in a non-standard location and the check is > performed without host flags. Make sure to use host flags for the check > and for building objtool. Remove duplicate flags. > > Fixes: 3b27a0c85d70 ("objtool: Detect and warn if libelf is missing and don't break the build") > Signed-off-by: Robin Jarry <robin.jarry@6wind.com> > Cc: Josh Poimboeuf <jpoimboe@redhat.com> > Cc: Ingo Molnar <mingo@kernel.org> > --- > Makefile | 2 +- > tools/objtool/Makefile | 4 ++-- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/Makefile b/Makefile > index f7c543cebfc6..c9dc35fe0e48 100644 > --- a/Makefile > +++ b/Makefile > @@ -955,7 +955,7 @@ export mod_sign_cmd > > ifdef CONFIG_STACK_VALIDATION > has_libelf := $(call try-run,\ > - echo "int main() {}" | $(HOSTCC) -xc -o /dev/null -lelf -,1,0) > + echo "int main() {}" | $(HOSTCC) $(HOSTLDFLAGS) -xc -o /dev/null -lelf -,1,0) This should probably also have HOSTCFLAGS, since the objtool makefile uses it as well.
2018-02-27, Josh Poimboeuf: > On Mon, Feb 26, 2018 at 07:41:48PM +0100, Robin Jarry wrote: [snip] > > ifdef CONFIG_STACK_VALIDATION > > has_libelf := $(call try-run,\ > > - echo "int main() {}" | $(HOSTCC) -xc -o /dev/null -lelf -,1,0) > > + echo "int main() {}" | $(HOSTCC) $(HOSTLDFLAGS) -xc -o /dev/null -lelf -,1,0) > > This should probably also have HOSTCFLAGS, since the objtool makefile > uses it as well. I had intentionally omitted HOSTCFLAGS since the compiled code does not contain any #include statements (only -lelf). But adding them cannot hurt.
On Tue, Feb 27, 2018 at 09:55:23PM +0100, Robin Jarry wrote: > 2018-02-27, Josh Poimboeuf: > > On Mon, Feb 26, 2018 at 07:41:48PM +0100, Robin Jarry wrote: > [snip] > > > ifdef CONFIG_STACK_VALIDATION > > > has_libelf := $(call try-run,\ > > > - echo "int main() {}" | $(HOSTCC) -xc -o /dev/null -lelf -,1,0) > > > + echo "int main() {}" | $(HOSTCC) $(HOSTLDFLAGS) -xc -o /dev/null -lelf -,1,0) > > > > This should probably also have HOSTCFLAGS, since the objtool makefile > > uses it as well. > > I had intentionally omitted HOSTCFLAGS since the compiled code does not > contain any #include statements (only -lelf). But adding them cannot > hurt. Ah, right. The point of this check is to see if it can find libelf, so I guess using HOSTCFLAGS wouldn't have a point here. So it's fine the way it is.
diff --git a/Makefile b/Makefile index f7c543cebfc6..c9dc35fe0e48 100644 --- a/Makefile +++ b/Makefile @@ -955,7 +955,7 @@ export mod_sign_cmd ifdef CONFIG_STACK_VALIDATION has_libelf := $(call try-run,\ - echo "int main() {}" | $(HOSTCC) -xc -o /dev/null -lelf -,1,0) + echo "int main() {}" | $(HOSTCC) $(HOSTLDFLAGS) -xc -o /dev/null -lelf -,1,0) ifeq ($(has_libelf),1) objtool_target := tools/objtool FORCE else diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile index e6acc281dd37..4d4b810313e2 100644 --- a/tools/objtool/Makefile +++ b/tools/objtool/Makefile @@ -31,8 +31,8 @@ INCLUDES := -I$(srctree)/tools/include \ -I$(srctree)/tools/arch/$(HOSTARCH)/include/uapi \ -I$(srctree)/tools/objtool/arch/$(ARCH)/include WARNINGS := $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-packed -CFLAGS += -Wall -Werror $(WARNINGS) -fomit-frame-pointer -O2 -g $(INCLUDES) -LDFLAGS += -lelf $(LIBSUBCMD) +CFLAGS += $(HOSTCFLAGS) -Werror $(WARNINGS) -g $(INCLUDES) +LDFLAGS += $(HOSTLDFLAGS) -lelf $(LIBSUBCMD) # Allow old libelf to be used: elfshdr := $(shell echo '\#include <libelf.h>' | $(CC) $(CFLAGS) -x c -E - | grep elf_getshdr)
When libelf headers and libs are not found and CONFIG_UNWINDER_ORC is selected, there is a make error introduced by commit 3dd40cb320fe ("objtool: Upgrade libelf-devel warning to error for CONFIG_ORC_UNWINDER"). Host headers and libs may be in a non-standard location and the check is performed without host flags. Make sure to use host flags for the check and for building objtool. Remove duplicate flags. Fixes: 3b27a0c85d70 ("objtool: Detect and warn if libelf is missing and don't break the build") Signed-off-by: Robin Jarry <robin.jarry@6wind.com> Cc: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Ingo Molnar <mingo@kernel.org> --- Makefile | 2 +- tools/objtool/Makefile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)