This package represents the required C and C++ compilers.
- GCC (GNU Compiler Collection) versions 8.x to 12.x are supported.
- Clang (LLVM) is also supported.
The required Fortran compiler is represented by the package gfortran
.
You can pass the names of compilers to use to ./configure
using the environment variables CC
, CXX
, and FC
, for C, C++, and Fortran compilers, respectively.
For example, if your C compiler is clang
, your C++ compiler is clang++
, and your Fortran compiler is flang
, then you would need to run:
$ ./configure CC=clang CXX=clang++ FC=flang
Vendor and versions of the C and C++ compilers should match.
Users of older Linux distributions (in particular, ubuntu-xenial
or older, debian-stretch
or older, linuxmint-18
or older) should upgrade their systems before attempting to install Sage from source. Users of ubuntu-bionic
, linuxmint-19.x
, and opensuse-15.x
can install a versioned gcc
system package and then use:
$ ./configure CC=gcc-8 CXX=g++-8 FC=gfortran-8
or similar. Users on ubuntu
can also install a modern compiler toolchain using the ubuntu-toolchain-r ppa. On ubuntu-trusty
, also the package binutils-2.26
is required; after installing it, make it available using export PATH="/usr/lib/binutils-2.26/bin:$PATH"
. Instead of upgrading their distribution, users of centos-7
can install a modern compiler toolchain using Redhat's devtoolset.
This package uses the non-standard default configure --with-system-gcc=force
, giving an error at configure
time when no suitable system compilers are configured.
You can override this using ./configure --without-system-gcc
. In this case, Sage builds and installs the GNU Compiler Collection, including the C, C++ and Fortran compiler. This is not recommended. You will need suitable C and C++ compilers from which GCC can bootstrap itself. There are some known problems with old assemblers, in particular when building the ecm
and fflas_ffpack
packages. You should ensure that your assembler understands all instructions for your processor. On Linux, this means you need a recent version of binutils
(not provided by an SPKG); on macOS you need a recent version of Xcode.
(Installing the gfortran
SPKG becomes a no-op in this case.)
Building Sage from source on Apple Silicon (M1/M2) requires the use of Apple's Command Line Tools, and those tools include a suitable compiler. Sage's gcc
SPKG is not suitable for M1/M2; building it will likely fail.
GPL version 2 or version 3