История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
узнал, что в Gentoo у glibc есть юз-флаг hash-sysv-compat и он по дефолту выключен, а для очень старых бинарников это нужно.
Ну, в целом linux это как по мне вообще не про бинарную переносимость, это скорее наоборот лютая антипереносимость. На любой чих по хорошему пересборка, а если не повезёт правка исходников ещё. А если очень не повезёт то правка исходников зависимостей. На то будет ли твоя программа хотя бы запускаться через года три всем плевать и скорее всего нет, не будет твоя программа запускаться если ты полагаешься на дистрибутив который обновляется как хочет и куда хочет. Либо ты с собой таскаешь вообще всё что только можешь унести, либо ты на постоянной основе пляшешь вокруг своей программы постоянно внося правки успевая за дистрибутивами и апстримом либо у тебя есть хоть какая то абстракция и некое подобие платформы где основные моменты решают за тебя, а ты держишь себя строго в рамках продуманной хоть как-то архитектуры обуславливающей просто запуск ПО.
Ой короче, сложна. Всё ситуативное и каждый частный случай уникальный. Как только твоя программа делает что-то кроме показа картинки и воспроизведения звука через библиотеки прослойки типа SDL2 то добро пожаловать в АД. Поэтому лучшее средство для переносимости и умение себя ограничивать и жить следуя разумным компромиссам, если выходишь за рамки то всё, будь добр соответствовать темпу жизни и бороться возникшими проблемами, ну или обходить их. Ну или болт положить на некий пласт пользователей. Или ещё что.
А если собрать статический бинарник, который ни от чего не зависит, кроме ядра, то он будет работать вечно.
Возможно, но собрать например GTK+ программу так что-бы она работала на любом дистрибутиве. Эта задачка мягко говоря, эдакая.
Исходная версия LINUX-ORG-RU, :
узнал, что в Gentoo у glibc есть юз-флаг hash-sysv-compat и он по дефолту выключен, а для очень старых бинарников это нужно.
Ну, в целом linux это как по мне вообще не про бинарную переносимость, это скорее наоборот лютая антипереносимость. На любой чих по хорошему пересборка, а если не повезёт правка исходников ещё. А если очень не повезёт то правка исходников зависимостей. На то будет ли твоя программа хотя бы запускаться через года три всем плевать и скорее всего нет, не будет твоя программа запускаться если ты полагаешься на дистрибутив который обновляется как хочет и куда хочет. Либо ты с собой таскаешь вообще всё что только можешь унести, либо ты на постоянной основе пляшешь вокруг своей программы постоянно внося правки успевая за дистрибутивами и апстримом либо у тебя есть хоть какая то абстракция и некое подобие платформы где основные моменты решают за тебя, а ты держишь себя строго в рамках продуманной хоть как-то архитектуры обуславливающей просто запуск ПО.
Ой короче, сложна. Всё ситуативное и каждый частный случай уникальный. Как только твоя программа делает что-то кроме показа картинки и воспроизведения звука через библиотеки прослойки типа SDL2 то добро пожаловать в АД. Поэтому лучшее средство для переносимости и умение себя ограничивать и жить следуя разумным компромиссам, если выходишь за рамки то всё, будь добр соответствовать темпу жизни и бороться возникшими проблемами, ну или обходить их. Ну или болт положить на некий пласт пользователей. Или ещё что.