История изменений
Исправление iliyap, (текущая версия) :
glibc сопровождают качественно, она обратно совместима. Старые бинарники работают с новой glibc, не падают. Это благодаря версионированным символам. Во время динамической линковки (т.е. во время запуска бинарника) динамический линкер видит в бинарнике GLIBC_2.11 (например), и достаёт из libc.so.6 символы с версией @GLIBC_2.11, а не какие-то другие.
Но вот во время сборочной линковки почему-то нельзя указать, с какой версией символов ты хочешь линковаться. Линкер линкует с версией по умолчанию, указанной в библиотеке, и она может быть только одна. Логично, что она самая последняя.
И тут вступает в игру многолетний идиотизм: пакет glibc-devel зависит от пакета glibc, причём той же версии. Потому что в пакете glibc-devel нет файла libc.so, а есть только симлинк libc.so -> libs.so.6. В результате ты не можешь поставить glibc-devel другой версии, чем твой рантаймовый glibc.
Думаю эта экономия дискового пространства за счёт использования симлинка была придумана давным давно бородатыми вытиранами.
На мой взгляд достаточно разорвать эту зависимость. Положить в пакет glibc-devel файл libc.so (а не симлинк). Тогда можно будет ставить glibc-devel любой версии и линковаться с любой версией glibc.
Исходная версия iliyap, :
glibc сопровождают качественно, она обратно совместима. Старые бинарники работают с новой glibc, не падают. Это благодаря версионированным символам. Во время динамической линковки (т.е. во время запуска бинарника) динамический линкер видит в бинарнике GLIBC_2.11 (например), и достаёт из libc.so.6 символы с версией @GLIBC_2.11, а не какие-то другие.
Но вот во время сборочной линковки почему-то нельзя указать, с какой версией символов ты хочешь линковаться. Линкер линкует с версией по умолчанию, указанной в библиотеке, и она может быть только одна. Логично, что она самая последняя.
И тут вступает в игру многолетний идиотизм: пакет glibc-devel зависит от пакета glibc, причём той же версии. Потому что в пакете glibc-devel нет файла libc.so, а есть только симлинк libc.so -> libs.so.6. В результате ты не можешь поставить glibc-devel другой версии, чем твой рантаймовый glibc.
Думаю эта экономия дискового пространства за счёт использования симлинка была придумана давным давно бородатыми вытиранами.
На мой взгляд достаточно разорвать эту зависимость. Положить в пакет glibc-devel файл libc.so (а не симлинк). Тогда можно будет ставить glibc-devel любой версии и линковаться с любой версией glibc.