Testing Env: Host: Ubuntu 10.10 x86_64 Kernel: 2.6.35-23-generic With the arm sdk toolchain from autobuilder, http://autobuilder.pokylinux.org/milestone/CURRENT/toolchain/x86_64/poky-eglibc-x86_64-arm-toolchain-sdk-0.9+snapshot-20101219.tar.bz2 , it build c program failed. ################### # sudo tar xjvf poky-eglibc-x86_64-arm-toolchain-sdk-0.9+snapshot-20101219.tar.bz2 -C / # source /opt/poky/0.9+snapshot-20101219/environment-setup-armv5te-poky-linux-gnueabi # which ${CC} /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc # ${CC} test.c -o test as: unrecognized option '-mfloat-abi=soft' ################### Look like it can not find the cross tool 'as', and use the host's 'as' instead. There are incorrect sysmbolic links in directory /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.5.1/ ################## #ls -l /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.5.1/ lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 ar -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 as -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm -rwxr-xr-x 1 1006 users 10387653 2010-12-20 01:07 cc1 -rwxr-xr-x 1 1006 users 11216778 2010-12-20 01:07 cc1plus -rwxr-xr-x 1 1006 users 157250 2010-12-20 01:07 collect2 lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 cpp -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 g77 -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 gcc -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 gfortran -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 ld -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm -rwxr-xr-x 1 1006 users 9802170 2010-12-20 01:07 lto1 -rwxr-xr-x 1 1006 users 36747 2010-12-20 01:07 lto-wrapper lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 nm -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 objcopy -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 objdump -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 ranlib -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm lrwxrwxrwx 1 1006 users 100 2010-12-20 17:09 strip -> /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm #################### 'ar' should be linked to /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-poky-linux-gnueabi-ar When I modified the symbolic link manually, it can build successfully.
Same issue in poky-eglibc-i586-arm-toolchain-sdk-0.9+snapshot-20101219.tar.bz2 ################################ $ls -l /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.5.1 lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 ar -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 as -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p -rwxr-xr-x 1 1006 users 9295162 2010-12-19 23:20 cc1 -rwxr-xr-x 1 1006 users 10000645 2010-12-19 23:20 cc1plus -rwxr-xr-x 1 1006 users 123242 2010-12-19 23:20 collect2 lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 cpp -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 g77 -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 gcc -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 gfortran -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 ld -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p -rwxr-xr-x 1 1006 users 8796014 2010-12-19 23:20 lto1 -rwxr-xr-x 1 1006 users 27586 2010-12-19 23:20 lto-wrapper lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 nm -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 objcopy -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 objdump -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 ranlib -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p lrwxrwxrwx 1 1006 users 100 2010-12-20 17:32 strip -> /opt/poky/0.9+snapshot-20101219/sysroots/i586-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-p ###############################
This also happened on ppc toolchain(test env just like discription of yi zhao). Error met when run "${CC} test.c -o test": as: unrecognized option '-mppc'
This issue also occurs on mips-toolchain. The symbolic links are wrong under path /opt/poky/0.9+snapshot-20101219/sysroots/x86_64-pokysdk-linux/usr/libexec/mips-poky-linux/gcc/mips-poky-linux/4.5.1.
The pathnames are truncated at exactly 100 characters which is a limitation of tar under certain circumstances. Inspecting the .ipk files, they're correct there but when extracted by opkg during the rootfs creation process, they are truncated. This is probably an issue with the deb_extract() which calls extract_archive() in libbb in opkg. libbb in opkg is a very old version of libbb from busybox. There is no equivalent function in modern busybox that I can immediately see. Somehow, posix style tar files need to become supported by opkg to fix this bug.
We need this fix from opkg: http://code.google.com/p/opkg/source/detail?spec=svn588&r=544
This should be fixed in http://git.pokylinux.org/cgit.cgi/poky/commit/?id=b1a2255b2d7f72ec2a9a196bfe5fc922e684446b. Wasn't a simple problem and a straight update of opkg didn't solve the problem, see the commit for more info.
With the arm sdk toolchain from autobuilder, http://autobuilder.pokylinux.org/nightly/20101225-1/toolchain/x86_64/poky-eglibc-x86_64-arm-toolchain-sdk-0.9+snapshot-20101227.tar.bz2, there is no this issue. But g77 and gfortran are empty sysmbolic links, since there are not arm-poky-linux-gnueabi-g77 and arm-poky-linux-gnueabi-gfortran. Do we need to remove these? #################### g77 -> /opt/poky/0.9+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-poky-linux-gnueabi-g77 gfortran -> /opt/poky/0.9+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-poky-linux-gnueabi-gfortran ####################
VERIFIED it.