This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
nix:gcc [2017/05/15 14:16] kauffman |
nix:gcc [2021/01/20 12:24] kauffman |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== GCC Versions that are already installed on CS infrastructure ===== | ===== 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. | 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: | ||
- | <code> | ||
- | gcc-4.7-uofc-cs | ||
- | gcc-4.8 | ||
- | gcc-4.8-base:amd64 | ||
- | gcc-4.9 | ||
- | gcc-4.9-base:amd64 | ||
- | gcc-6-base:amd64 | ||
- | gcc-uofc-cs | ||
- | </code> | ||
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. | 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> | <code> | ||
- | kauffman3@green:~$ $ module --terse avail | + | $ module --terse avail |grep gcc |
/etc/environment-modules/modules: | /etc/environment-modules/modules: | ||
- | cmake/3.1.1 | + | gcc/4.9.4 |
- | cmake/3.8.0 | + | gcc/5.5.0 |
- | gcc/4.7.4 | + | gcc/6.5.0 |
- | gcc/4.9.3 | + | gcc/7.5.0 |
- | gcc/5.4.0 | + | gcc/8.4.0 |
- | gcc/6.3.0 | + | gcc/9.3.0 |
- | gcc/7.1.0 | + | gcc/10.2.0 |
- | kauffman3@green:~$ module load gcc/4.7.4 | + | $ module load gcc/4.9.4 |
- | kauffman3@green:~$ echo "$PATH | $INCLUDE | $LD_LIBRARY_PATH | $MANPATH" | + | $ 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.9.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.9.4/include | /usr/local/gcc/4.9.4/lib | |
- | /usr/local/gcc/4.7.4/man:/usr/share/man | + | /usr/local/gcc/4.9.4/man:/usr/share/man |
- | kauffman3@green:~$ gcc --version | + | $ gcc --version |
- | gcc (GCC) 4.7.4 | + | gcc (GCC) 4.9.4 |
- | kauffman3@green:~$ module unload gcc/4.7.4 | + | $ module unload gcc |
- | + | ||
- | kauffman3@green:~$ gcc --version | + | |
- | gcc (Ubuntu 4.9.4-2ubuntu1~14.04.1) 4.9.4 | + | |
</code> | </code> | ||
Line 61: | Line 47: | ||
#!/bin/bash | #!/bin/bash | ||
- | PREFIX="$HOME/.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 69: | Line 57: | ||
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 86: | Line 74: | ||
# clean up | # clean up | ||
rm -r $INSTALLDIR/objdir | rm -r $INSTALLDIR/objdir | ||
- | |||
export PATH=$HOME/$PREFIX/bin:$PATH | export PATH=$HOME/$PREFIX/bin:$PATH | ||
Line 97: | Line 84: | ||
</code> | </code> | ||
- | If building a package you will want to use ''checkinstall''. Replace ''make install'' something like the following: | + | ===== Troubleshooting ===== |
+ | ==== 'module' command not found ==== | ||
+ | To resolve you may have to do the following: | ||
<code> | <code> | ||
- | checkinstall \ | + | source /etc/profile.d/modules.sh |
- | --strip=no \ | + | |
- | --stripso=no \ | + | |
- | --umask=022 \ | + | |
- | --install=no \ | + | |
- | --pkgname='gcc-uofc-cs' \ | + | |
- | --pkgversion='4.9.3' \ | + | |
- | --pkgrelease='1' \ | + | |
- | --pkggroup='devel' \ | + | |
- | --maintainer='Techstaff \<techstaff@cs.uchicago.edu\>' \ | + | |
- | --review-control \ | + | |
- | make install | + | |
</code> | </code> |