Как правило, системы UNIX поддерживают обратную двоичную совместимость (двоичный файл, созданный на старой машине, продолжает работать на более новой), но не наоборот.Вы не можете ожидать, что двоичный файл, созданный на новой системе, будет работать на более старой.STT_GNU_IFUNC
является только первым из многих проблем, с которыми вы столкнетесь.
Если вам нужно создать двоичный файл на более новой машине, которая будет работать на более старой, см. этот документ.
Раньше было "apgcc: Оболочка GCC для создания переносимых двоичных файлов", которая делала это простым (на него ссылаются сверху), но, похоже, его уже нет; - (
Самый простой вариант - это сборка на старой машине (я использовал для сборки на RedHat 6.2, а получившийся двоичный файл работал везде ). На самом деле вам не нужно запускать RH-6.2 на физическоммашина, просто включите его в виртуальную машину.
Другой относительно простой вариант - встроить chroot
, снова используя инструменты и библиотеки из старого дистрибутива (например, RH-6.2).