Re: m68k allmodconfig build errors

From: Finn Thain
Date: Fri Jul 20 2018 - 01:17:29 EST


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,
>