Как заставить мой ELF работать как с новой, так и с старой версией glibc?

Когда я компилирую своего эльфа, это «лучшая практика», чтобы связать его с самой старой версией glibc, поэтому я буду работать как в новых, так и в старых версиях glibc.

т. е. если я использую realpath, который в readelf вывод glibc, который мы видим, имеет как версию GLIBC_2.0, так и версию GLIBC_2.3, я хочу использовать старую версию, чтобы мой ELF работал на glibc 2.0 / 1/2.

Но версия GLIBC_2.3, вероятно, была разработана и обновлена ​​с момента ее публикации, и я думаю, что версия GLIBC_2.0 не изменилась с момента опубликования glibc 2.3. Поэтому я думаю, что я хочу, чтобы мой эльф использовал версию GLIBC_2.3, когда она присутствует, а когда нет, – чтобы вернуться к версии GLIBC_2.0.

Возможно ли это? Или что я не понимаю?

One Solution collect form web for “Как заставить мой ELF работать как с новой, так и с старой версией glibc?”

Я никогда не слышал о такой практике, тем более, что это лучшая практика. Самое близкое, о чем я могу думать, это то, что если вы посмотрите на вредоносное ПО ELF, оно часто компилируется по сравнению с действительно старыми версиями ядра Linux и старыми версиями libc. Однако я не уверен, что считается лучшей практикой.

Я не думаю, что явное падение возможно, учитывая, как Linux получает исполняемый файл ELF в память. Все ядро ​​- это разделы карты файла ELF в память, в соответствии с PT_LOAD Pheaders файла. Linux также отображается в «интерпретаторе», который обычно /lib/ld-linux.so.2 или /lib64/ld-linux-x86-64.so.2 . Этот интерпретатор является частью libc, и он отвечает за любую динамическую связь с libc.so или любыми другими общими объектами.

Файл ELF связан с любыми доступными доступными объектами, поэтому я написал, что выбор явной версии невозможен. Все дело в интерпретаторе ELF.

  • SIGINFO на GNU Linux (Arch Linux) отсутствует
  • Установка двух glibc рядом с debian / ubuntu
  • разница между libc6-dev и libc6
  • На Debian (64-разрядная версия), как установить glibc, который я построил из исходного кода?
  • Не удается обновить glibc на CentOS 7
  • Компиляция Apache с другой версией glibc
  • Установите более старую версию GLibc на RHEL
  • что означает elibc_FreeBSD в наложениях gentoo portage?
  • В чем разница между пакетами i686 и x86_64?
  • Локальная установка glibc-2.23 заставляет все программы выполнять segfault
  • Освобождение программного обеспечения linux - совместимость
  • Linux и Unix - лучшая ОС в мире.