sdk: include lib/crtsavres.o for powerpc main
authorRobert Marko <robimarko@gmail.com>
Mon, 8 Apr 2024 15:52:22 +0000 (17:52 +0200)
committerRobert Marko <robimarko@gmail.com>
Tue, 9 Apr 2024 09:13:18 +0000 (11:13 +0200)
Trying to link certain kernel modules like dahdi-linux when building with
the OpenWrt SDK will fail with:
openwrt-sdk-apm821xx-sata_gcc-13.2.0_musl.Linux-x86_64/staging_dir/toolchain-powerpc_464fp_gcc-13.2.0_musl/bin/powerpc-openwrt-linux-musl-ld: cannot find arch/powerpc/lib/crtsavres.o: No such file or directory

Previously this worked with the PowerPC SDK since we carried a hack that
was passing --save-restore-funcs to module LDFLAGS so the linker provided
the required functions automatically as without --save-restore-funcs it
doesnt do so automatically on relocatable links and as a sideffect did not
require the kernel provided crtsaves.o to link against.

Now that hack has been removed as upstream kernel now compiles crtsaves.o
by default so it can be linked against but its not included in the SDK.

So, lets include lib/crtsavres.o when SDK is generated for PowerPC.

Fixes: 99c9d8abd677 ("kernel: bump 5.15 to 5.15.148")
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/sdk/Makefile

index c57a451617333ad1457b89645bf6ac07fa2319f0..d0c0ab7a2b1e3df10f4af79be5583a82d3eb0e9f 100644 (file)
@@ -68,6 +68,10 @@ KERNEL_FILES_ARCH = \
        kernel/asm-offsets.s \
        kernel/module.lds
 
+ifeq ($(LINUX_KARCH),powerpc)
+  KERNEL_FILES_ARCH += lib/crtsavres.o
+endif
+
 KERNEL_FILES_BASE := \
        .config \
        Makefile \