LINUX.ORG.RU

[ARM][uClibc] Cannot resolve symbol 'open64'

 ,


0

0

Всем здравствуйте!

Собственно...

Собрал один, нужный для меня, набор утилит под архитектуру ARM. GCC - 4.2.4, uClibc - 0.9.30.1.

На ARM-компьютере утилиты не запускается, а сообщает о том, что Cannot resolve symbol 'open64' и Cannot resolve symbol 'readdir64'.

Разве uClibc не поддерживает эти функции (или символы)???

Поискал в /lib:
# find -name «*» | xargs grep -E «readdir64»
Binary file ./libc-2.3.6.so matches
Binary file ./libc.so.6 matches
#nm libc-2.3.6.so | grep readdir64
00087c6c t __readdir64
00087e4c t __readdir64_r
00087c6c T readdir64@@GLIBC_2.4
00087e4c T readdir64_r@@GLIBC_2.4
#nm libc-2.3.6.so | grep open64
000588bc t _IO_fopen64
000acf00 t __GI___open64
000acf00 t __libc_open64
000acf00 W __open64
000588bc W fopen64
0005f120 T freopen64
000acf00 W open64
....

Вроде бы все есть. Куда копать? И можно ли добавить поддержку этих функций в uClibc, если их там нет(в чем я очень сильно сомневаюсь конечно). Буду всем очень признателен.

Спасибо


Может собрать статически?

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

Да флагов - то немного...

-O2 -g -Wall -Wextra -Wwrite-strings -Wno-sign-compare

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

>Включи поддержку Large File Support.

Включил, без нее утилиты не собирались, говорили что uClibc собрана без поддержки Large Files

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

Как утилиты называются и тулчейн наверняка опять самосборный ? Тут столько вариантов что даже не охота продолжать.

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

>Как утилиты называются и тулчейн наверняка опять самосборный ?

Ну вообще тулчейн собирал builroot'ом.

Утилиты - mtd-utils, брал тут git://git.infradead.org/mtd-utils.git

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

>Ну вообще тулчейн собирал builroot'ом.

Почему бы тогда не сделать еще один верный шаг и не собрать mtd-utils самим buildroot, благо они отлично собираются с uclibc и есть в составе buildroot :)

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

Пробовал, но что-то не получилось, конкретно уже не помню что именно.

К тому же в buildroot'е не все утилиты mtd-utils, например ubiformat я там таки не нашел.

Но все равно спасибо

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

>Почему бы тогда не сделать еще один верный шаг и не собрать mtd-utils самим buildroot, благо они отлично собираются с uclibc и есть в составе buildroot :)

Кстати, это натолкнуло меня на мысль http://buildroot.uclibc.org/buildroot.html#add_packages

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

>например ubiformat я там таки не нашел.

Да - я ее там тоже не вижу только насколько я знаю она и не требуется в общем случае. К тому же можно подправить скрипт сборки если что.

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

>Да - я ее там тоже не вижу только насколько я знаю она и не требуется в общем случае. К тому же можно подправить скрипт сборки если что

Ужо :-)

Dennis7
() автор топика
#define _FILE_OFFSET_BITS 64
#define _LARGEFILE64_SOURCE

после этого можно пользоваться обычными функциями, без суффикса 64.

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

кстати можно напрямую во флагах компилятора указать -Dopen64=open и все.

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