본문 바로가기
3. 개발 관련/정리 :: issue 와 resovle

리눅스 커널 섹션 Mismatch!

by kyuho.choi 2010. 5. 26.
728x90
반응형
커널을 빌드하다 보면 섹션이 안맞는다~ 라는 메시지가 종종 나온다
이에 대한 자세한 정보를 확인하고 플 땐 어떻게 해야하나!?

Make 옵션 중에는 매우 똘똘한 놈이 하나 있는데 그것이바로
"CONFIG_DEBUG_SECTION_MISMATCH"

커널 빌드시에 아래와 같이 옵션을 주고 빌드를하면,
make CONFIG_DEBUG_SECTION_MISMATCH=y -j5
어느 섹션이 이상하다~ 라고 하는 세부 정보를 커널을 빌드하다가 출력해준다.

=================================================
WARNING: vmlinux.o(.data+0x1dc5c): Section mismatch in reference from the variable s5p_serial_drv to the function .devexit.text:s3c24xx_serial_remove()
The variable s5p_serial_drv references
the function __devexit s3c24xx_serial_remove()
If the reference is valid then annotate the
variable with __exit* (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, 
=================================================

위의 경우에는 드라이버에서 remove 함수를 별도로 구현해서 호출하는 방식이아니라,
operation 지정시에 remove 함수를 직접 지정하여 mismatch warning 가 발생한 것이다.

시스템 운용에 해가 될 것은 없겠다만, 알아둬서 나쁠 것은 없지 않은가!!?? -ㅅ-;;
728x90
반응형

댓글