커널 모듈에는 얼마나 많은 Strip(1)-ing이 적합합니까?

커널 모듈에는 얼마나 많은 Strip(1)-ing이 적합합니까?

나는 정기적으로 Slackware Linux용 패키지를 생성하며, 그 프로세스의 일부는 공간을 덜 차지하도록 바이너리를 제거하는 것입니다. 커널 모듈이 있는 경우 strip --strip-all(또는 strip옵션이 없는 경우) 일반적으로 플러그인에 실패하는 것으로 나타났습니다 .

치명적: cloop 삽입 오류(/lib/modules/2.6.38.7-smp/kernel/fs/cloop/cloop.ko): 잘못된 모듈 형식

커널 모듈에는 어떤 수준의 스트리핑이 권장됩니까? 을 사용하는 경우 --strip-debug시스템 성능 및/또는 오류 로깅에 부정적인 영향을 미칠 수 있는 디버깅 기호를 제거합니까?

답변1

모든 기호를 제거하면 모듈에서 호출한 기호 이름이 제거됩니다. 이것은 작동하지 않습니다.

strip --strip-debug *.ko디버깅 기호를 제거하려면 (=)를 사용하는 것이 strip -g *.ko안전합니다 . 실행하면 커널 makefile이 이 작업을 수행합니다 make INSTALL_MOD_STRIP=1 modules_install.

CONFIG_DEBUG_INFO커널을 정의되지 않도록 구성하여 디버깅 기호가 삽입되는 것을 방지할 수 있습니다.

당신은 또한 볼 수 있습니다Linux 커널 모듈을 손상시키지 않고 로컬 기호를 제거하는 방법은 무엇입니까?

답변2

나는 가장 안전한 방법이 있다고 믿습니다 strip --strip-unneeded.

관련 정보