GNU Toolchain for ARC Processors, 2015.12
·
1048 commits
to arc-releases
since this release
This is 2015.12 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
- GCC v4.8.5
- Binutils v2.23
- newlib v2.3
- uclibc (upstream HEAD at the moment of release)
- GDB 7.10
- Eclipse Mars (4.5.1) with CDT 8.8.0
- OpenOCD 0.9+ upstream commit 30203b3d8b, with ARC support.
New Features and Enhancements
- GCC
- Source update to v4.8.5
- New preprocessor defines for processor optional features, like -mnorm, -mll64, etc.
- Fast interrupt (FIRQ) function attribute support
- Naked function attribute support
- GDB
- Updated to upstream 7.10 release.
- Pre-built binaries
- Baremetal toolchain now contains additional set of libc/libstdc++ binaries compiled with optimization for code size. Can be selected by passing
--specs=nano.specsto gcc. - Standard libraries in baremetal toolchain are now stripped of debug information, except for
.debug_framesection. - Linux toolchain for ARC HS now contains sysroot for ARC 700. It is now possible to build ARC 700 application using ARC HS toolchain, by passing an option
--sysroot=$INSTALLDIR/arc-snps-linux-uclibc/sysroot-arc700to arc-linux-gcc, where$INSTALLDIRis a path to toolchain installation folder. This is implemented for both little end big endian toolchains. - Toolchain binaries are linked dynamically
- Baremetal toolchain now contains additional set of libc/libstdc++ binaries compiled with optimization for code size. Can be selected by passing
- Eclipse IDE
- Removed redundant "hostname" text field from debugger configuration when locally started gdbserver are used.
- ARC template projects have been reorganized. They are now grouped by target ARC development system.
- Added validation for text fields in debugger configuration.
- TCF support to build configurations
- Debugger configuration UI now has a full support of Synopsys ARC development systems for OpenOCD
- Reworked template projects for Synopsys ARC development systems
- Updated processor option in compiler pluging to adhere to GCC in this release
- Newlib
- Updated to upstream 2.3 release
- Added support for newlib-nano
- OpenOCD
- Support for the actionpoints. OpenOCD will automatically detect actions points in ARC EM and ARC HS targets. Hardware breakpoints are set via GDB command
hbreak, while hardware watchpoints via GDB commandwatch.
- Support for the actionpoints. OpenOCD will automatically detect actions points in ARC EM and ARC HS targets. Hardware breakpoints are set via GDB command
- Toolchain build scripts
- 2-stage build process for baremetal toolchain
- Can now build libc and libstdc++ optimized for size along the "normal" set of libraries.
- Support for Linux toolchains with multiple sysroots. Buildscripts themselves can build a toolchain with only one sysroot, however that arc-snps-linux-uclibc/sysroot folder may be now freely used with other toolchains. That wasn't possible with previous releases, because some libraries were outside of the sysroot.
- New options of build-all.sh script:
--[no-]elf32-gcc-stage1- defines whether to build of stage 1 compiler for baremetal toolchain. Means that runnable ARC compiler should be already in the PATH to build newlib. Disable first stage compiler is needed for canadian cross builds. Default is--elf32-gcc-stage1.--[no-]optsze-newlib- defines whether to build newlib optimized for code size. Default is--optsize-newlib.--[no-]optsze-libstdc++- defines whether to build libstdc++ optimized for code size. Default is--optsize-libstdc++. This is independent from newlib option, however nano.specs will be copied to target toolchain installation only when--optsize-newlibis used.--[no-]elf32-strip-target-libs- defines whether to string target libraries of the debug symbols (except for .debug_frame section). Default is off--no-elf32-strip-target-libs.
Bugs Fixed in This Release (Summary)
- Pre-built binaries
- Fixed broken shortcut to documentation folder in installer for Windows
- Fixed a bug where uninstaller for Windows wouldn't remove some shortcuts
- Eclipse IDE
- Fixed compatibility with Ashling Opella-XD gdbserver
- Fixed an case where in C++ projects standard library functions were highlighted as unknown by Eclipse syntax checker.
- Fix crash in IDE on Linux when connecting to target UART
- Fixed: IDE template projects for C++ were not linking
- Fixed: printf() is highlighted by Eclipse as an unknown function in C++ project, but projects builds without error
- Newlib
- Fixed an issue with string and memory routines using instructions which are not available for selected ARC processor configuration.
- OpenOCD
- Fixed support of EM7DFPU image in EM Starter Kit 2.1: JTAG frequency was too high.
- Toolchain build scripts
- Fixed an issue where custom baremetal toolchain built with -mnorm option wouldn't link C++ applications
Complete list of STARs fixed/closed in this release:
| Number | Project | Title |
|---|---|---|
| 9000807313 | Assembler | Push-n-Pop instruction are not recognized by the GAS |
| 9000931852 | Assembler | assembler needs to support llockd/scondd |
| 9000937132 | Assembler | internal error: fixup not contained within frag |
| 9000978280 | Assembler | Error: junk at end of line: `,@.LANCHOR1@pcl' |
| 9000878737 | Build | Can't find a source file at "/home/akolesov/ws/arc-2014.12/unisrc-4.8/newlib/lib |
| 9000909931 | Build | multi-sysroot toolchain support |
| 9000914808 | Build | Dynamic linked toolchain for Windows |
| 9000943754 | Build | Toolchain built with -mnorm in target cflags doesn't build C++ apps |
| 9000960799 | Build | [windows] Documentation link in Start Menu doesn't work |
| 9000906026 | Compiler | gcc 4.8.x (since may 2015) spews dwarf messages |
| 9000908736 | Compiler | Undefined reference to .tdata when building ncurses |
| 9000922620 | Compiler | [tls] undefined reference to .tdata |
| 9000924612 | Compiler | Enable section anchors for Os |
| 9000926273 | Compiler | ICE in GCC with -Os -mfpu=fpus_all |
| 9000926277 | Compiler | ICE with -marcem -mfpu=fpuda -Os -fno-builtin |
| 9000927675 | Compiler | GCC does not emit some operand combinations for LD |
| 9000929470 | Compiler | GCC generates an invalid assembly code for -O3 (operand out of range) |
| 9000942081 | Compiler | ICE in GCC built with --enable-checking |
| 9000953408 | Compiler | ICE when compiling libgcc file without explicit CPU option |
| 9000958058 | Compiler | ARC specific preprocessor defines do not follow any naming convention |
| 9000967406 | Compiler | unrecognizable insn with -mmpy-option=9 |
| 9000970221 | Compiler | Segfault in GCC with -Os -fsection-anchors -fPIC |
| 9000969818 | Compiler | Internal compiler error during libbroadvoice build |
| 9000857057 | Compiler | GCC loop skips first index or can loop indefenetely if 'continue' is used. |
| 9000958165 | Compiler | ‘builtin’ instructions generated for 32 bit inst when 16-bit versions available |
| 9000831646 | Debugger | debugging if fork() with GDB and NPTL |
| 9000831647 | Debugger | debugging of multithreaded apps with NPTL GDB |
| 9000921499 | Debugger | GDB doesn't step line properly in threaded apps |
| 9000897852 | Docs | Incomplete GCC documentation for -mmpy-option |
| 9000924631 | Docs | Add AXS10x specific linker scripts and CPU options to toolchain wiki |
| 9000837862 | Eclipse plugin | Dropdown list to select type of FTDI device |
| 9000849262 | Eclipse plugin | IDE crashes in RxTx |
| 9000918425 | Eclipse plugin | Debugger plugin should detect openocd in Linux IDE setup |
| 9000918465 | Eclipse plugin | Separate HS34 and HS36 empty templates are required |
| 9000922447 | Eclipse plugin | C++ projects for bare metal don't build because of inappropriate crt0.S |
| 9000922449 | Eclipse plugin | Error encountered while building uClibc application for ARC700 on GNU Ecllipse |
| 9000940039 | Eclipse plugin | Error messages when starting ARC plugins for Eclipse |
| 9000943601 | Eclipse plugin | Remove -mshift-assist option from toolchain's settings |
| 9000946759 | Eclipse plugin | Eclipse highlights printf as unknown function |
| 9000947947 | Eclipse plugin | Remove -matomic from EM toolchain |
| 9000952007 | Eclipse plugin | Tooltips for nSIM options in Debugger plugin |
| 9000952042 | Eclipse plugin | nSIM bin path should be empty if NSIM_HOME is not set |
| 9000952043 | Eclipse plugin | Highligh filepath fields if empty or file doesn't exist |
| 9000952560 | Eclipse plugin | Reorganize ARC template projects |
| 9000954846 | Eclipse plugin | Show error message if project or program doesn't exist or specified |
| 9000955386 | Eclipse plugin | Remove hostname text field for nSIM, Ashling and OpenOCD |
| 9000963398 | Eclipse plugin | Ashling support needs update for GDB 7.9 with XML target descriptions |
| 9000974600 | Eclipse plugin | Add --specs=nsim.specs to linker options in IDE template projects |
| 9000986055 | Eclipse plugin | Debugging flags aren't passed to compiler in IDE |
| 9000947173 | Eclipse plugin | ARC GNU GUI: gdb does not load library symbols for remote debug session. |
| 9000950266 | Linker | Linker regression causes instruction to be removed, perf failing with illegal in |
| 9000960795 | Linker | Faling ld test case for TLS |
| 9000980148 | Linker | Linker error when creating shared library file |
| 9000664832 | newlib | Implement function _exit in newlib |
| 9000861703 | newlib | Port newlib-nano to ARC |
| 9000950205 | newlib | [GNU] Incorrect default exception handlers for v2 cores |
| 9000974569 | newlib | Update newlib to new GCC macros defines |
| 9000987170 | newlib | Can not compile EM project with --specs=nano.specs option |
| 9000625558 | openOCD | Support HW Actionpoints in openOCD |
| 9000986226 | openOCD | OpenOCD doesn't work with EM7DFPU on 'Hello World' project |
| 9000986706 | openOCD | Can not debug ARC 600 project with OpenOCD |
| 9000940897 | uclibc | [uclibc] ld-uClibc segfault in _dl_run_init_array() |
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:
ddaf7964be361f270aab4f998629edc3 arc_gnu_2015.12_ide_linux_install.tar.gz
fea0eaff78d6bb1c6e5ad94c7fb9b888 arc_gnu_2015.12_ide_plugins.zip
ec22bc157c9d002e737ad595de540480 arc_gnu_2015.12_openocd_linux_install.tar.gz
8ca6b319490f1fc27378b01c0273ddc0 arc_gnu_2015.12_prebuilt_elf32_be_linux_install.tar.gz
bc98e4a306e52023be11896da5e14e51 arc_gnu_2015.12_prebuilt_elf32_le_linux_install.tar.gz
19053968c1d46861010eef80e7bc3c8a arc_gnu_2015.12_prebuilt_uclibc_be_arc700_linux_install.tar.gz
716f9bcb70e9995d392e9715ac52755a arc_gnu_2015.12_prebuilt_uclibc_be_archs_linux_install.tar.gz
4ea9d89957b73efa85d56f32a7ae50dc arc_gnu_2015.12_prebuilt_uclibc_le_arc700_linux_install.tar.gz
cae5110eaf84c395889334fb876762cc arc_gnu_2015.12_prebuilt_uclibc_le_archs_linux_install.tar.gz
0b51a4974d1ba77ba33ebe5c21ede94c arc_gnu_2015.12_sources.tar.gz