GCC 11.1 was finally released yesterday. However, now it can only be built from source, so I'm wondering when we can get it with apt
?
When gcc-11 will appear in Ubuntu repositories?
51.9k views Asked by gavrilikhin.d AtThere are 4 answers
We currently have no info of when we'll see an APT release of GCC 11.1. Below, I show the step-by-step build instructions that you can hopefully follow along:
You can visit https://gcc.gnu.org/mirrors.html, choose the closest mirror to you, download the source for gcc-11.1.0.tar.gz
Then, make sure to have your build system installed:
sudo apt install gcc g++ make bison binutils gcc-multilib
Yes, you need gcc to build gcc.
Then, unpack the tarball:
cd Downloads # replace with your download location
tar -xzvf gcc-11.1.0.tar.gz
cd gcc-11.1.0
The last thing is to actually build it:
mkdir build
cd build
../configure --enable-multilib && make && sudo make install
That's all! You now have GCC 11.1 installed in Ubuntu.
sudo apt install build-essential manpages-dev software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update && sudo apt install gcc-11 g++-11
Then use update-alternatives
to set default gcc...
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-9 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-9 --slave /usr/bin/cpp cpp /usr/bin/cpp-9 && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-11 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-11 --slave /usr/bin/cpp cpp /usr/bin/cpp-11;
To sample check settings to see which gcc is default you can run the following, if they show correct resuslts then the rest are fine...
gcc --version;g++ --version;gcov --version;
To reconfigure to any previous gcc version...
sudo update-alternatives --config gcc
You can do this on any version of ubuntu,... enjoy!
Here are my 6 different gcc's living side by side with the default being gcc-11:
$ sudo update-alternatives --config gcc
There are 6 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-11 1010 auto mode
1 /usr/bin/gcc-10 1000 manual mode
2 /usr/bin/gcc-11 1010 manual mode
3 /usr/bin/gcc-5 40 manual mode
4 /usr/bin/gcc-7 700 manual mode
5 /usr/bin/gcc-8 800 manual mode
6 /usr/bin/gcc-9 900 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Casachii's instructions worked for me, with one gotcha. If you run into any issues building GCC yourself using the instructions from casachii, such as build errors reporting missing GMP, MPFR, MPC, etc, then simply do the following:
From the GCC directory (the parent of the "build" directory you just created), run:
./contrib/download_prerequisites
Then when it finishes, run this:
./configure
Finally go back into your build directory as casachii instructs and build GCC 11.x
cd build
../configure --enable-multilib && make && sudo make install
This will take quite a long time. BTW - I would have added this in a comment to casachii's very helpful answer, however I just created this account and apparently I don't have the creds to even make a comment.
On Ubuntu 20.04, I followed the instructions here:
Which is to:
Update the listed mirrors by adding a line to your /etc/apt/sources.list like this:
sudo add-apt-repository 'deb http://mirrors.kernel.org/ubuntu hirsute main universe'
Choose a mirror based on your location from the list. I chose the kernel mirror as I am in North America.
sudo apt-get update
sudo apt-get install gcc-11
After that
which gcc-11
should produce a path to gcc-11. On my machine it was:produces: /usr/bin/gcc-11