GNU Toolchain for ARC Processors, 2015.12
anthony-kolesov
released this
02 Feb 23:18
·
1028 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.specs
to gcc. - Standard libraries in baremetal toolchain are now stripped of debug information, except for
.debug_frame
section. - 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-arc700
to arc-linux-gcc, where$INSTALLDIR
is 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-newlib
is 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