Created
August 25, 2015 09:54
-
-
Save joka90/bb8ef36aa755994d3b3d to your computer and use it in GitHub Desktop.
How to build and install gcc 4.7 for Fedora 22 alongside gcc 5.1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#Install build dependencies | |
sudo dnf groupinstall "Development tools" | |
sudo dnf install mpfr-devel gmp-devel libmpc-devel zlib-devel glibc-devel.i686 glibc-devel | |
wget http://mirror2.babylon.network/gcc/releases/gcc-4.7.4/gcc-4.7.4.tar.bz2 | |
tar xvfj gcc-4.7.4.tar.bz2 | |
cd gcc-4.7.4 | |
#Download and apply fix to be able to build gcc 4.7 with gcc 5.1 | |
wget https://patchwork.ozlabs.org/patch/504982/raw/ -O cfns-fix-mismatch-in-gnu_inline-attributes.patch | |
patch -p1 -i cfns-fix-mismatch-in-gnu_inline-attributes.patch | |
mkdir build | |
cd build | |
#configure to only build for c,c++,fortran and added suffix otherwise same flages as for gcc 5.1 on Fedora | |
../configure --enable-bootstrap --enable-languages=c,c++,fortran --prefix=/usr --program-suffix=-4.7 --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --disable-libgcj --with-default-libstdcxx-abi=c++98 --with-isl --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux | |
#Use old ABI as old ABI is still used in Fedora 22? | |
#http://developerblog.redhat.com/2015/02/05/gcc5-and-the-c11-abi/ | |
#export CFLAGS_FOR_BUILD="-g -O2 -D_GLIBCXX_USE_CXX11_ABI=0 -Wabi-tags" | |
#build | |
make | |
#snapshot filesystem so we can rollback if things go bananas | |
sudo mkdir /.snapshots | |
sudo btrfs subvolume snapshot / /.snapshots/snap1 | |
#install | |
sudo make install | |
#check the install | |
gcc -v | |
#Using built-in specs. | |
#COLLECT_GCC=gcc | |
#COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/5.1.1/lto-wrapper | |
#Target: x86_64-redhat-linux | |
#Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --disable-libgcj --with-default-libstdcxx-abi=c++98 --with-isl --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux | |
#Thread model: posix | |
#gcc version 5.1.1 20150618 (Red Hat 5.1.1-4) (GCC) | |
gcc-4.7 -v | |
#Using built-in specs. | |
#COLLECT_GCC=gcc-4.7 | |
#COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.7.4/lto-wrapper | |
#Target: x86_64-redhat-linux | |
#Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran --prefix=/usr --program-suffix=-4.7 --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --disable-libgcj --with-default-libstdcxx-abi=c++98 --with-isl --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux | |
#Thread model: posix | |
#gcc version 4.7.4 (GCC) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment