Насколько совместимы разные версии glibc?

Конкретно:

  1. Гарантировано ли как-то, что все версии glibc 2.x бинарно совместимы?

  2. Если нет, то как я могу запустить в своей системе бинарный файл (игру), который был скомпилирован для другой версии? Могу ли я установить glibc в другую папку?

Моя конкретная проблема заключается в совместимости между glibc 2.14 (то, что у меня есть) и 2.15 (то, что хочет игра).

Я мог бы также получить версию для glibc 2.13, но я не уверен, будет ли она работать на 2.14.


person Aaron Digulla    schedule 19.06.2012    source источник


Ответы (3)


Как правило, запуск двоичных файлов, скомпилированных для более старой версии glibc (например, 2.13), будет нормально работать в системе с более новой версией glibc (например, 2.14, как и ваша система).

Запуск бинарного файла, созданного для более новой glibc (например, 2.15, например той, которая вышла из строя) в системе со старой glibc, вероятно, не сработает.

Короче говоря, glibc обратно совместим, а не вперед.

person Kenneth Hoste    schedule 19.06.2012
comment
Это где-нибудь задокументировано? - person Ciro Santilli 新疆再教育营六四事件ۍ 14.06.2018

Согласно отчету, между glibc 2.14 и glibc 2.15 существуют лишь незначительные проблемы совместимости двоичных файлов. из восходящего трекера Linux.

Отчет создается с помощью abi-compliance-checker. и инструменты abi-tracker.

введите здесь описание изображения

См. также https://sourceware.org/glibc/wiki/Testing/ABI_checker.

person linuxbuild    schedule 12.09.2012

Используйте средство проверки соответствия ABI для проверки совместимости библиотек.

person Community    schedule 17.05.2013
comment
Это выглядит очень интересно. Есть ли способ автоматически генерировать файлы XML? - person Aaron Digulla; 17.05.2013
comment
@Aaron: В простом случае файлы XML содержат только пути к общим объектам и файлам заголовков. И, конечно же, вы можете сгенерировать их автоматически с помощью простого скрипта. - person linuxbuild; 20.05.2013
comment
@Aaron: Кроме того, вы можете использовать шаблон: <headers>{RELPATH}/include/</headers><libs>{RELPATH}/lib/</libs> с дополнительными параметрами: -vnum1, -vnum2, -relpath1 и -relpath2. - person linuxbuild; 20.05.2013