LINUX.ORG.RU

libc6 для arm

 , ,


1

2

Всем привет. Не запускается программа на ARM девайсе:

# ./hello_world
./hello_world: /lib/libc.so.6: version `GLIBC_2.17' not found (required by ./hello_world)
Соответственно, нужно как-то добыть libc. Погуглил - в интернете все либо в виде deb архивов(не имею dpkg на девайсе + read-only fs), либо сырцы(но тоже вроде как не под арм). Где можно вынять эту либу? девайс armV6, кстати



Последнее исправление: dossalab (всего исправлений: 2)

Неправильно. Это у тебя в тулчейне libc новее, чем на устройстве. Кастуй waker, вроде он знает что делать.

anonymous
()

Соответственно, нужно как-то добыть libc

не нужно, нужно собрать hello_world с glibc старее, на сколько старее смотреть на целевой системе

hizel ★★★★★
()

Хм, а как это вообще понимать? Крайняя вроде бы 2.2X

# ./libc.so.6
GNU C Library stable release version 2.5, by Roland McGrath et al.

dossalab
() автор топика

А, действительно. Сейчас попробую поставить, неудобно, конечно

dossalab
() автор топика

Хотя как так получается - я уже много раз компилировал разные штуки, и никогда такой проблемы не было. Может что-то в настройках компилятора поковырять можно?

dossalab
() автор топика
Ответ на: комментарий от dossalab

Хотя как так получается - я уже много раз компилировал разные штуки, и никогда такой проблемы не было.

Зависит от того, какие символы из библиотеки используются. Сейчас добавилось что-то, что изменило реализацию в 2.17.

xaizek ★★★★★
()
Ответ на: комментарий от reedych

Проблема в том что я не могу найти glibc 2.5 под мою ось, точнее он поставляется в виде архива и фиг пойми как вообще его установить

Может, все таки есть возможность собрать новый glibc под девайс?

dossalab
() автор топика
30 августа 2017 г.
Ответ на: комментарий от dossalab

возможность есть, но могут быть проблемы.
Самый простой способ - взять glibc из тулчейна и положить в другое место. пускай это будет /opt/yourapp/lib
Туда же положить ld-linux.so.blabla
запускать так: /opt/yourapp/lib/ld-linux.so.blabla --library-path /opt/yourapp/lib /opt/yourapp/bin/yourapp
Можно попытаться обновить и системный libc, но от такого скачка версий могут поломаться системные приложения (и скорее всего так и будет)
Ещё есть проблема FATAL: kernel too old. Скорее всего у тебя не получится собрать запускаемый с твоим ядром бинарник потому что каждые несколько лет дропают поддержку старых ядер.
У меня так NAS без дела стоит - недавно выпилили поддержку <2.6.32 и я больше не могу там развернуть chroot окружение.

mittorn ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.