Version 8.3.1-1.4 is a maintenance release of xPack GNU Arm Embedded GCC repacking the files from the previous 8.3.1-1.3 release in archives with a simpler structure and more standard names.

Download

The binary files are available from GitHub releases.

Install

The full details of installing the xPack GNU Arm Embedded GCC on various platforms are presented in the separate Install page.

Easy install

The easiest way to install GNU Arm Embedded GCC is with xpm by using the binary xPack, available as @xpack-dev-tools/arm-none-eabi-gcc from the npmjs.com registry.

To install the latest version available, use:

$ xpm install --global @xpack-dev-tools/arm-none-eabi-gcc@latest

To install this specific version, use:

$ xpm install --global @xpack-dev-tools/arm-none-eabi-gcc@8.3.1-1.4.1

Compliance

This release follows the official GNU Arm Embedded Toolchain 8-2019-q3-update release from July 10, 2019 and it is based on the gcc-arm-none-eabi-8-2019-q3-update-src.tar.bz2 source invariant.

For more details see the original Arm release text files:

  • distro-info/arm-readme.txt
  • distro-info/arm-release.txt

Supported libraries

The supported libraries are:

$ arm-none-eabi-gcc -print-multi-lib
.;
arm/v5te/softfp;@marm@march=armv5te+fp@mfloat-abi=softfp
arm/v5te/hard;@marm@march=armv5te+fp@mfloat-abi=hard
thumb/nofp;@mthumb@mfloat-abi=soft
thumb/v7/nofp;@mthumb@march=armv7@mfloat-abi=soft
thumb/v7+fp/softfp;@mthumb@march=armv7+fp@mfloat-abi=softfp
thumb/v7+fp/hard;@mthumb@march=armv7+fp@mfloat-abi=hard
thumb/v6-m/nofp;@mthumb@march=armv6s-m@mfloat-abi=soft
thumb/v7-m/nofp;@mthumb@march=armv7-m@mfloat-abi=soft
thumb/v7e-m/nofp;@mthumb@march=armv7e-m@mfloat-abi=soft
thumb/v7e-m+fp/softfp;@mthumb@march=armv7e-m+fp@mfloat-abi=softfp
thumb/v7e-m+fp/hard;@mthumb@march=armv7e-m+fp@mfloat-abi=hard
thumb/v7e-m+dp/softfp;@mthumb@march=armv7e-m+fp.dp@mfloat-abi=softfp
thumb/v7e-m+dp/hard;@mthumb@march=armv7e-m+fp.dp@mfloat-abi=hard
thumb/v8-m.base/nofp;@mthumb@march=armv8-m.base@mfloat-abi=soft
thumb/v8-m.main/nofp;@mthumb@march=armv8-m.main@mfloat-abi=soft
thumb/v8-m.main+fp/softfp;@mthumb@march=armv8-m.main+fp@mfloat-abi=softfp
thumb/v8-m.main+fp/hard;@mthumb@march=armv8-m.main+fp@mfloat-abi=hard
thumb/v8-m.main+dp/softfp;@mthumb@march=armv8-m.main+fp.dp@mfloat-abi=softfp
thumb/v8-m.main+dp/hard;@mthumb@march=armv8-m.main+fp.dp@mfloat-abi=hard

Bug fixes

  • none,

Changes

There should be no functional changes.

The files from the previous 1.3 release were repacked into new archives with a single folder named xpack-arm-none-eabi-gcc-8.3.1-1.4 instead of the hierarchical xPacks/arm-none-eabi-gcc/8.3.1-1.4. This internal folder name is used consistently on all platforms. The archive extension was changed to .tar.gz.

With these changes, the archives can now be used directly in other development environments (like Arduino), without having to repack them.

Python 3

Partial experimental support for Python 3 was added to GDB for GNU/Linux and macOS; not yet available on Windows (24469).

Known problems

  • [#5] the arm-none-eabi-gdb-py fails to start on Ubuntu (and possibly other Debian) systems, it fails with a message like:
    $ PYTHONHOME=/usr PYTHONPATH=/usr/lib/python2.7 arm-none-eabi-gdb-py --version
    Traceback (most recent call last):
    File "/usr/lib/python2.7/site.py", line 554, in <module>
      main()
    File "/usr/lib/python2.7/site.py", line 536, in main
      known_paths = addusersitepackages(known_paths)
    File "/usr/lib/python2.7/site.py", line 272, in addusersitepackages
      user_site = getusersitepackages()
    File "/usr/lib/python2.7/site.py", line 247, in getusersitepackages
      user_base = getuserbase() # this will also set USER_BASE
    File "/usr/lib/python2.7/site.py", line 237, in getuserbase
      USER_BASE = get_config_var('userbase')
    File "/usr/lib/python2.7/sysconfig.py", line 587, in get_config_var
      return get_config_vars().get(name)
    File "/usr/lib/python2.7/sysconfig.py", line 533, in get_config_vars
      _init_posix(_CONFIG_VARS)
    File "/usr/lib/python2.7/sysconfig.py", line 417, in _init_posix
      from _sysconfigdata import build_time_vars
    File "/usr/lib/python2.7/_sysconfigdata.py", line 6, in <module>
      from _sysconfigdata_nd import *
    ImportError: No module named _sysconfigdata_nd
    

The problem is caused by gdb-py not being able to locate the Python system libraries, split into multiple packages and installed in multiple folders.

The workaround is to pass the Python environment to gdb-py:

PYTHONPATH="$(python -c 'import os; import sys; print(os.pathsep.join(sys.path))')" \
PYTHONHOME="$(python -c 'import sys; print(sys.prefix)')"

Documentation

The original PDF documentation is available in the share/doc folder.

Supported platforms

Binaries for Windows, macOS and GNU/Linux are provided.

The binaries were built using the xPack Build Box (XBB), a set of build environments based on slightly older distributions, that should be compatible with most recent systems.

  • GNU/Linux: all binaries were built with GCC 7.4, running in a CentOS 6 Docker container
  • Windows: all binaries were built with mingw-w64 GCC 7.4, running in a CentOS 6 Docker container
  • macOS: most binaries were built with GCC 7.4, running in a separate folder on macOS 10.10.5; GDB cannot be compiled with GCC, so Apple clang was used.

Tests

The binaries were testes on Windows 10 Pro 32/64-bit, Ubuntu 18 LTS 64-bit, Xubuntu 18 LTS 32-bit and macOS 10.13.

The tests consist in building and debugging some simple Eclipse projects available in the project.

Since the source code used for GCC is identical to the one used by Arm, the long and complex tests performed by Arm to validate their release were not executed again.

Checksums

The SHA-256 hashes for the files are:

03ab76e2518748d12b491cb2ca8044633c56291db04933f0c3110637bfa22698 
xpack-arm-none-eabi-gcc-8.3.1-1.4-darwin-x64.tar.gz

f69a86a11be77c9a0c9b750444fe12d7c84539ed1ff9600f60e1583509c6c28b 
xpack-arm-none-eabi-gcc-8.3.1-1.4-linux-x32.tar.gz

31338c3b8bdb32d9082a857f6d65a57c033e7d6eba1662a30c7fb3e83ff46597 
xpack-arm-none-eabi-gcc-8.3.1-1.4-linux-x64.tar.gz

825b1088f9e7257ce0b363eb6905aeee5e69f75f86c2327975b368a114fe7cd9 
xpack-arm-none-eabi-gcc-8.3.1-1.4-win32-x32.zip

2f415819d96a50eb8f75974718e57762d1476a9f9722f4661e43b034fffe1a27 
xpack-arm-none-eabi-gcc-8.3.1-1.4-win32-x64.zip

Download analytics

Credit to Shields IO for the badges and to Somsubhra/github-release-stats for the individual file counters.