Skip to content

Commit 97c7336

Browse files
committed
Follow Ralf J's comments, but slightly better.
1 parent e912fa5 commit 97c7336

1 file changed

Lines changed: 10 additions & 17 deletions

File tree

‎ci/tools/install_gpu_driver.sh‎

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -90,25 +90,18 @@ in_container() {
9090
}
9191

9292
host_install() {
93-
local kernel_release kernel_version gcc_major=""
94-
local -a compiler_packages=()
93+
local kernel_release kernel_gcc default_gcc
9594
kernel_release=$(uname -r)
96-
# Compare the Ubuntu ABI version without the flavor (e.g. -generic).
97-
kernel_version=$(echo "$kernel_release" | sed -E 's/-[^0-9].*$//')
98-
if dpkg --compare-versions "$kernel_version" gt 6.8.0-142; then
99-
# Newer runner kernels may require flags missing from build-essential's GCC.
100-
gcc_major=$(sed -nE 's/.*gcc(-[0-9]+)? (\([^)]*\) )?([0-9]+)\..*/\3/p' /proc/version)
101-
if [ -z "$gcc_major" ]; then
102-
echo "::error::cannot detect the kernel GCC version from /proc/version" >&2
103-
return 1
104-
fi
105-
compiler_packages=("gcc-${gcc_major}" "g++-${gcc_major}")
106-
fi
107-
apt-get -y install build-essential "${compiler_packages[@]}" dkms "linux-headers-${kernel_release}" psmisc kmod
108-
109-
if [ -n "$gcc_major" ]; then
95+
apt-get -y install build-essential dkms "linux-headers-${kernel_release}" psmisc kmod
96+
97+
# Match the kernel's GCC major only when the default compiler differs.
98+
kernel_gcc=$(sed -nE 's/.*gcc(-[0-9]+)? (\([^)]*\) )?([0-9]+)\..*/\3/p' /proc/version)
99+
default_gcc=$(gcc -dumpversion | cut -d. -f1)
100+
echo "Kernel ${kernel_release}: GCC major=${kernel_gcc:-unknown}, default GCC major=${default_gcc}" >&2
101+
if [ -n "$kernel_gcc" ] && [ "$kernel_gcc" != "$default_gcc" ]; then
102+
apt-get -y install "gcc-${kernel_gcc}" "g++-${kernel_gcc}"
110103
# Installing a versioned compiler does not change the default; select it for DKMS.
111-
export CC="gcc-${gcc_major}" CXX="g++-${gcc_major}"
104+
export CC="gcc-${kernel_gcc}" CXX="g++-${kernel_gcc}"
112105
echo "Kernel ${kernel_release}: using CC=${CC} CXX=${CXX}" >&2
113106
fi
114107

0 commit comments

Comments
 (0)