xPack GCC v8.5.0-1 released
The xPack GCC is the xPack distribution of the GNU Compiler Collection.
There are separate binaries for Windows (x64 and x86), macOS (x64) and GNU/Linux (x64 and x86, arm64 and arm).
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 binaries 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.
- x86/x64 GNU/Linux: all binaries were built with GCC 9.3, running in an Ubuntu 12 Docker container
- arm64/arm GNU/Linux: all binaries were built with GCC 9.3, running in an Ubuntu 16 Docker container (added in mid-2020)
- x86/x64 Windows: all binaries were built with mingw-w64 GCC 9.3, running in an Ubuntu 12 Docker container
- x64 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 README-MAINTAINER 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
- GitHub xpack-dev-tools/gcc-xpack
- this release
- all xPack releases
- individual file counters (grouped per release)
- npmjs.com @xpack-dev-tools/gcc
Credit to Shields IO for the badges and to Somsubhra/github-release-stats for the individual file counters.