GNU Toolchain for ARC Processors, 2016.09
This is release 2016.09 release of the GNU Toolchain for DesignWare ARC Processors.
A list of useful how-to instructions can be found on the GNU Toolchain for DesignWare ARC Processors Documentation wiki. GNU Documentation PDF files can be found in share/doc directory of installed toolchain. Eclipse IDE for GNU Toolchain for ARC Processors Documentation can be found on the GNU IDE wiki .
Toolchain and IDE Components Versions
- Binutils 2.27+ (upstream commit decf5bd and ARC patches)
- GCC 6.2.1 (upstream commit e061fbe and ARC patches)
- GDB 7.12 (upstream commit 5f8cf6c and ARC patches)
- newlib 2.4 (upstream commit e6413b0 and ARC patches)
- uclibc-ng 1.0.17 (plus few ARC patches)
- Eclipse Mars (4.5.1) with CDT 8.8.0
- OpenOCD 0.9+ upstream commit 30203b3d8b, with ARC support.
This release of GNU toolchain and IDE is supported by CGEN IPlib (TCF
generator) version 1.0.53 and later.
New Features and Enhancements
- Toolchain build scripts
- Use GNU FTP server to download GMP, MPFR and MPC, update to latest
versions of those libraries and download .tar.xz files of GMP and MPFR.
- Use GNU FTP server to download GMP, MPFR and MPC, update to latest
- GCC
- Major compiler upgrade from gcc 4.8.5 in previous release to gcc 6.2.1 in this release
- Support for new version of Intel's QuarkSE microcontroller via new mcpu option "quarkse2_em"
- Support -fstack-protector and -fstack-protector-all (uclibc toolchain only)
- Support for profiling using gmon for elf32 toolchain (newlib)
- Remove support for -mabi option. Now GCC always generates function calls
compatible with MetaWare compiler. - Avoid unnecessary dependency of libgcc on newlib.
- Binutils
- Revamped implementation of Position Independent Code (PIC) and Position Independent Executable (PIE)
for much improved and robust support. - Linux security feature: All constant value global symbols which end up as dynamic relocations are now
placed in .data.rel.ro sections and resolved by the dynamic linker and set as read-only.
- Revamped implementation of Position Independent Code (PIC) and Position Independent Executable (PIE)
- GDB
- Support multi-target GDB in ARC code. GDB for baremetal targets now can
debug Linux targets as well.
- Support multi-target GDB in ARC code. GDB for baremetal targets now can
- uClibc
- Migrated to uClibc-ng
- OpenOCD
- Add support for DCCM version 4.
- CGEN
- Removed formal dependency on CGEN repository (no longer in use).
- IDE
- Migrated to use DSF instead of obsolete CDT for debugging, which brings
in multiple usability enhancements. - Updated to latest version of TerminalView plugins.
- Detect if projects has been created with an older version of IDE and show
user a warning that there could be compatibility issues. - Removed support for -mabi option that has been removed from ARC GCC.
- Migrated to use DSF instead of obsolete CDT for debugging, which brings
Bugs Fixed in This Release
| Number | Project | Title |
|---|---|---|
| 9001023599 | Assembler | Assembler doesn't work for no-code-density CPUs |
| 9001029778 | Assembler | GNU binutils disassembler decodes ARC EM DSP instructions incorrectly |
| 9001048162 | Assembler | disassembly_info.insn_type is invalid for conditional branches/jumps |
| 9001048168 | Assembler | branch_delay_insns has invalid value for BRcc reg-reg instructions |
| 9001049308 | Assembler | Assembler doesn't accept valid LEAVE_S mnemonic |
| 9001056928 | Assembler | arc-linux-gcc fails to build libcap-ng-0.7.7 in buildroot |
| 9001062213 | Assembler | disassembler doesn't display properly the FPU instructions |
| 9001088362 | Assembler | [buildroot] libvncserver-0.9.10 build fails |
| 9001037372 | binutils | Relocation overflow when building Qt5WebKit |
| 9001066937 | binutils | busybox's nslookup segfaults with invalid read |
| 9001067572 | binutils | [pie] mosh-1.2.5 build failed (ld segfault) |
| 9001074273 | binutils | [buildroot] tvheadend package build fails |
| 9000553691 | binutils | overlapping VMA/LMA in relocatable object file |
| 9000587711 | binutils | "ELF Segment layout changes for ARC (size |
| 9000676403 | binutils | safe handling of custom instruction formats |
| 9000948062 | binutils | "Stack and heap are part of the ""load"" program header" |
| 9001053749 | binutils | kernel stack unwinder broken with GNU 2016.03 |
| 9001066524 | binutils | Mistakes in relocations in GNU bintuils |
| 9001082767 | binutils | perf record -e cache-misses doesn't work |
| 9001091610 | binutils | objdump not recognizing LLOCKD/SCONDD |
| 9001106732 | binutils | Binutils doesn't accept same --with-cpu values as GCC |
| ARS0098564 | binutils | objdump shortcomings |
| 9001079125 | binutils | Disassembler has invalid order of condition code and delay slot |
| 9001009437 | Build | Build script do not support uClibc-ng |
| 9001048208 | Build | New binutils not compatible with C++ compiler |
| 9001124783 | Build | Building of Bare metal ARC GNU tool chain 2016.09 failed on RHEL 6.6 EM9D config |
| 9001113113 | Compiler | gcc 6.x triggers increased format warnings in kernel builds |
| 9001094761 | Compiler | operand out of range (512 is not between -512 and 511) |
| 9000799682 | Compiler | libgcc depends on libc |
| 9000863783 | Compiler | ICE when __atomic_test_and_set is used but atomics are not enabled |
| 9000962853 | Compiler | ICE in baremetal code with -fPIC |
| 9001004404 | Compiler | ICE with --enable-checking when building linux |
| 9001020378 | Compiler | Cannot build qt5webkit for arc700 |
| 9001031315 | Compiler | GCC compares SFP and DFP values incorrectly when -mcpu=em4 and -mnorm |
| 9001044896 | Compiler | [DG] execute.exp=950915-1.c generates invalid instruction with -mcpu=em4 -O2 |
| 9001065763 | Compiler | ftruncate02_64 failure with GCC 6 and trunk |
| 9001081235 | Compiler | [buildroot] gmp lib build failed |
| 9001081769 | Compiler | GCC 6 ICE when building coreutils |
| 9001081822 | Compiler | [buildroot] dmraid build failed |
| 9001086114 | Compiler | "[buildroot] qt-4.8.7 build fails with ""internal compiler error""" |
| 9001087935 | Compiler | "[buildroot] mesa3d-12.0.1 build fails with ""internal compiler error""" |
| 9001090948 | Compiler | [buildroot] libcdio-0.93 build fails |
| 9001092649 | Compiler | R25 is treated as thread pointer reg even with --disable-tls |
| 9001107991 | Compiler | [buildroot][privoxy]: operand out of range |
| 9001118116 | Docs | Windows 10 support |
| 9001121311 | Docs | hello world example is not supported with em4_dmips, hs34 templates |
| 9000672366 | Debugger | gdb.base/commands.exp: continue with watch: expected line should be updated |
| 9000881591 | Debugger | Evaluate branch condition in arc_next_pc function |
| 9001091993 | Eclipse plugin | Changing linker settings breaks the project build |
| 9001119554 | IDE | C Hello world debug issue with ARC nSIM |
| 9001024736 | Linker | Linker reports bad symbol for MWDT compiled library written in C++ |
| 9000481437 | Linker | linker to abort if shared lib has .relocations in text |
| 9000629566 | Linker | [pie] Unresolvable relocation in uClibc toolchain with option -fPIE |
| 9000711844 | Linker | "[pie] -pie --static causes ""final link failed: Bad value""" |
| 9000921771 | Linker | [pie] BFD_ASSERT(sreloc->contents != 0) |
| 9000925001 | Linker | [pie] ld doesn't fail if symbol is undefined |
| 9000976236 | Linker | Segmentation fault during mesa3d build |
| 9001019759 | Linker | "dejagnu: ""-z nocommon"" flag not supported by linker for elf32" |
| 9001020032 | Linker | dejagnu ld test failure: FAIL: ld-elf/linkonce1 |
| 9001020033 | Linker | Dejagnu: FAIL: PR ld/19317 (2) |
| 9001021845 | Linker | [pie]: dumpcap segfaults (requires PIE support) |
| 9001027471 | Linker | dejagnu fails. commonpage & maxpage |
| 9001027472 | Linker | dejagnu fails: ld-discard /zero-range ld-discard/zero-rel |
| 9001053384 | Linker | GNU linker calculates R_ARC_SECTOFF relocation incorrectly |
| 9001054394 | Linker | GNU linker does not support R_ARC_SDA_12 relocation |
| 9001056008 | Linker | GNU linker calculates R_ARC_N* relocations incorrectly |
| 9001059599 | Linker | Linker fails to link dejagnu tests |
| 9001108825 | Linker | [buildroot][libstdc++] relocation R_ARC_32_ME against `UNKNOWN' cannot be used |
| ARS0100768 | Linker | DT_RELACOUNT not generated by ARC linker (loader optimisation) |
| ARS0102823 | Linker | linker coalescing elf segments with -z max-page-size=16384 |
| 9001068766 | newlib | Function strcmp for em4 big endian is not correct |
| 9001061425 | uclibc | "uClibc test ""tst-tls1"" fails" |
| 9001069232 | uclibc | "[tls] [uclibc] ""tst-tls3"" failed with segfault" |
| 9000882520 | uclibc | tst-atomic-long - uClibc testsuite failure |
| 9001036412 | uclibc | Apps dynamically linked vs uClibc built with -mlong-calls fail |
| 9001060878 | uclibc | LTP fanotify build fails with uClibc-ng |
| 9001063706 | uclibc | "Libcall ""clone"" generates two new process instead of one." |
| 9001073811 | uclibc | [uclibc-ng] build failed |
| 9001081724 | uclibc | tst-mqueue8 uclibc test fails |
| 9001081725 | uclibc | tst-mqueue6 uclibc test fails |
| 9001081727 | uclibc | tst-mqueue3 uclibc test fails |
A list of known issues can be found here.
Please report any problems by filing an Issue in GitHub here.
MD5 sums for the release tarballs:
071699cdf89d23aeb2293e8ef6e156cc arc_gnu_2016.09_sources.tar.gz
2f30748fc54bb7ed6392fa56e8d7184f arc_gnu_2016.09_prebuilt_elf32_le_linux_install.tar.gz
d9f1abed7a77463410ee84b73de952ef arc_gnu_2016.09_prebuilt_uclibc_le_arc700_linux_install.tar.gz
1e31d79abc96298d3e42f23b6c76c411 arc_gnu_2016.09_prebuilt_uclibc_le_archs_linux_install.tar.gz
ed0db57043d1ac9bf5d044cce7c95bf6 arc_gnu_2016.09_prebuilt_elf32_be_linux_install.tar.gz
178e1f65e5ecb895bceb9a2fb1c093b8 arc_gnu_2016.09_prebuilt_uclibc_be_arc700_linux_install.tar.gz
e16afea60d6dc664b16c6fd35cb87ace arc_gnu_2016.09_prebuilt_uclibc_be_archs_linux_install.tar.gz
df754d7d7fd2fcc69a7bf0a5d28e95c8 arc_gnu_2016.09_ide_linux_install.tar.gz
8e4437ee2c9e5ba55b7e7dfb5ca1f864 arc_gnu_2016.09_ide_plugins.zip
486fa38e758d6f6f492cb8073eeee83f arc_gnu_2016.09_prebuilt_uclibc_le_archs_native_install.tar.gz
96365700b805012180ea0de9cca2edf4 arc_gnu_2016.09_ide_win_install.exe