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 커널에 포함되었습니다.

우분투를 확인하세요 /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

관련 정보