world leader in high performance signal processing
Trace: » 2007r1

2007 Release 1 (2007R1 RC9) Toolchain Release

April 6th 2007

This toolchain release contains toolchains for three targets: bfin-elf, bfin-uclinux, and bfin-linux-uclibc. All are cross toolchains for Blackfin. The bfin-elf target toolchain uses newlib for C library and can be used to develop standalone applications. Both of bfin-uclinux and bfin-linux-uclibc target toolchains use uClibc for C library and can be used to develop uClinux applications. bfin-uclinux is used for FLAT binary format. bfin-linux-uclibc is used for ELF FD-PIC binary format.

This release provides two GCC versions: 4.1.2 and 3.4.6. Binutils version in this release is 2.17. GDB version in this release is 6.6.

This release contains many bug fixes and some new features. It's more stable and usable.

Known Issues

  1. elf2flt passes -q option to real.ld. --gc-sections will be ignored by ld since it cannot be used together with -q.
  2. We do not support profiling using gprof. The latest uClibc no longer supports gcc -fprofile-arcs -pg style profiling. You may use other alternatives, like OProfile.
  3. Single stepping through hardware loop does not work when there are only one instruction in the loop. It will step over the whole loop instead.
  4. When running bfin-elf-gdb, interrupting the simulated program with ^C does not work immediately. It will not take the effect until user press another key.
  5. As expected, -fstack-limit-symbol cannot be used with multithreading applications. Use -mstack-check-l1 instead.
  6. -fstack-limit-symbol cannot be used with -mfdpic. Use -mstack-check-l1 instead.
  7. -fprofile-arcs cannot be used with -mfdpic.

Changes

  1. ldrviewer is renamed to ldr-utils.
  2. Blackfin GCC now supports -mcpu=NAME option. NAME can be bf531, bf532, bf533, bf534, bf536, bf537, and bf561.
  3. bfin-elf-gcc now links with runtime libraries for hardware if -msim is not used.
  4. -i option has been removed from BuildToolChain. Target binutils libraries is always built.

Improvement since Last Release

  1. GCC 4.1 has been updated to 4.1.2.
  2. GDB has been updated to 6.6.
  3. uClibc has been updated to upstream revision 17204.
  4. BuildToolChain has new options: -l, -H, -K
    • -l LANGS: Only build specified gcc languages LANGS.
    • -H HOST: Build toolchain to run on HOST
    • -K SOURCE: Kernel Header directory
  5. Windows hosted toolchain has been largely improved.
  6. BuildToolChain now install sanitized kernel headers.
  7. GCC now generates more and better hardware loops.
  8. GCC now generates better instruction sequence for integer multiply.
  9. BuildToolChain now can calculate a default -j value for make based on /proc/cpuinfo.
  10. llrint has been implemented in uClibc.

Bug fixes

This section lists the bugs that are known to be fixed in this release. The number before the description is the bug ID in the Blackfin toolchain project tracker. Here only list the import bugs that have been fixed. For a full list, see tracker.

GCC

LD

Elf2flt

  • backport WIN32/MINGW fixes from upstream elf2flt

Build Script

Packages

  • blackfin-toolchain-07r1-9.i386.rpm
    • rpm of the pre-compiled Blackfin 2007R1 release bfin-uclinux toolchain (GCC 4.1)
  • blackfin-toolchain-gcc-3.4-addon-07r1-9.i386.rpm
    • rpm of the pre-compiled Blackfin 2007R1 release bfin-uclinux toolchain (GCC 3.4 addon. Before install this package, you need first install blackfin-toolchain-07r1-9.i386.rpm.)
  • blackfin-toolchain-elf-gcc-4.1-07r1-9.i386.rpm
    • rpm of the pre-compiled Blackfin 2007R1 release bfin-elf toolchain (GCC 4.1)
  • blackfin-toolchain-elf-gcc-3.4-addon-07r1-9.i386.rpm
    • rpm of the pre-compiled Blackfin 2007R1 release bfin-elf toolchain (GCC 3.4 addon. Before install this package, you need first install blackfin-toolchain-elf-gcc-4.1-07r1-9.i386.rpm.)
  • toolchain_releasenotes_2007R1.pdf
    • the release notes of this release

Installing

Test Results

The tests are run three times. One on the host (bfin-elf on the simulator) and the other two running on the Blackfin hardware (bfin-uclinux and bfin-linux-uclibc). For details on the testing, see how Testing the Toolchain was done.

GCC 3.4 toolchain
=== gcc Summary ===         bfin-uclinux    bfin-linux-uclibc bfin-elf
# of expected passes         24821           24815             24801
# of unexpected failures     31              31                29
# of unexpected successes    8               8                 1
# of expected failures       60              60                67
# of unresolved testcases    36              50                36
# of untested testcases      7               7                 7
# of unsupported tests       388             386               393

=== g++ Summary ===         bfin-uclinux    bfin-linux-uclibc bfin-elf
# of expected passes         9886            9879              9886
# of unexpected failures     9               9                 9
# of unexpected successes    6               6                 2
# of expected failures       64              64                68
# of unresolved testcases    14              21                14
# of unsupported tests       90              90                90

=== gdb Summary ===         bfin-uclinux    bfin-linux-uclibc bfin-elf
# of expected passes         9380            9751              9231
# of unexpected failures     169             179               22
# of expected failures       34              41                41
# of known failures          56              58                55
# of unresolved testcases    10              1                 2
# of untested testcases      12              10                10
# of unsupported tests       23              29                36

=== binutils Summary ===    bfin-uclinux    bfin-linux-uclibc bfin-elf
# of expected passes         23              35                35
# of unexpected failures     2
# of unresolved testcases    2

=== gas Summary ===         bfin-uclinux    bfin-linux-uclibc bfin-elf
# of expected passes         91              113               113
# of unexpected failures     10              10                10
# of expected failures       1               1                 1
GCC 4.1 toolchain
=== gcc Summary ===         bfin-uclinux    bfin-linux-uclibc bfin-elf
# of expected passes         36976           37005             36981
# of unexpected failures     36              18                11
# of unexpected successes    1               1                 1
# of expected failures       75              75                75
# of untested testcases      28              28                28
# of unsupported tests       371             367               375

=== g++ Summary ===         bfin-uclinux    bfin-linux-uclibc bfin-elf
# of expected passes         11912           11913             11912
# of unexpected failures     2               1                 2
# of unexpected successes    3               3                 2
# of expected failures       65              65                66
# of unsupported tests       134             134               134

=== gdb Summary ===         bfin-uclinux    bfin-linux-uclibc bfin-elf
# of expected passes         9383            9769              9233
# of unexpected failures     164             162               18
# of expected failures       34              41                41
# of known failures          58              60                57
# of unresolved testcases    10              1                 2
# of untested testcases      12              10                10
# of unsupported tests       23              29                36

=== binutils Summary ===    bfin-uclinux    bfin-linux-uclibc bfin-elf
# of expected passes         23              35                35
# of untested testcases      2
# of unresolved testcases    2

=== gas Summary ===         bfin-uclinux    bfin-linux-uclibc bfin-elf
# of expected passes         91              113               113
# of unexpected failures     10              10                10
# of expected failures       1               1                 1