objtool: HAVE_XXHASH test uses HOSTCFLAGS.
PATCH 1/1 objtool: HAVE_XXHASH test uses HOSTCFLAGS.
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.
--- tools/objtool/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/objtool/Makefile +1 -1
@@ -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) \
Signature · 1 line
2.53.0.473.g4a7958ca14-goog
Quoted 39 lines · HONG Yifan
Previously,
HAVE_XXHASHis 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 havexxhash.h(for hermetic builds)In this case,
HAVE_XXHASHis set to y, but when it builds objtool with HOSTCFLAGS, because the --sysroot does not containxxhash.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_XXHASHby invoking HOSTCC with HOSTCFLAGS.Signed-off-by HONG Yifan <[email protected]>--- tools/objtool/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)tools/objtool/Makefile +1
-2@@ -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) \ --
Quoted 2 lines
2.53.0.473.g4a7958ca14-goog
Sorry, I forgot to cc [email protected] as well. Adding now. The original patch is at
https://lore.kernel.org/lkml/[email protected]
Quoted 14 lines · HONG Yifan' via kernel-team
Previously,
HAVE_XXHASHis 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 havexxhash.h(for hermetic builds)In this case,
HAVE_XXHASHis set to y, but when it builds objtool with HOSTCFLAGS, because the --sysroot does not containxxhash.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>
Quoted 7 lines
| ^~~~~~~~~~To resolve the error, we test
HAVE_XXHASHby invoking HOSTCC with HOSTCFLAGS.Signed-off-by HONG Yifan <[email protected]>---
Quoted 12 lines · HONG Yifan
Previously,
HAVE_XXHASHis 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 havexxhash.h(for hermetic builds)In this case,
HAVE_XXHASHis set to y, but when it builds objtool with HOSTCFLAGS, because the --sysroot does not containxxhash.h, the following error is raised:
Quoted 8 lines
<...>/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_XXHASHby invoking HOSTCC with HOSTCFLAGS.Signed-off-by HONG Yifan <[email protected]>
Queued, thanks!
Signature · 1 line
Josh
[tip: objtool/urgent] objtool: Use HOSTCFLAGS for HAVE_XXHASH test
In reply to HONG YifanThe following commit has been merged into the objtool/urgent branch of tip:
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 <[email protected]> AuthorDate: Tue, 03 Mar 2026 01:03:39 Committer: Josh Poimboeuf <[email protected]> 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.
--- tools/objtool/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/objtool/Makefile +1 -1
@@ -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) \