#ifdef CONFIG_CPU_32 이것이 무엇을 말하는것인지 잘모르겠어여

ky1031의 이미지

커널 소스코드를 분석을 하다보면
#ifdef CONFIG_CPU_32
이부분이 심심치 않게 나오는데여
이것이 정확하게 무엇을 말하는것인지...

답변 부탁드립니다.

new5244의 이미지

시스템이 32-bit CPU 일때 정의되는것 같네요.
단순히 32-bit CPU 일때 정의되는것은 아닌것 같고
실제로 사용되는 address 크기가 32-bit 일때 정의되는 것 같네요.

from saibi

mon12key의 이미지

CONFIG_CPU_32의 의미는 문자 그대로 CPU가 32비트이냐 하는 것 같군요.

커널 configuration에서 CONFIG_CPU_32가 설정되어 있을때,
예를 들어 .config에서 CONFIG_CPU_32=y로 설정되어 있다면
CONFIG_CPU_32이하 부분이 컴파일 될 것입니다.

그리고 커널의 설정은 cml 문법에 의해서 이루어 지는데(2.4.커널 기준 /($(linux_kerenl_source)/Document/kbuild/config-lanauage.txt)를 읽어보시면 자세히 나옵니다.)
arch/$(arch)/config.in에서 CONFIG_CPU_32에 대해 찾아보면 언제 설정되는지 알수있습니다. 예를 들어, arm의 경우 CONFIG_ARCH_ARCA5k가 설정되는 경우 이외에는 CONFIG_CPU_32가 설정됩니다.