User Tools

Site Tools


nix:gcc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
nix:gcc [2016/04/22 10:22]
kauffman
nix:gcc [2021/01/20 12:25]
kauffman
Line 1: Line 1:
 ====== GCC ====== ====== 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.
 +
 +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.
 +
 +<​code>​
 +$ module --terse avail |grep gcc
 +/​etc/​environment-modules/​modules:​
 +gcc/4.9.4
 +gcc/5.5.0
 +gcc/6.5.0
 +gcc/7.5.0
 +gcc/8.4.0
 +gcc/9.3.0
 +gcc/10.2.0
 +</​code>​
 +
 +<​code>​
 +$ module load gcc/4.9.4
 +</​code>​
 +
 +<​code>​
 +$ echo "$PATH | $INCLUDE | $LD_LIBRARY_PATH | $MANPATH"​
 +/​usr/​local/​gcc/​4.9.4/​bin:/​home/​kauffman3/​bin:/​usr/​local/​bin:/​usr/​bin:/​bin:/​usr/​local/​games:/​usr/​games:/​opt/​puppetlabs/​bin ​
 +| /​usr/​local/​gcc/​4.9.4/​include | /​usr/​local/​gcc/​4.9.4/​lib | 
 +/​usr/​local/​gcc/​4.9.4/​man:/​usr/​share/​man
 +</​code>​
 +
 +<​code>​
 +$ gcc --version
 +gcc (GCC) 4.9.4
 +</​code>​
 +
 +<​code>​
 +$ module unload gcc
 +</​code>​
 +
 +
 ===== Building GCC in your home directory ===== ===== Building GCC in your home directory =====
 https://​gcc.gnu.org/​wiki/​InstallingGCC https://​gcc.gnu.org/​wiki/​InstallingGCC
-Strap in cause this will take a while. You will want to prepare a sandwich and a drink once we start compiling. 
  
 +You will want to prepare a sandwich and a drink once we start compiling.
 +
 +===== Requirements =====
 +  - About 6.5G of scratch space.
 +  - ~1G for the actual install. This means if you require a higher [[ techstaff:​quota|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 ==== ==== Example ====
Line 9: Line 54:
 #!/bin/bash #!/bin/bash
  
-PREFIX=$HOME/​usr/local/gcc/4.9.3+gccversion='​7.1.0'​ 
 +PREFIX="$HOME/.local/gcc/${gccversion}"​
  
-# Building gcc in $HOME+# Building gcc 
 +gccversionuc="​${gccversion//​./​_}"​
  
 INSTALLDIR=/​tmp/​$USER INSTALLDIR=/​tmp/​$USER
Line 17: Line 64:
 cd $INSTALLDIR cd $INSTALLDIR
  
-svn co svn://​gcc.gnu.org/​svn/​gcc/​tags/​gcc_4_9_3_release ​gcc-4.9.3 +svn co svn://​gcc.gnu.org/​svn/​gcc/​tags/​gcc_${gccversionuc}_release ​gcc-${gccversion} 
-cd gcc-4.9.3+cd gcc-${gccversion}
 ./​contrib/​download_prerequisites ./​contrib/​download_prerequisites
 cd ../ cd ../
 mkdir objdir mkdir objdir
 cd objdir cd objdir
-$PWD/​../​gcc-4.9.3/configure \+$PWD/​../​gcc-${gccversion}/configure \
   --prefix=$PREFIX \   --prefix=$PREFIX \
   --enable-languages=c,​c++,​fortran,​go \   --enable-languages=c,​c++,​fortran,​go \
Line 32: Line 79:
 make install make install
  
-export PATH=$PREFIX/​bin:​$PATH +# clean up 
-export LD_LIBRARY_PATH=$PREFIX/​lib:​$LD_LIBRARY_PATH+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 "You should add the following to your .bashrc"​
 echo "to make the exports permanent"​ echo "to make the exports permanent"​
-echo " ​ export PATH=$PREFIX/​bin:​${PATH}+echo " ​ export PATH=\$HOME/$PREFIX/​bin:​\$PATH"​ 
-echo " ​ export LD_LIBRARY_PATH=$PREFIX/​lib:​${LD_LIBRARY_PATH}"+echo " ​ export LD_LIBRARY_PATH=\$HOME/$PREFIX/​lib:​\$LD_LIBRARY_PATH"​ 
 +</​code>​ 
 + 
 +===== Troubleshooting ===== 
 +==== '​module'​ command not found ==== 
 +To resolve you may have to do the following:​ 
 +<​code>​ 
 +source /​etc/​profile.d/​modules.sh
 </​code>​ </​code>​
/var/lib/dokuwiki/data/pages/nix/gcc.txt · Last modified: 2021/01/20 12:25 by kauffman