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 :envvar:`CC`, :envvar:`CXX`, and
:envvar:`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