[Scratchbox-users] Problems of crosstool-generated foreign toolchain

aska wu askawu at gmail.com
Tue Feb 13 05:00:40 EET 2007


Hi all,

   For some reasons, I need to integrate an arm toolchain supported
iwmmxt into scratchbox environment.

   I have built the toolchain by crosstool-0.42 via simply executing
modified demo-arm-iwmmxt.sh in i386 target of scratchoxbox.

   Flowing is my enviroment:

   OS: UBuntu 6.10
   host glibc: 2.4
   Scratchbox: 1.0.6
   i386 target of scratchbox: cs2005q3.2-glibc-i386
   arm-iwmmxt.dat of crosstool:
        KERNELCONFIG=`pwd`/arm.config
        TARGET=arm-iwmmxt-linux-gnu
        TARGET_CFLAGS="-O"
        GCC_EXTRA_CONFIG="--with-cpu=iwmmxt
--enable-cxx-flags=-mcpu=iwmmxt --disable-libmudflap --disable-libssp
--disable-libstdcxx-pch --with-float=soft"
        GLIBC_EXTRA_CONFIG="--without-fp"

   By http://www.scratchbox.org/wiki/ForeignToolchains, I setup an
target for this new toolchain and try to execute the init_tests.sh
located in
   /scratchbox/packages/tests/init/.

   Here is the output message of init_tests.sh:

   [sbox-iwmmxt: /scratchbox/packages/tests/init] > ./init_tests.sh
   Starting test: compile
   Finishing test: compile, result: OK
   Starting test: type
   /tmp/init/hello: ELF 32-bit LSB executable, ARM, version 1 (ARM),
for GNU/Linux 2.4.3, dynamically linked (uses shared libs), not
stripped
   /tmp/init/hello-static: ELF 32-bit LSB executable, ARM, version 1
(ARM), for GNU/Linux 2.4.3, statically linked, not stripped
   /tmp/init/hellocc: ELF 32-bit LSB executable, ARM, version 1 (ARM),
for GNU/Linux 2.4.3, dynamically linked (uses shared libs), not
stripped
   /tmp/init/hellocc-static: ELF 32-bit LSB executable, ARM, version 1
(ARM), for GNU/Linux 2.4.3, statically linked, not stripped
   Finishing test: type, result: OK
   Starting test: dependencies
   /tmp/init/hello
        libc.so.6 => /lib/libc.so.6 (0x00000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)
   /tmp/init/hellocc
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00000000)
        libm.so.6 => /lib/libm.so.6 (0x00000000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
        libc.so.6 => /lib/libc.so.6 (0x00000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)
   /tmp/init/hello-static
        not a dynamic executable
   /tmp/init/hellocc-static
        not a dynamic executable
   Finishing test: dependencies, result: OK
   Starting test: strip
   Finishing test: strip, result: OK
   Starting test: execute
   Hello world!
   Hello world!


   Finishing test: execute, result: ERROR
   My first question is that even the result of first two execution
seems to be ok.
   However, after directly executing "arm-iwmmxt-linux-gnu-hello"
located in "my-toolchain/tmp"
   I can't see any standard output in my console in scratchbox.
   By the means of redirect the output result of
"arm-iwmmxt-linux-gnu-hello" to the file, I find that the "Hello
world" message is saved in the file.

   The second question is why last two execution failed.
   It seems to be some problem of executing c++ program.
   Is it relative to QEMU or GLIBC?

   Best regards.


More information about the Scratchbox-users mailing list