tools/objtool/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Previously, HAVE_XXHASH is tested by invoking HOSTCC without HOSTCFLAGS.
Consider the following scenario:
- The host machine has libxxhash installed
- We build the kernel with HOSTCFLAGS containing a --sysroot that does
not have xxhash.h (for hermetic builds)
In this case, HAVE_XXHASH is set to y, but when it builds objtool with
HOSTCFLAGS, because the --sysroot does not contain xxhash.h, the
following error is raised:
<...>/common/tools/objtool/include/objtool/checksum_types.h:12:10: fatal error: 'xxhash.h' file not found
12 | #include <xxhash.h>
| ^~~~~~~~~~
To resolve the error, we test HAVE_XXHASH by invoking HOSTCC with
HOSTCFLAGS.
Signed-off-by: HONG Yifan <elsk@google.com>
---
tools/objtool/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile
index 6964175abdfd..b8b8529f8ea9 100644
--- a/tools/objtool/Makefile
+++ b/tools/objtool/Makefile
@@ -13,7 +13,7 @@ endif
ifeq ($(ARCH_HAS_KLP),y)
HAVE_XXHASH = $(shell printf "$(pound)include <xxhash.h>\nXXH3_state_t *state;int main() {}" | \
- $(HOSTCC) -xc - -o /dev/null -lxxhash 2> /dev/null && echo y || echo n)
+ $(HOSTCC) $(HOSTCFLAGS) -xc - -o /dev/null -lxxhash 2> /dev/null && echo y || echo n)
ifeq ($(HAVE_XXHASH),y)
BUILD_KLP := y
LIBXXHASH_CFLAGS := $(shell $(HOSTPKG_CONFIG) libxxhash --cflags 2>/dev/null) \
--
2.53.0.473.g4a7958ca14-goog
On Tue, Mar 03, 2026 at 01:03:39AM +0000, HONG Yifan wrote: > Previously, HAVE_XXHASH is tested by invoking HOSTCC without HOSTCFLAGS. > > Consider the following scenario: > > - The host machine has libxxhash installed > - We build the kernel with HOSTCFLAGS containing a --sysroot that does > not have xxhash.h (for hermetic builds) > > In this case, HAVE_XXHASH is set to y, but when it builds objtool with > HOSTCFLAGS, because the --sysroot does not contain xxhash.h, the > following error is raised: > > <...>/common/tools/objtool/include/objtool/checksum_types.h:12:10: fatal error: 'xxhash.h' file not found > 12 | #include <xxhash.h> > | ^~~~~~~~~~ > > To resolve the error, we test HAVE_XXHASH by invoking HOSTCC with > HOSTCFLAGS. > > Signed-off-by: HONG Yifan <elsk@google.com> Queued, thanks! -- Josh
On Tue, Mar 03, 2026 at 01:03:39AM +0000, 'HONG Yifan' via kernel-team wrote: > Previously, HAVE_XXHASH is tested by invoking HOSTCC without HOSTCFLAGS. > > Consider the following scenario: > > - The host machine has libxxhash installed > - We build the kernel with HOSTCFLAGS containing a --sysroot that does > not have xxhash.h (for hermetic builds) > > In this case, HAVE_XXHASH is set to y, but when it builds objtool with > HOSTCFLAGS, because the --sysroot does not contain xxhash.h, the > following error is raised: > > <...>/common/tools/objtool/include/objtool/checksum_types.h:12:10: fatal error: 'xxhash.h' file not found > 12 | #include <xxhash.h> > | ^~~~~~~~~~ > > To resolve the error, we test HAVE_XXHASH by invoking HOSTCC with > HOSTCFLAGS. > > Signed-off-by: HONG Yifan <elsk@google.com> > --- Reviewed-by: Carlos Llamas <cmllamas@google.com>
On Mon, Mar 2, 2026 at 5:03 PM HONG Yifan <elsk@google.com> wrote:
>
> Previously, HAVE_XXHASH is tested by invoking HOSTCC without HOSTCFLAGS.
>
> Consider the following scenario:
>
> - The host machine has libxxhash installed
> - We build the kernel with HOSTCFLAGS containing a --sysroot that does
> not have xxhash.h (for hermetic builds)
>
> In this case, HAVE_XXHASH is set to y, but when it builds objtool with
> HOSTCFLAGS, because the --sysroot does not contain xxhash.h, the
> following error is raised:
>
> <...>/common/tools/objtool/include/objtool/checksum_types.h:12:10: fatal error: 'xxhash.h' file not found
> 12 | #include <xxhash.h>
> | ^~~~~~~~~~
>
> To resolve the error, we test HAVE_XXHASH by invoking HOSTCC with
> HOSTCFLAGS.
>
> Signed-off-by: HONG Yifan <elsk@google.com>
> ---
> tools/objtool/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile
> index 6964175abdfd..b8b8529f8ea9 100644
> --- a/tools/objtool/Makefile
> +++ b/tools/objtool/Makefile
> @@ -13,7 +13,7 @@ endif
>
> ifeq ($(ARCH_HAS_KLP),y)
> HAVE_XXHASH = $(shell printf "$(pound)include <xxhash.h>\nXXH3_state_t *state;int main() {}" | \
> - $(HOSTCC) -xc - -o /dev/null -lxxhash 2> /dev/null && echo y || echo n)
> + $(HOSTCC) $(HOSTCFLAGS) -xc - -o /dev/null -lxxhash 2> /dev/null && echo y || echo n)
> ifeq ($(HAVE_XXHASH),y)
> BUILD_KLP := y
> LIBXXHASH_CFLAGS := $(shell $(HOSTPKG_CONFIG) libxxhash --cflags 2>/dev/null) \
> --
> 2.53.0.473.g4a7958ca14-goog
>
Sorry, I forgot to cc linux-kbuild@vger.kernel.org as well. Adding
now. The original patch is at
https://lore.kernel.org/lkml/20260303010340.306164-1-elsk@google.com
The following commit has been merged into the objtool/urgent branch of tip:
Commit-ID: 32234049107d012703d50547e815f198f147968b
Gitweb: https://git.kernel.org/tip/32234049107d012703d50547e815f198f147968b
Author: HONG Yifan <elsk@google.com>
AuthorDate: Tue, 03 Mar 2026 01:03:39
Committer: Josh Poimboeuf <jpoimboe@kernel.org>
CommitterDate: Fri, 06 Mar 2026 07:48:41 -08:00
objtool: Use HOSTCFLAGS for HAVE_XXHASH test
Previously, HAVE_XXHASH is tested by invoking HOSTCC without HOSTCFLAGS.
Consider the following scenario:
- The host machine has libxxhash installed
- We build the kernel with HOSTCFLAGS containing a --sysroot that does
not have xxhash.h (for hermetic builds)
In this case, HAVE_XXHASH is set to y, but when it builds objtool with
HOSTCFLAGS, because the --sysroot does not contain xxhash.h, the
following error is raised:
<...>/common/tools/objtool/include/objtool/checksum_types.h:12:10: fatal error: 'xxhash.h' file not found
12 | #include <xxhash.h>
| ^~~~~~~~~~
To resolve the error, we test HAVE_XXHASH by invoking HOSTCC with
HOSTCFLAGS.
Signed-off-by: HONG Yifan <elsk@google.com>
Reviewed-by: Carlos Llamas <cmllamas@google.com>
Link: https://patch.msgid.link/20260303010340.306164-1-elsk@google.com
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
tools/objtool/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile
index 6964175..b8b8529 100644
--- a/tools/objtool/Makefile
+++ b/tools/objtool/Makefile
@@ -13,7 +13,7 @@ endif
ifeq ($(ARCH_HAS_KLP),y)
HAVE_XXHASH = $(shell printf "$(pound)include <xxhash.h>\nXXH3_state_t *state;int main() {}" | \
- $(HOSTCC) -xc - -o /dev/null -lxxhash 2> /dev/null && echo y || echo n)
+ $(HOSTCC) $(HOSTCFLAGS) -xc - -o /dev/null -lxxhash 2> /dev/null && echo y || echo n)
ifeq ($(HAVE_XXHASH),y)
BUILD_KLP := y
LIBXXHASH_CFLAGS := $(shell $(HOSTPKG_CONFIG) libxxhash --cflags 2>/dev/null) \
© 2016 - 2026 Red Hat, Inc.