Re: [PATCH v2 3/3] objtool: use global host flags for compilation

2018-02-27 Thread Josh Poimboeuf
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 Thread Josh Poimboeuf
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 Thread Robin Jarry
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 Thread Robin Jarry
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 Thread Josh Poimboeuf
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

2018-02-27 Thread Josh Poimboeuf
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

2018-02-26 Thread Robin Jarry
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



[PATCH v2 3/3] objtool: use global host flags for compilation

2018-02-26 Thread Robin Jarry
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