Re: [PATCH 2/2] objtool: use host flags to detect if libelf is missing

From: Josh Poimboeuf
Date: Fri Feb 23 2018 - 10:37:32 EST


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 <robin.jarry@xxxxxxxxx>
> Cc: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> ---
> 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