2010-08-05 6 views
3

나는 eventfd 및 timerfd 커널 syscall을 사용하는 응용 프로그램을 가지고 있습니다. 이 용도로 사용하려면 최신 커널과 최소한 2.8 이상을 지원하는 libc가 필요합니다.낮은 libc 버전과 함께 사용하기 위해 새로운 libc 심볼을 정적으로 연결

나의 현재 상황은 알맞은 커널이지만 새로운 시스템 호출에 필요한 기능을 지원하지 않는 2.7.11 libc 버전의 시스템입니다.
그러나이 2 개의 인터페이스 (timerfd, eventfd)는 아마도 libc의 syscall 호출 일뿐입니다. 필요한 심볼을 현대 libc에 정적으로 링크 한 다음 2.7.11 libc에서 응용 프로그램을 실행할 수 있는지 궁금합니다. 적절한 커널.

정적으로 링크 된 함수는 libc를 사용하지 않고 syscall을 실행하기 만하면 libc를 사용하면 안전 할 수 있지만 다른 문제는 간과 할 수 있습니다.

누구나이게 가능한지 들리 겠지만 어떻게 그 기능들을 정적으로 링크시킬 수 있을까요?

답변

3

직접 호출하려면 syscall()을 사용하는 자신의 조건부 컴파일 버전을 만드는 것이 더 적합 할 것입니다.

+0

[이 패치] (http://accel-ppp.git.sourceforge.net/git/gitweb.cgi?p=accel-ppp/accel-ppp;a=commitdiff_plain;h=d32cf13525153b9bb961a72cded215e9866e78bd)를 읽는 것이 매우 도움이되었습니다. 나를 위해, 어쩌면 다른 사람을위한 것일 수도 있습니다. –

관련 문제