Hi Thomas!
On Sun, Aug 17, 2025 at 10:30:52AM +0200, Thomas Weißschuh wrote:
Hi Willy,
On 2025-07-21 04:56:27+0200, Willy Tarreau wrote:
On Sat, Jul 19, 2025 at 05:38:28PM +0200, Thomas Weißschuh wrote:
The toplevel Makefile is capable of calculating CC from CROSS_COMPILE and/or ARCH.
Stop passing the unnecessary variable.
(...)
# Execute the toplevel kernel Makefile -KBUILD_MAKE = $(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) +KBUILD_MAKE = $(MAKE) -C $(srctree) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE)
Here the goal was not to help the toplevel Makefile figure CC, but rather to permit the user to override it, and it's also listed in "make help", and even used in cc-option.
I understnad that you're trying to avoid forcing CC to clang when building, but in this case, what will CROSS_COMPILE contain ? My guess is that you intend to make CROSS_COMPILE point to the gcc-based toolchain, and have CC point to clang for userland only. Is this the case ?
Correct.
I think I'd be fine with this, but then we need to make it explicit in the help message and fix the current one, possibly just with this:
- @echo " nolibc-test build the executable (uses $$CC and $$CROSS_COMPILE)"
- @echo " nolibc-test build the executable (uses $$CC)"
I don't think this is correct. $CC itself depends on $CROSS_COMPILE through tools/scripts/Makefile.include.
I don't understand what you mean by "depends on" here. CC defaults to ${CROSS_COMPILE}gcc and may override it if set. So if one sets CC, CROSS_COMPILE will not be used for it. Or maybe we could change it to this to indicate a precedence if that's the idea you want to convey ?
- @echo " nolibc-test build the executable (uses $$CC and $$CROSS_COMPILE)" + @echo " nolibc-test build the executable (uses $$CC or $$CROSS_COMPILE)"
Willy