Показаны сообщения с ярлыком ldd. Показать все сообщения
Показаны сообщения с ярлыком ldd. Показать все сообщения

22 мая 2012 г.

linux: почему же ELF interpreter в Arch Linux 64 линкуется в /lib

Как-то однажды я собрал программу в своём 64-битном Arch Linux и отдал бинарник, а оно берёт и не работает. Пишет:
/lib/ld-linux-x86-64.so.2: bad ELF interpreter: Нет такого файла или каталога
Ну, долго тут думать не пришлось — оказался странным путь для ld-linux-x86-64. Я не понял как оно должно быть по LSB, но во всех тестируемых системах ld-linux-x86-64.so.2 ищется в /lib64.
Fedora 17:
$ whereis ld-linux-x86-64.so.2
ld-linux-x86-64.so: /lib64/ld-linux-x86-64.so.2 /usr/lib64/ld-linux-x86-64.so.2
Arch Linux:
$  whereis ld-linux-x86-64.so.2
ld-linux-x86-64.so: /lib/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2
В генту lib это ссылка на lib64.
Причём, в арче в lib64 кроме двух ссылок на соответствующие файлы в lib больше ничего нет:
$ ls /lib64
ld-2.15.so  ld-linux-x86-64.so.2