ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • glibc 하위 버전 호환이 안될때
    카테고리 없음 2019.06.24 19:15

    특정 커널 시스템에 빌드된 glibc가 2.17을 포함하지 않을 경우 다음과 같은 오류를 만날 수 있다

     

    ./ssh: libc.so.6: version `GLIBC_2.17' not found (required by ./ssh)

     

    빌드된 바이너리에 GLIBC 의존성을 확인한다

     

    ❯ nm ./ssh | grep "GLIBC_2.17" 
             U clock_gettime@@GLIBC_2.17

     

    위의 경우 clock_gettime 함수가 glibc 2.17에 의존성이 있으므로 해당 함수를 사용하는 소스를 찾는다

     

    ~/openssh-6.4p1 gomsoup@ubuntu
    ❯ find ./ | grep -r clock_gettime 


    sandbox-seccomp-filter.c:       SC_ALLOW(clock_gettime),
    ...
    misc.c:         if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0)
    misc.c:         debug3("clock_gettime: %s", strerror(errno));

     

    sandbox_seccomp-filter.c와 misc.c에서 clock_gettime 함수를 사용하고 있으므로 해당 소스에 다음과 같이 추가한다

     

    ...

    #include "ssh.h"

     

    __asm__(".symver clock_gettime, clock_gettime@GLIBC_2.4"); // <- 해당 라인을 추가

    ...

     

    이후 빌드

    댓글 0

Designed by Tistory.