Re: [PATCH v2 3/3] objtool: use global host flags for compilation
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. -- Josh
Re: [PATCH v2 3/3] objtool: use global host flags for compilation
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. -- Josh
Re: [PATCH v2 3/3] objtool: use global host flags for compilation
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. -- Robin
Re: [PATCH v2 3/3] objtool: use global host flags for compilation
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. -- Robin
Re: [PATCH v2 3/3] objtool: use global host flags for compilation
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> Cc: Josh Poimboeuf > Cc: Ingo Molnar > --- > 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. -- Josh
Re: [PATCH v2 3/3] objtool: use global host flags for compilation
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 > Cc: Josh Poimboeuf > Cc: Ingo Molnar > --- > 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. -- Josh
[PATCH v2 3/3] objtool: use global host flags for compilation
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 JarryCc: Josh Poimboeuf Cc: Ingo Molnar --- 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) 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 ' | $(CC) $(CFLAGS) -x c -E - | grep elf_getshdr) -- 2.11.0
[PATCH v2 3/3] objtool: use global host flags for compilation
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 Cc: Josh Poimboeuf Cc: Ingo Molnar --- 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) 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 ' | $(CC) $(CFLAGS) -x c -E - | grep elf_getshdr) -- 2.11.0