Re: m68k allmodconfig build errors

From: Randy Dunlap
Date: Mon Jul 23 2018 - 21:49:58 EST


On 07/19/2018 10:17 PM, Finn Thain wrote:
> 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.

Sure, that works. Thanks.

--
~Randy