On Thu, 19 Jul 2018, Randy Dunlap wrote:
Hi Geert, I am seeing a few errors when cross-building m68k on x86_64, using the toolchain at https://mirrors.edge.kernel.org/pub/tools/crosstool/ (thanks, Arnd). (so this is gcc 8.1.0) block/partitions/ldm.o: In function `ldm_partition': ldm.c:(.text+0x1900): undefined reference to `strcmp' ldm.c:(.text+0x1964): undefined reference to `strcmp' drivers/rtc/rtc-proc.o: In function `is_rtc_hctosys': rtc-proc.c:(.text+0x290): undefined reference to `strcmp' drivers/watchdog/watchdog_pretimeout.o: In function `watchdog_register_governor': (.text+0x142): undefined reference to `strcmp' Adding #include <linux/string.h> does not help. Is this a toolchain problem or drivers or something else?
This gcc build was apparently configured like so: /home/arnd/git/gcc/configure --target=m68k-linux --enable-targets=all --prefix=/home/arnd/cross/x86_64/gcc-8.1.0-nolibc/m68k-linux --enable-languages=c --without-headers --disable-bootstrap --disable-nls --disable-threads --disable-shared --disable-libmudflap --disable-libssp --disable-libgomp --disable-decimal-float --disable-libquadmath --disable-libatomic --disable-libcc1 --disable-libmpx --enable-checking=release In my own cross toolchain builds strcmp comes from glibc but this toolchain has no libc at all.
help?
Linux will use the strcmp in lib/string.c unless __HAVE_ARCH_STRCMP is defined in the arch headers. Grep suggests that m68k, mips, x86, xtensa, arc, sh, arm64, s390 all define that macro. But maybe you could just patch out that definition for build testing. --
thanks,
-- To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html