안녕하세요.

RedHat 5.7 사용자입니다.

 

/lib64/lib-2.5.so 파일을 다른 디렉토리에 복사했다가 다시 원래 위치로 복사했더니 시스템이 멈춰버렸습니다.

 

그래서 리부팅했더니 아래 메세지가 나오면서 부팅이 않됩니다.

/sbin/init: error while loading shared libraries: /lib64/libc.so.6: file too short

Kernel panic - not syncing: Attempted to kill init!

 

위 테스트를 하게된 동기는

so파일을 만들어 사용하다가  동일한 so파일을 복사하면 SIGBUG를 받으며 application이 죽더군요.

( 기존에 사용하던 AIX에서는 없던 현상입니다.)

 

AIX와 달리 Linux에서는 shared library를 만들때 library versioning을 해야한다고 해서 ldconfig도 사용했습니다.

대략 dlopen()시에 문제가 발생하는 것 같은데요. 정확한 이유를 모르겠습니다.

 

왜 동일한(= 변경되지 않은) so 파일이 복사만 되어도 문제가 되는건지 궁금합니다.

많은 분들의 고견을 기다립니다.

XE Login