2010-12-22 3 views
2

내 배포판 (Arch Linux)은 최근 툴 체인 용으로 지원되는 최소 Linux 커널 버전을 증가 시켰습니다. 정적으로 링크 한 다음 웹 서버에 업로드하는 웹 응용 프로그램을 컴파일하고 있으며 웹 서버의 커널 버전이 새 도구 체인으로 컴파일 된 정적 라이브러리에 너무 오래되었습니다. (서버에서 정적 바이너리를 실행하려고 할 때 세그먼테이션 오류가 발생합니다.) 최신 커널 버전을 필요로하는 기능이 생략되도록 GNU 툴체인 (GCC, binutils, glibc)을 사용하여 응용 프로그램을 컴파일하는 방법이 있습니까?정적 라이브러리를 컴파일 할 때 이전 최소 커널 버전 설정

답변

1

Glibc 호환성은 실제로 한 방향에서만 보장됩니다. (이전 바이너리는 새로운 시스템에서 작동하며 그 반대의 경우도 마찬가지입니다.)

바이너리가 이전 시스템에서 작동하도록하려면 이전 glibc와의 링크를 컴파일하십시오. 가장 쉬운 방법은 오래된 배포판을 찾는 것입니다. 그러나 빌드 시스템에서 사용하는 것과 다른 libc를 목표로하는 "crosstool"또는 이와 유사한 크로스 컴파일 툴체인을 설정하는 것이 좋습니다. (이 방법은 다음과 상관없이 반복적으로 빌드 할 수 있습니다. 시스템이 무엇인지).

0

감사합니다. 또한 glibc에 --enable-kernel 옵션이있어서 이전 커널에서 작업 할 수 있음을 발견했습니다.

관련 문제