Re: [PATCH 2/2] objtool: use host flags to detect if libelf is missing
On Fri, Feb 23, 2018 at 05:22:55PM +0100, Robin Jarry wrote: > 2018-02-23, Josh Poimboeuf: > > Hi Robin, > > > > Did you test this? I see some issues: > > > > a) I don't see where the host_cflags variable comes from (and btw, it's > >misspelled...) > > Hi Josh, > > Shame on me... Last minute fix. I had tested this first by forcing > HOSTCC="gcc " but I found it rather dirty. As it turns > out, my patch is not better. > > > b) I don't see where objtool uses HOSTLDFLAGS. > > Indeed, I also missed this (see above). > > It looks like objtool does not use HOSTCFLAGS nor HOSTLDFLAGS (defined > in top Makefile). Do you see a reason why? Maybe it would be a good idea > to share these flags (adding some specific ones for objtool, if needed). > > What do you think? Yeah, I think it would be a good idea for objtool to use HOSTCC, HOSTCFLAGS, and HOSTLDFLAGS. -- Josh
Re: [PATCH 2/2] objtool: use host flags to detect if libelf is missing
2018-02-23, Josh Poimboeuf: > Hi Robin, > > Did you test this? I see some issues: > > a) I don't see where the host_cflags variable comes from (and btw, it's >misspelled...) Hi Josh, Shame on me... Last minute fix. I had tested this first by forcing HOSTCC="gcc " but I found it rather dirty. As it turns out, my patch is not better. > b) I don't see where objtool uses HOSTLDFLAGS. Indeed, I also missed this (see above). It looks like objtool does not use HOSTCFLAGS nor HOSTLDFLAGS (defined in top Makefile). Do you see a reason why? Maybe it would be a good idea to share these flags (adding some specific ones for objtool, if needed). What do you think? -- Robin
Re: [PATCH 2/2] objtool: use host flags to detect if libelf is missing
On Fri, Feb 23, 2018 at 03:22:15PM +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 > (they will be used later when building objtool anyway). > > 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 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index e9609319d2b8..4e8c667b9f3f 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) $(host_clfags) $(HOSTLDFLAGS) > -xc -o /dev/null -lelf -,1,0) >ifeq ($(has_libelf),1) > objtool_target := tools/objtool FORCE >else > -- > 2.11.0 > Hi Robin, Did you test this? I see some issues: a) I don't see where the host_cflags variable comes from (and btw, it's misspelled...) b) I don't see where objtool uses HOSTLDFLAGS. -- Josh
[PATCH 2/2] objtool: use host flags to detect if libelf is missing
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 (they will be used later when building objtool anyway). 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 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e9609319d2b8..4e8c667b9f3f 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) $(host_clfags) $(HOSTLDFLAGS) -xc -o /dev/null -lelf -,1,0) ifeq ($(has_libelf),1) objtool_target := tools/objtool FORCE else -- 2.11.0