New toolchain for Linux, based on gcc-4.7.2

  • We have built a new toolchain, this time with eglibc as this should result in smaller executables than with glibc while still preserving 100% compatibility to glibc.


    • binutils-2.23.1
    • gcc-4.7.2
    • eglibc-2_17
    • gdb-7.4.1


    So basically the toolchain already contains the gdbserver tool, but it is not automatically copied to the board, yet. But you can also activate the gdb package in BuildRoot (Under "Toolchain" check "Build gdb debugger for the Target" and "Copy gdb server to the Target". Also select "GDB debugger Version" as "gdb 7.4.x").


    We also activated the alternative gold linker in addition to the standard ld linker in this toolchain. Just set environment variable CTNG_LD_IS to one of the following settings:


    Code
    1. # To use the common ld linker:
    2. export CTNG_LD_IS=bfd
    3. # To use the new gold linker:
    4. export CTNG_LD_IS=gold
    5. # If CTNG_LD_IS is not set, ld is used by default


    You'll find the new toolchain on the server in the toolchain subdirectory: <!-- m --><a class="postlink" href="http://download.fs-net.de/">http://download.fs-net.de/</a><!-- m --> -> Tools-Linux -> toolchain


    • For PicoMOD6, PicoMOD7A, PicoCOM3, armStoneA8 and NetDCU14 use fs-toolchain-4.7.2-armv6-vfp.tar.bz2
    • For PicoCOM4 use fs-toolchain-4.7.2-armv4t; this should also work with all boards based on emlix Linux (e.g. NetDCU8/10, PicoMOD1, PicoCOM1/2)


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Error while compiling the Buildroot-2012.08-f+s-V2.0 with the new toolchain.

    Code
    1. /home/home/Dev/picomod7a/sources/buildroot-2012.08-f+s-V2.0/output/toolchain/gdb-7.4.1/gdb/linux-nat.h:79:18: error: field 'siginfo' has incomplete type
    2. /home/home/Dev/picomod7a/sources/buildroot-2012.08-f+s-V2.0/output/toolchain/gdb-7.4.1/gdb/arm-linux-nat.c: In function 'arm_linux_stopped_data_address':
    3. /home/home/Dev/picomod7a/sources/buildroot-2012.08-f+s-V2.0/output/toolchain/gdb-7.4.1/gdb/arm-linux-nat.c:1141:23: error: dereferencing pointer to incomplete type
    4. /home/home/Dev/picomod7a/sources/buildroot-2012.08-f+s-V2.0/output/toolchain/gdb-7.4.1/gdb/arm-linux-nat.c:1144:16: error: dereferencing pointer to incomplete type
    5. /home/home/Dev/picomod7a/sources/buildroot-2012.08-f+s-V2.0/output/toolchain/gdb-7.4.1/gdb/arm-linux-nat.c:1145:20: error: dereferencing pointer to incomplete type
    6. /home/home/Dev/picomod7a/sources/buildroot-2012.08-f+s-V2.0/output/toolchain/gdb-7.4.1/gdb/arm-linux-nat.c:1157:46: error: dereferencing pointer to incomplete type
    7. make[3]: *** [arm-linux-nat.o] Fehler 1


    Also when I disable the GDB in the buildroot configuration the compiler stops with an "incomplete type" error (but in a different file with a different type).


    I dont have the CTNG_LD_IS variable set.


    Compiling with the 4.6.3 toolchain always was working without errors.


    Thanks for advice.

  • Buildroot-2012.11 is not working because of the same problems.


    Buildroot-2013.02-rc2 is seems to work. I copied the board/f+s directory and the /config/picomod* files to the new buildroot and configured with the picomod_def_config. I get the image files and all the needed libriaries but I don't know if there are some more special changes/settings in buildroot made by F+S.


    Kind regards


    Added:


    In buildroot-2013.02-rc2 I don't get the initial console working. I see all the information while booting but the login is not running on this serial port. What buildroot version is F+S using together with the new toolchain??

  • If you just want to use gdbserver, then you can use the one that is built into the toolchain already. Just check "Toolchain -> Copy gdb server to the Target" and leave "Build gdb debugger for the Target" unchecked.


    When compiling gdb-7.4.1 there seems to be a set of patches required that replace "struct siginfo" with "siginfo_t". There also seem to be problems in some readline files. These patches are available in the crosstool-ng sources that we use to build our toolchains. This is the reason why compiling gdb-7.4.1 worked in the toolchain. So if you actually need gdb on the target, you have to apply these patches first.


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • We noticed that gcc (both official toolchain versions '4.6.3' and '4.7.2') hasn't been configured with option '--enable-libstdcxx-time=yes'. This results in some C++11 features not available, noteably std::this_thread::sleep_for and std::this_thread::sleep_until. There is an easy workaround (just defining the switch _GLIBCXX_USE_NANOSLEEP) but it would be nicer to let the compiler define this.