C

거믄마루 2013. 1. 16. 10:47

다른 라이브러리는 문제가 없는데 libresolv*.so 를 링크시킬 경우에만 GLIBC 호환성 문제가 발생하여 공유 라이브러리 전체를 대상으로 GLIBC_2.5 이상을 필요로 하는 함수를 찾아보았다.

$ find /lib* /usr/lib* -type f -name '*.so' | xargs -i nm {} | grep "GLIBC_2.[5-9]" > GLIBC_2.5
$ cat GLIBC_2.5
00000000 A GLIBC_2.7
00000000 A GLIBC_2.9
         U ns_get16@@GLIBC_2.9
00000000 A GLIBC_2.5
00000000 A GLIBC_2.6
00000000 A GLIBC_2.7
00000000 A GLIBC_2.8
00000000 A GLIBC_2.9
00000000 A GLIBC_2.5
00000000 A GLIBC_2.6
00000000 A GLIBC_2.7
00000000 A GLIBC_2.8
00000000 A GLIBC_2.9
0000000000000000 A GLIBC_2.7
0000000000000000 A GLIBC_2.9
                 U ns_get16@@GLIBC_2.9
0000000000000000 A GLIBC_2.5
0000000000000000 A GLIBC_2.6
0000000000000000 A GLIBC_2.7
0000000000000000 A GLIBC_2.8 

0000000000000000 A GLIBC_2.9


ns_get16 밖에 없다. ㅡ.ㅡ; 결국 libresolv 만 문제라는 결론에 도달...

두개가 나오는데... 하나는 32비트용, 다른 하나는 64비트용일 것이다.

저 함수하나때문에 애를 먹는 것이었군...

이 문제를 해결하는 방법은 이전 포스트들을 참조할 것...