Статическое связывание новых символов libc для использования с более низкой версией libc - PullRequest
3 голосов
/ 05 августа 2010

У меня есть приложение, которое использует системные вызовы eventfd и timerfd.Для этого вам нужно современное ядро ​​и библиотека libc, которая их поддерживает, по крайней мере, 2.8.

Моя текущая ситуация такова: у меня есть система с соответствующим ядром, но версия 2.7.11 libc, которая, очевидно, не поддерживаетнеобходимые функции для новых системных вызовов.
Но так как эти 2 интерфейса (timerfd, eventfd), вероятно, являются просто вызовом системного вызова из libc, мне было интересно, смогу ли я статически связать необходимые символы с современным libc, а затем запуститьприложение на 2.7.11 libc с соответствующим ядром.

Как я вижу, статически связанные функции будут просто выполнять системные вызовы без использования libc, и это сделает их безопасными, но я мог бы пропустить другие проблемы.

Кто-нибудь знает, возможно ли это, и как я могу статически связать только эти функции?

1 Ответ

3 голосов
/ 06 августа 2010

Возможно, более целесообразно создать собственные условно скомпилированные версии, использующие syscall() для непосредственного вызова их.

...