[Buildroot] [autobuild.buildroot.net] Build results for 2015-02-13

Waldemar Brodkorb wbx at openadk.org
Sun Mar 15 21:36:45 UTC 2015


Hi Thomas,
Thomas Petazzoni wrote,

> Dear Waldemar Brodkorb,
> 
> On Sun, 15 Feb 2015 18:30:10 +0100, Waldemar Brodkorb wrote:
> 
> > I just build a sh4 toolchain with uClibc 0.9.33.2. No issues.
> 
> [...]
> 
> > What is the exact problem?
> 
> I just tried again today, on Buildroot 2015.02 official, with the
> following defconfig:
> 
> BR2_sh=y
> BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
> BR2_TOOLCHAIN_BUILDROOT_INET_IPV6=y
> BR2_TOOLCHAIN_BUILDROOT_INET_RPC=y
> BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
> BR2_TOOLCHAIN_BUILDROOT_CXX=y
> BR2_INIT_NONE=y
> # BR2_PACKAGE_BUSYBOX is not set
> # BR2_TARGET_ROOTFS_TAR is not set
> 
> The toolchain build fails with:
> if [ ! -e /opt/br-sh4-full-2015.02/usr/bin/sh4-buildroot-linux-uclibc-cc ]; then ln -snf sh4-buildroot-linux-uclibc-gcc /opt/br-sh4-full-2015.02/usr/bin/sh4-buildroot-linux-uclibc-cc; fi
> if [ ! -e /opt/br-sh4-full-2015.02/usr/sh4-buildroot-linux-uclibc/bin/cc ]; then ln -snf gcc /opt/br-sh4-full-2015.02/usr/sh4-buildroot-linux-uclibc/bin/cc; fi
> (cd /opt/br-sh4-full-2015.02/usr/bin; for i in sh4-buildroot-linux-uclibc-*; do ln -snf $i sh4-linux${i##sh4-buildroot-linux-uclibc}; done)
> cp -dpf /opt/br-sh4-full-2015.02/usr/sh4-buildroot-linux-uclibc/lib*/libgcc_s* /opt/br-sh4-full-2015.02/usr/sh4-buildroot-linux-uclibc/sysroot/lib/
> cp: cannot stat `/opt/br-sh4-full-2015.02/usr/sh4-buildroot-linux-uclibc/lib*/libgcc_s*': No such file or directory
> make: [/opt/toolchain-build/build/host-gcc-final-4.8.4/.stamp_host_installed] Error 1 (ignored)
> cp -dpf /opt/br-sh4-full-2015.02/usr/sh4-buildroot-linux-uclibc/lib*/libgcc_s* /opt/toolchain-build/target/lib/
> cp: cannot stat `/opt/br-sh4-full-2015.02/usr/sh4-buildroot-linux-uclibc/lib*/libgcc_s*': No such file or directory
> make: [/opt/toolchain-build/build/host-gcc-final-4.8.4/.stamp_host_installed] Error 1 (ignored)
> mkdir -p /opt/toolchain-build/target/usr/lib
> for i in  libstdc++ ; do cp -dpf /opt/br-sh4-full-2015.02/usr/sh4-buildroot-linux-uclibc/lib*/${i}.a /opt/br-sh4-full-2015.02/usr/sh4-buildroot-linux-uclibc/sysroot/usr/lib/ ; done
> cp: cannot stat `/opt/br-sh4-full-2015.02/usr/sh4-buildroot-linux-uclibc/lib*/libstdc++.a': No such file or directory
> make: *** [/opt/toolchain-build/build/host-gcc-final-4.8.4/.stamp_host_installed] Error 1
> make: Leaving directory `/home/test/toolchains/build/buildroot'
> 
> It's because libgcc_s is in a directory named after the multilib
> variant, since sh4 toolchain builds are multilib, as far as I
> understand.
> 
> Any idea?

If you want to create a sh4 toolchain, which is usable to compile a
Linux Kernel you need to enable multilib support so that the
toolchain can be used to compile fpu/non-fpu code.
If you use make qemu_sh4_r2d_defconfig, then following option is
enabled:
BR2_EXTRA_GCC_CONFIG_OPTIONS="--with-multilib-list=m4,m4-nofpu"
This works fine and the result boots up fine in Qemu.

Your defconfig does not generate a multilib toolchain.
The compiler still generates
br-sh4-full-2015.02/usr/sh4-buildroot-linux-uclibc/lib/!m4/libgcc_s.so
which is not matched by your globbing in
package/gcc/gcc-final/gcc-final.mk ->
$(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libgcc_s*

The sh4 stuff was already discussed last year by you:
http://lists.busybox.net/pipermail/buildroot/2014-March/091385.html

The patch will work fine.

I think defaulting to multilib toolchain for sh4 would be a good
thing. We do not need the nofpu libgcc on the target.

best regards
 Waldemar


More information about the buildroot mailing list