Skip to content

Instantly share code, notes, and snippets.

@stolyarchuk
Last active August 13, 2025 01:44
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 priority=$2
# shellcheck disable=SC2086
update-alternatives --remove-all cpp
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11 \
--slave /usr/bin/cpp cpp /usr/bin/cpp-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/bin/gcc-${version} ${priority} \
--slave /usr/bin/cpp cpp /usr/bin/cpp-${version} \
--slave /usr/bin/g++ g++ /usr/bin/g++-${version} \
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-${version} \
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-${version} \
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-${version} \
--slave /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-${version} \
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-${version} \
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-${version} \
--slave /usr/bin/gcov gcov /usr/bin/gcov-${version}
}
register_gcc_version "$1" "$2"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment