Термин для Google - это «версия символа glibc».
Как это введение объясняет, glibc содержит несколько версий каждого символа, которые менялись с течением времени, и поэтому libc.so.6 содержит все версии glibc от 2.0 до той версии, которая указана.
Когда вы связываете с ней новую библиотеку или двоичный файл, вы используете .час файлы и экспортированные символы для новейших версий символов.
Что касается доступа к старым символам, на StackOverflow есть вопрос с именем Как я могу сделать ссылку на конкретную версию glibc?, но поскольку все ваши другие зависимости, скорее всего, тоже будут связаны с новейшими символами, гораздо проще просто использовать Docker или chroot для работы с более старыми версиями системы, потому что вы, вероятно, создадите ее с нуля, если не сделаете этого.
Разработчики Python фактически поддерживают контейнеры Docker с именами много линукс... специально для создания надежной основы для создания колес (распространяемых двоичных пакетов) для пакетов Python с скомпилированными компонентами.
Я считаю, что подход Windows ближе к объединению нескольких четко определенных профилей и призыву ко всем авторам предварительно скомпилированных библиотек предлагать сборки, ориентированные на более старые профили. (С оговоркой, что вы должны исходить из того, что должен быть бесплатноd той же единицей компиляции, что и маллокэто потому, что PE не имеет глобальных символов, и разные библиотеки могут зависеть от разных версий распределителя со своими собственными статический переменные и семантические различия.)