LINUX.ORG.RU

glibc-2.15 проблема при сборке под arm

 , ,


0

1

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

пытаюсь собрать glibc-2.15 PASS 1 при помощи кросс-компилятора CodeSourcery-2011.03-41

скачал и распоковал в glibc-2.15 glibc-ports-2.15

собираю нативные тулчайн для процессора arm926ej-s из glibc-build директории следующей командой

CC=/path/CodeSourcery-2011.03-41/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc \ AR=/path/CodeSourcery-2011.03-41/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ar \ RANLIB=/path/CodeSourcery-2011.03-41/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ranlib \ ../glibc-2.15/configure \ --prefix=/tools \ --target=arm-none-linux-gnueabi \ --host=arm-none-linux-gnueabi \ --disable-profile \ --enable-add-ons=nptl,glibc-ports-2.15 \ --enable-kernel=2.6.25 \ --with-headers=/tools/include \ libc_cv_forced_unwind=yes \ libc_cv_ctors_header=yes \ libc_cv_c_cleanup=yes

все очень долго компилируется и в один момент линкер выдает такую ошибку:

age-1/glibc-build/dlfcn/libdl.so /opt/lfs/stage-1/glibc-build/elf/ld.so /opt/lfs/stage-1/glibc-build/malloc/libmemusage_pic.a(memusage.os): In function `me': /opt/lfs/stage-1/glibc-2.15/malloc/memusage.c:253: undefined reference to `__aeabi_read_tp' /opt/lfs/stage-1/glibc-2.15/malloc/memusage.c:258: undefined reference to `__aeabi_read_tp' /opt/lfs/stage-1/glibc-build/malloc/libmemusage_pic.a(memusage.os): In function `update_data': /opt/lfs/stage-1/glibc-2.15/malloc/memusage.c:140: undefined reference to `__aeabi_read_tp' /opt/lfs/stage-1/glibc-2.15/malloc/memusage.c:154: undefined reference to `__aeabi_read_tp' /opt/lfs/stage-1/glibc-build/malloc/libmemusage_pic.a(memusage.os): In function `init': /opt/lfs/stage-1/glibc-2.15/malloc/memusage.c:319: undefined reference to `__aeabi_read_tp' collect2: ld returned 1 exit status make[2]: *** [/opt/lfs/stage-1/glibc-build/malloc/libmemusage.so] Error 1 make[2]: Leaving directory `/opt/lfs/stage-1/glibc-2.15/malloc' make[1]: *** [malloc/others] Error 2 make[1]: Leaving directory `/opt/lfs/stage-1/glibc-2.15' make: *** [all] Error 2

ни кто не сталкивался с этим? есть какие то мысли, как исправить? спасибо


Ответ на: комментарий от lfs

глядя на man gcc - тебе надо задать агрумент -mtp=soft комилятору. попробуй перед ./configure выполнить export CFLAGS=«$CFLAGS -mtp=soft»

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

спасибо, сейчас тоже курю в сторону CFLAGS и LDFLAGS

ananas, какие еще опции порекомендуешь поставить в CFLAGS и LDFLAGS?

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

с глибцами лучше не баловаться, а положиться на разрабов. оптимизацию, в принципе, можно и через ./configure задать, есть там соответствующие аргументы,а в CFLAGS - разве что -march еще

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

спасибо

вот пока составил CFLAGS:

-march=armv5te \ -mcpu=arm926ej-s \ -mtune=arm926ej-s \

-mabi=apcs-gnu \ -meabi=5 \ -mabi=aapcs-linux \ -mfloat-abi=soft \ -msoft-float \

-fomit-frame-pointer \ -frename-registers -Os

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

вот правда не понятно на счет -mabi то ли -mabi=apcs-gnu, то ли -mabi=aapcs-linux

по идее без разницы, главное, чтобы и остальной софт с тем же флагом был собран

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

не, флаги не помогли, все та же ошибка.

какие есть еще идеи?

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

У меня та же проблема. Не помогает

anonymous ()
29 июня 2012 г.

изменить в glibc-2.15/malloc/Makefile

# The implementation uses `dlsym'

$(objpfx)libmemusage.so: $(common-objpfx)dlfcn/libdl.so $(elfobjdir)/ld.so $(common-objpfx)libc_nonshared.

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