gcc: The GNU Compiler Collection or other suitable C and C++ compilers#
Description#
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.
License#
GPL version 2 or version 3
Upstream Contact#
Type#
standard
Dependencies#
Version Information#
package-version.txt:
12.2.0
Equivalent System Packages#
arch:
$ sudo pacman -S gcc
cygwin:
$ apt-cyg install gcc-core gcc-g++ gcc-fortran
Debian/Ubuntu:
$ sudo apt-get install gcc g++
Fedora/Redhat/CentOS:
$ sudo yum install gcc gcc-c++ gcc-gfortran
freebsd:
$ sudo pkg install lang/gcc9
homebrew:
$ brew install gcc
opensuse:
$ sudo zypper install gcc-c++
void:
$ sudo xbps-install gcc
See https://repology.org/project/gcc/versions
If the system package is installed, ./configure will check whether it can be used.