Skip to content

Instantly share code, notes, and snippets.

@stolyarchuk
Created September 17, 2024 08:50
Show Gist options
  • Save stolyarchuk/a6fd137eac0ab8a769b2d1f8a565e24e to your computer and use it in GitHub Desktop.
Save stolyarchuk/a6fd137eac0ab8a769b2d1f8a565e24e to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
function register_gcc_version {
local version=$1
local version_major=
local priority=$2
# shellcheck disable=SC2086
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11 \
--slave /usr/bin/g++ g++ /usr/bin/g++-11 \
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-11 \
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-11 \
--slave /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-11 \
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-11 \
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-11 \
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-11 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-11
# shellcheck disable=SC2086
update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-${version}/bin/gcc-${version_major} ${priority} \
--slave /usr/bin/g++ g++ /usr/local/gcc-${version}/bin/x86_64-linux-gnu-g++-${version_major} \
--slave /usr/bin/gcc-ar gcc-ar /usr/local/gcc-${version}/bin/x86_64-linux-gnu-gcc-ar-${version_major} \
--slave /usr/bin/gcc-nm gcc-nm /usr/local/gcc-${version}/bin/x86_64-linux-gnu-gcc-nm-${version_major} \
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/local/gcc-${version}/bin/x86_64-linux-gnu-gcc-ranlib-${version_major} \
--slave /usr/bin/lto-dump lto-dump /usr/local/gcc-${version}/bin/lto-dump-${version_major} \
--slave /usr/bin/gcov-dump gcov-dump /usr/local/gcc-${version}/bin/gcov-dump-${version_major} \
--slave /usr/bin/gcov-tool gcov-tool /usr/local/gcc-${version}/bin/gcov-tool-${version_major} \
--slave /usr/bin/gcov gcov /usr/local/gcc-${version}/bin/gcov-${version_major}
}
register_gcc_version "$1" "$2"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment