Skip to content

GNU Toolchain for ARC Processors, 2015.12

Compare
Choose a tag to compare
@anthony-kolesov anthony-kolesov released this 02 Feb 23:18
· 1012 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
  • 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 command watch.
  • 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