User Tools

Site Tools


nix:gcc

This is an old revision of the document!


We can haz GCC

GCC Versions that are already installed on CS infrastructure

Usually, we install multiple versions. The default version of GCC probably won't be changed system wide… ever.

Here is a list of packages we install as of 2017-05-02:

gcc
gcc-4.7-uofc-cs
gcc-4.9-uofc-cs
gcc-5
gcc-5-base:amd64
gcc-5-multilib
gcc-5.4-uofc-cs
gcc-6-base:amd64
gcc-6-base:i386
gcc-6.3-uofc-cs
gcc-7.1-uofc-cs

We are now taking more advantage of environment modules. This means depending on when you read this you could load the version of GCC you want to use.

kauffman3@green:~$ $ module --terse avail
/etc/environment-modules/modules:
cmake/3.1.1
cmake/3.8.0
gcc/4.7.4
gcc/4.9.3
gcc/5.4.0
gcc/6.3.0
gcc/7.1.0


kauffman3@green:~$ module load gcc/4.7.4

kauffman3@green:~$ echo "$PATH | $INCLUDE | $LD_LIBRARY_PATH | $MANPATH"
/usr/local/gcc/4.7.4/bin:/home/kauffman3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/puppetlabs/bin 
| /usr/local/gcc/4.7.4/include | /usr/local/gcc/4.7.4/lib | 
/usr/local/gcc/4.7.4/man:/usr/share/man

kauffman3@green:~$ gcc --version
gcc (GCC) 4.7.4

kauffman3@green:~$ module unload gcc/4.7.4

kauffman3@green:~$ gcc --version
gcc (Ubuntu 4.9.4-2ubuntu1~14.04.1) 4.9.4

Building GCC in your home directory

https://gcc.gnu.org/wiki/InstallingGCC

You will want to prepare a sandwich and a drink once we start compiling.

Requirements

  1. About 6.5G of scratch space.
  2. ~1G for the actual install. This means if you require a higher quota you will need to request this before proceeding.

You will want to use /var/tmp, /tmp, or /local as the place to checkout and build GCC.

Example

#!/bin/bash

PREFIX="$HOME/.local/gcc/4.9.3"

# Building gcc in $HOME

INSTALLDIR=/tmp/$USER
mkdir -p $INSTALLDIR
cd $INSTALLDIR

svn co svn://gcc.gnu.org/svn/gcc/tags/gcc_4_9_3_release gcc-4.9.3
cd gcc-4.9.3
./contrib/download_prerequisites
cd ../
mkdir objdir
cd objdir
$PWD/../gcc-4.9.3/configure \
  --prefix=$PREFIX \
  --enable-languages=c,c++,fortran,go \
  --enable-shared \
  --enable-multiarch \
  --enable-threads=posix
make -j4
make install

# clean up
rm -r $INSTALLDIR/objdir


export PATH=$HOME/$PREFIX/bin:$PATH
export LD_LIBRARY_PATH=$HOME/$PREFIX/lib:$LD_LIBRARY_PATH

echo "You should add the following to your .bashrc"
echo "to make the exports permanent"
echo "  export PATH=\$HOME/$PREFIX/bin:\$PATH"
echo "  export LD_LIBRARY_PATH=\$HOME/$PREFIX/lib:\$LD_LIBRARY_PATH"
/var/lib/dokuwiki/data/attic/nix/gcc.1495056287.txt.gz · Last modified: 2017/05/17 16:24 by kauffman