You can use this to revert to gcc-5, which still works. Use it as:
# gcc-select <old version> <new version> e.g. # gcc-select 6 5 ... will revert to gcc 5 to allow you to compile a kernel. # gcc-select 5 6 ... will revert to gcc-6. Obviously, you need to be root for this. And while it works fine for gcc-5 and gcc-6, I have no idea whether it'll work for previous or future gcc versions. It depends on whether gcc, cc and other executables are symlinked to gcc-5, cc-6 and so on. Hope it helps. .....Ron -- Ron Murray <r...@rjmx.net> PGP Fingerprint: 4D99 70E3 2317 334B 141E 7B63 12F7 E865 B5E2 E761
#! /bin/bash # Select gcc version # Assumes "gcc" etc in linked to "gcc-5" etc BINDIR="/usr/bin" # Array contining links to be changed declare LINKS=("cpp" "g++" "gcc" "gcc-ar" "gcc-nm" "gcc-ranlib" \ "gcov" "gcov-tool" "gfortran") # Make sure it's specified OLDVER=$1 NEWVER=$2 if [ -z "${OLDVER}" ] || [ -z "${NEWVER}" ] then echo "Usage: gcc-select [oldver] [newver]" echo "Currently:" ls -l ${BINDIR}/${LINKS[0]} exit fi for LINK in ${LINKS[*]} do echo ${LINK} # Check that old and new destinations exist TARGET=${BINDIR}/${LINK} OLDPOINT=${TARGET}-${OLDVER} NEWPOINT=${TARGET}-${NEWVER} if [ ! -e ${OLDPOINT} ] then echo "Current destination ${OLDPOINT} doesn't exist." exit fi if [ ! -e ${NEWPOINT} ] then echo "Intended destination ${NEWPOINT} doesn't exist." exit fi if ! rm -f ${TARGET} then echo "Error removing link ${TARGET}." exit fi if ! ln -sf ${NEWPOINT} ${TARGET} then echo "Error creating symbolic link ${NEWPOINT} --> ${TARGET}" exit fi done echo "Done."
signature.asc
Description: OpenPGP digital signature