On Fri, Sep 20, 2013 at 11:43:31AM +0300, Laurentiu Palcu wrote: > Hi, > > On Fri, Sep 20, 2013 at 02:45:24PM +0800, Li Zhijian wrote: > > Hi,all > > > > I got a big problem when using the cross-toolchain to compile a simple C > > program. > > This problem since 3ae71c74c71f13a390b21b4c3ead04e51aaa82b8 > > which is to upgrade the binutils from 2.22 to 2.23.1 Apparently I missed this... Make sure you checkout 0333796a6b167dd754806700d7f771dd4a74e4ab (binutils_2.23.1.bb: Correct typo in enable-targets configure option). This might be your problem.
Laurentiu > > > > what I do is as follows, any help or ideas ? > > > > I) Build my cross-toolchain > > # git clone http://git.yoctoproject.org/git/poky/.git > > # cd poky > > # git checkout 3ae71c74c71f13a390b21b4c3ead04e51aaa82b8 -b tcmode-default > > ...skip some steps... > > # bitbake meta-toolchain > > Loading cache: 100% > > |############################################################################################| > > ETA: 00:00:00 > > Loaded 1122 entries from dependency cache. > > > > Build Configuration: > > BB_VERSION = "1.17.0" > > BUILD_SYS = "x86_64-linux" > > NATIVELSBSTRING = "CentOS-6.3" > > TARGET_SYS = "x86_64-poky-linux" > > MACHINE = "qemux86-64" > > DISTRO = "poky" > > DISTRO_VERSION = "1.3+snapshot-20130912" > > TUNE_FEATURES = "m64" > > TARGET_FPU = "" > > meta > > meta-yocto > > meta-yocto-bsp = "tcmode-default:3ae71c74c71f13a390b21b4c3ead04e51aaa82b8" > > > > ..cost a long time.. > > all of the build work successfully > > > > II) Install my cross-toolchain > > # ./poky-eglibc-x86_64-x86_64-toolchain-1.3+snapshot-20130912.sh > > Enter target directory for SDK (default: /opt/poky/1.3+snapshot): > > toolchain-1.3-tcmode-default > > > > III) compile a simple C program > > # cat test.c > > int main () > > { > > printf("hello world\n"); > > return 0; > > } > > # source toolchain-1.3-tcmode-default/environment-setup-x86_64-poky-linux > > # $CC -o test test.c -L tmp/sysroots/qemux86-64/usr/lib/ -lm > Technically, for this simple program, it's enough to do: > > $CC -o test test.c > > The $CC contains the sysroot option and the linker will automatically > prefix /lib and /usr/lib with the target sysroot. So, it should be able > to compile just fine. > > The -L option just adds another search path for libraries which will be > searched before the default ones. So, it shouldn't be a problem. > > Somehow, it looks like it tries to link against the host's libraries. > > Before compiling, do a 'echo $CC' and make sure the --sysroot points to > the correct directory. > > Laurentiu > > > test.c: In function 'main': > > test.c:3:9: warning: incompatible implicit declaration of built-in function > > 'printf' [enabled by default] > > /yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/4.7.2/ld: > > skipping incompatible /lib/libc.so.6 when searching for /lib/libc.so.6 > > /yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/4.7.2/ld: > > cannot find /lib/libc.so.6 > > /yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/4.7.2/ld: > > skipping incompatible /usr/lib/libc_nonshared.a when searching for > > /usr/lib/libc_nonshared.a > > /yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/4.7.2/ld: > > cannot find /usr/lib/libc_nonshared.a > > collect2: error: ld returned 1 exit status > > > > > > #cat toolchain-1.3-tcmode-default/environment-setup-x86_64-poky-linux > > export > > PATH=/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-pokysdk-linux/usr/bin:/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-poky-linux:$PATH > > export > > PKG_CONFIG_SYSROOT_DIR=/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-poky-linux > > export > > PKG_CONFIG_PATH=/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-poky-linux/usr/lib/pkgconfig > > export > > CONFIG_SITE=/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/site-config-x86_64-poky-linux > > export CC="x86_64-poky-linux-gcc -m64 > > --sysroot=/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-poky-linux" > > export CXX="x86_64-poky-linux-g++ -m64 > > --sysroot=/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-poky-linux" > > export CPP="x86_64-poky-linux-gcc -E -m64 > > --sysroot=/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-poky-linux" > > export AS="x86_64-poky-linux-as " > > export LD="x86_64-poky-linux-ld > > --sysroot=/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-poky-linux" > > export GDB=x86_64-poky-linux-gdb > > export STRIP=x86_64-poky-linux-strip > > export RANLIB=x86_64-poky-linux-ranlib > > export OBJCOPY=x86_64-poky-linux-objcopy > > export OBJDUMP=x86_64-poky-linux-objdump > > export AR=x86_64-poky-linux-ar > > export NM=x86_64-poky-linux-nm > > export M4=m4 > > export TARGET_PREFIX=x86_64-poky-linux- > > export CONFIGURE_FLAGS="--target=x86_64-poky-linux --host=x86_64-poky-linux > > --build=x86_64-linux > > --with-libtool-sysroot=/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-poky-linux" > > export CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types" > > export CXXFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fpermissive" > > export LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed" > > export CPPFLAGS="" > > export > > OECORE_NATIVE_SYSROOT="/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-pokysdk-linux" > > export > > OECORE_TARGET_SYSROOT="/yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-poky-linux" > > export OECORE_ACLOCAL_OPTS="-I > > /yocto/fnst/lizj/build_yocto/x86-64-yocto-1.3/toolchain-1.3-tcmode-default/sysroots/x86_64-pokysdk-linux/usr/share/aclocal" > > export OECORE_DISTRO_VERSION="1.3+snapshot-20130912" > > export OECORE_SDK_VERSION="1.3+snapshot" > > > > -- > > Best regards. > > Li Zhijian (8555) > > > > > > _______________________________________________ > > yocto mailing list > > yocto@yoctoproject.org > > https://lists.yoctoproject.org/listinfo/yocto > _______________________________________________ > poky mailing list > p...@yoctoproject.org > https://lists.yoctoproject.org/listinfo/poky _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto