From: Thomas Weißschuh Date: Sat, 4 Apr 2026 12:59:03 +0000 (+0200) Subject: selftests/nolibc: only use libgcc when really necessary X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=08b96aa962209de015de6c4a51e8cadbd1b21d0a;p=thirdparty%2Fkernel%2Flinux.git selftests/nolibc: only use libgcc when really necessary nolibc should work without libgcc to be compatible with as many toolchains as possible. Currently the functionality tested by nolibc-test does not contain any dependencies, make sure it stays this way by not linking libgcc anymore. On the ppc target GCC always emits references to '_restgpr_' functions, so keep linking libgcc there. Signed-off-by: Thomas Weißschuh Acked-by: Willy Tarreau Link: https://patch.msgid.link/20260404-nolibc-libgcc-v1-1-eb3ecfe0e176@weissschuh.net --- diff --git a/tools/testing/selftests/nolibc/Makefile.nolibc b/tools/testing/selftests/nolibc/Makefile.nolibc index 2d32cec1105fd..f30bc68470cce 100644 --- a/tools/testing/selftests/nolibc/Makefile.nolibc +++ b/tools/testing/selftests/nolibc/Makefile.nolibc @@ -232,23 +232,14 @@ ifeq ($(origin XARCH),command line) CFLAGS_XARCH = $(CFLAGS_$(XARCH)) endif +LDLIBS_ppc = $(if $(LLVM),,-lgcc) +LDLIBS = $(LDLIBS_$(XARCH)) + include Makefile.include CFLAGS ?= $(CFLAGS_NOLIBC_TEST) $(CFLAGS_XARCH) $(CFLAGS_EXTRA) LDFLAGS := -LIBGCC := -lgcc - -ifeq ($(ARCH),x86) -# Not needed on x86, probably not present for x32 -LIBGCC := -endif - -ifneq ($(LLVM),) -# Not needed for clang -LIBGCC := -endif - # Modify CFLAGS based on LLVM= include $(srctree)/tools/scripts/Makefile.include @@ -304,7 +295,7 @@ sysroot/$(ARCH)/include: nolibc-test: $(NOLIBC_TEST_SOURCES) sysroot/$(ARCH)/include $(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ \ - -nostdlib -nostdinc -static -Isysroot/$(ARCH)/include $(NOLIBC_TEST_SOURCES) $(LIBGCC) + -nostdlib -nostdinc -static -Isysroot/$(ARCH)/include $(NOLIBC_TEST_SOURCES) $(LDLIBS) libc-test: $(NOLIBC_TEST_SOURCES) $(QUIET_CC)$(HOSTCC) -o $@ $(NOLIBC_TEST_SOURCES)