Version 8.5.0-1 is the first release of xPack GCC.

The xPack GCC is the xPack distribution of the GNU Compiler Collection.

There are separate binaries for Windows (Intel 32/64-bit), macOS (Intel 64-bit) and GNU/Linux (Intel 32/64-bit, Arm 32/64-bit).

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.

On macOS, the general build tools are available in the Command Line Tools package, which can be installed standalone or as part of Xcode.

Easy install

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

To install the latest version available, use:

cd my-project
xpm init # Only at first use.

xpm install @xpack-dev-tools/gcc@latest

ls -l xpacks/.bin

To install this specific version, use:

xpm install @xpack-dev-tools/gcc@8.5.0-1.2

Compliance

This release follows the official GCC release.

Supported languages

The supported languages are:

  • C
  • C++
  • Obj-C
  • Obj-C++
  • Fortran

Changes

Compared to the GNU version, there should be no functional changes.

The only patch applied was to make it correctly recognise macOS version 11.x instead of 10.16; the code was copied from the more recent 11.x sources.

Bug fixes

  • none

Enhancements

  • none

Known problems

  • on macOS, the g++ compiler complains about something like … the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. The reason for triggering this warning was not identified (yet), but the resulting binaries seem functional.

macOS binutils

The GNU binutils are not compatible with the macOS linker and are not included in the macOS archive.

macOS SDK

For the package to be standalone, the MacOSX10.10.sdk folder includes the 10.10 SDK.

Shared libraries

On all platforms the packages are standalone, and expect only the standard runtime to be present on the host.

All dependencies that are build as shared libraries are copied locally in the same folder as the executable.

DT_RPATH and LD_LIBRARY_PATH

On GNU/Linux the binaries are adjusted to use a relative path:

% readelf -d library.so | grep rpath
 0x000000000000001d (RPATH)            Library runpath: [$ORIGIN]

In the GNU ld.so search strategy, the DT_RPATH has the highest priority, higher than LD_LIBRARY_PATH, so if this later one is set in the environment, it should not interfere with the xPack binaries.

Please note that previous versions, up to mid-2020, used DT_RUNPATH, which has a priority lower than LD_LIBRARY_PATH, and does not tolerate setting it in the environment.

@executable_path

Similarly, on macOS, the dynamic libraries are adjusted with otool to use a relative path.

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.

  • Intel GNU/Linux: all binaries were built with GCC 9.3, running in an Ubuntu 12 Docker container
  • Arm GNU/Linux: all binaries were built with GCC 9.3, running in an Ubuntu 16 Docker container (added in mid-2020)
  • Windows: all binaries were built with mingw-w64 GCC 9.3, running in an Ubuntu 12 Docker container
  • Intel macOS: all binaries were built with GCC 9.3, running in a separate folder on macOS 10.10.5.

Build

The scripts used to build this distribution are in:

  • distro-info/scripts

For the prerequisites and more details on the build procedure, please see the How to build page.

CI tests

TBD

Tests

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

The tests consist in building simple hello world programs.

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

Checksums

The SHA-256 hashes for the files are:

5ca5abb0e6d7a3048d47bd46f0278c7534b7f817ac2cbc4b54cea646373e8b89
xpack-gcc-8.5.0-1-darwin-x64.tar.gz

efda34b8865198853edac865737824dfa76d24480f4a057c22fa4d6bef81dee6
xpack-gcc-8.5.0-1-linux-arm64.tar.gz

bf96d4f185c17043bf84f2803252a1b0af63266c023dd62396a667f025bcfe96
xpack-gcc-8.5.0-1-linux-arm.tar.gz

de97e4242e1c691f488a32f0bab76e8019b3959e9d0078b25a4f34bcf3a14ab6
xpack-gcc-8.5.0-1-linux-ia32.tar.gz

ef74a7b554e586f84ce5d17bb6d2074f4ab59e07da3038029f04f8a2fa657cc5
xpack-gcc-8.5.0-1-linux-x64.tar.gz

84db4ad846a25156def667e18d3ca376497388494abe08636f825f9f84f9d847
xpack-gcc-8.5.0-1-win32-ia32.zip

71c9a4744b207e080b7ab94e777b8a8f90018cccf1896fa650cbee2d91ac779c
xpack-gcc-8.5.0-1-win32-x64.zip

Download analytics

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