This patch does not set the UCLIBC_ARCH variable correctly on 32 bit; it needs to be forced to i386 there instead of $(TARGET_ARCH), which is i686 on my box.
For 64 bit it's fine, because there the UCLIBC_ARCH variable needs to be x86_64 which happens to match $(TARGET_ARCH).
Here's a simple fix for the m57sli board:
--- config/platforms/m57sli.conf (revision 57) +++ config/platforms/m57sli.conf (working copy) @@ -6,8 +6,15 @@ STRIP=strip AS=as
+ifeq ($(CONFIG_TARGET_64BIT),y) +TARGET_ARCH=x86_64 +UCLIBC_ARCH=x86_64 +CFLAGS_platform = +else TARGET_ARCH=i686 -CFLAGS_platform = -m32 +UCLIBC_ARCH=i386 +CFLAGS_platform = +endif
Can you fix that for all boards?
How about this fix? Can you test the attached patch? It fixes it in uclibc.mk instead of in each individual board.
If the patch works for you, I'll send a full patch from the latest svn.
The other thing I was wondering about is why the exit -1 is dropped in buildrom-devel/bin/checkrom.sh when the image won't fit? It's nice for the build to fail explicitly if the image is too big instead of producing obscure linker errors further down the line.
The problem is that the amount that is free in the ROM is dependent on the size of the ROM, the size of LinuxBIOS, and any other payloads you have in your configuration. Thus checkrom depends on a magic number to say if it will fail or not.
Choose a platform with a ROM_SIZE smaller than 1 MB and checkrom doesn't protect you from linker errors. Choose to use a 2 MB ROM and checkrom fails even when it shouldn't.
Maybe the warning needs to be more verbose, but I really don't like the magic number test and fail.
Myles