Bashシェルでカーネルを構築するときに使用するGCCのバージョンを確実に決定する方法

Bashシェルでカーネルを構築するときに使用するGCCのバージョンを確実に決定する方法

現在実行中のカーネルをコンパイルするために使用されるGCCのバージョンを確認するためにbashシェルで信頼できる方法は何ですか?major.minor.patch出力の最初の行の最後のトークンと比較できる形式で必要ですgcc --version

私は/proc/version構文解析に以下を使用しました。

awk '{print $8}' /proc/version | tr -d ','

しかし、私が探しているバージョン文字列は常に表示されません/proc/version。より強力なアプローチはありますか?より困難な場合は、デプロイメントを独立して作成せずにUbuntuでのみ機能する強力なソリューションで十分です。

答え1

Pastebinの正しい出力を表示するようにGAD3Rのエディタを更新しました。

パッチは2022年9月28日にLinuxカーネルに含まれていました。

Ubuntuをチェックしてください/boot/config-$(uname -r)

grep -i gcc /boot/config-$(uname -r)
 
CONFIG_CC_VERSION_TEXT="x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=120300
CONFIG_GCC11_NO_ARRAY_BOUNDS=y
CONFIG_HAVE_GCC_PLUGINS=y

これはopensuseで動作します。

# gzip -dc /proc/config.gz | grep -i gcc

CONFIG_CC_VERSION_TEXT="gcc (SUSE Linux) 7.5.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=70500
CONFIG_HAVE_GCC_PLUGINS=y

関連情報