LINUX.ORG.RU

Сборка Asterisk, ARM9, Linux.


0

0

Пытаюсь собрать Astersik для такой платы. Ядро и рутфс собрал buildroot'ом, компилятором buildroot'а пытаюсь собрать Asterisk.

export PATH=/home/andrei/ELinux/buildroot-2010.02/output/staging/usr/bin:${PATH}
./configure --host=i686 --build=arm-linux-uclibc

Собственно сборка идет, но ближе к концу линкер орет, что не может найти символы:

/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libc.so when searching for -lc
/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libc.a when searching for -lc
/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libxml2.so when searching for -lxml2
/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libxml2.a when searching for -lxml2
/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libz.so when searching for -lz
/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libz.a when searching for -lz
/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libm.a when searching for -lm
/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libm.a when searching for -lm
/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libc.so when searching for -lc
/usr/bin/ld: skipping incompatible /home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/libc.a when searching for -lc
app.o: In function `__init_ast_str_thread_global_buf':
/home/andrei/src/asterisk/main/app.c:53: undefined reference to `pthread_key_create'
app.o: In function `ast_safe_fork':
/home/andrei/src/asterisk/main/app.c:2044: undefined reference to `pthread_sigmask'
/home/andrei/src/asterisk/main/app.c:2073: undefined reference to `pthread_sigmask'
/home/andrei/src/asterisk/main/app.c:2050: undefined reference to `pthread_sigmask'
asterisk.o: In function `quit_handler':
/home/andrei/src/asterisk/main/asterisk.c:1628: undefined reference to `pthread_cancel'
/home/andrei/src/asterisk/main/asterisk.c:1655: undefined reference to `pthread_kill'
asterisk.o: In function `listener':
/home/andrei/src/asterisk/main/asterisk.c:1279: undefined reference to `pthread_testcancel'
asterisk.o: In function `main':
/home/andrei/src/asterisk/main/asterisk.c:3576: undefined reference to `pthread_sigmask'
/home/andrei/src/asterisk/main/asterisk.c:3728: undefined reference to `pthread_sigmask'
asterisk.o: In function `console_verboser':
/home/andrei/src/asterisk/main/asterisk.c:1725: undefined reference to `pthread_kill'
autoservice.o: In function `ast_autoservice_stop':
/home/andrei/src/asterisk/main/autoservice.c:281: undefined reference to `pthread_kill'
autoservice.o: In function `ast_autoservice_start':
/home/andrei/src/asterisk/main/autoservice.c:242: undefined reference to `pthread_kill'
bridging.o: In function `bridge_poke':
/home/andrei/src/asterisk/main/bridging.c:139: undefined reference to `pthread_kill'
/home/andrei/src/asterisk/main/bridging.c:139: undefined reference to `pthread_kill'
bridging.o:/home/andrei/src/asterisk/main/bridging.c:139: more undefined references to `pthread_kill' follow
bridging.o: In function `ast_bridge_depart':
/home/andrei/src/asterisk/main/bridging.c:1091: undefined reference to `pthread_join'
bridging.o: In function `ast_bridge_change_state':
/home/andrei/src/asterisk/main/bridging.c:125: undefined reference to `pthread_kill'
/home/andrei/src/asterisk/main/bridging.c:125: undefined reference to `pthread_kill'
/home/andrei/src/asterisk/main/bridging.c:125: undefined reference to `pthread_kill'
/home/andrei/src/asterisk/main/bridging.c:125: undefined reference to `pthread_kill'
/home/andrei/src/asterisk/main/bridging.c:125: undefined reference to `pthread_kill'

Собственно libpthread тоже лежит в папке

/home/andrei/ELinux/buildroot-2010.02/output/staging/usr/lib/

Не понятно, почему юзается /usr/bin/ld, наверное поэтому ему не нравятся библиотеки?

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

google

Ну так гугл-то я видел, без него-то наверное вообще не началось собираться. Не понимаю как сказать ему что бы он ld начал нормальную использовать, и почему либы не подходят.

Quasar_ru
() автор топика
Ответ на: google от Quasar_ru

Собирай в самом buildroot - он правильные опции автоматом подсунет, strip сделает и маны-шманы с хидерами ненужными на целевой корненвой фс автоматом выпилит. Например типа такого создай правило в package:

ASTERISK_VERSION = 1.2.3 #твоя версия
ASTERISK_SOURCE = asterisk-$(ASTERISK_VERSION).tar.gz
ASTERISK_SITE = http://downloads.asterisk.org/pub/telephony/asterisk/releases/
ASTERISK_LIBTOOL_PATCH = NO #поменяй на YES при необходимости
ASTERISK_DEPENDENCIES = sdl #понятия не имею о его зависимостях - поставь свои

$(eval $(call AUTOTARGETS,package,asterisk))

потом добавь в общий Config.in путь к своей директории, вообще по аналогии с любым пакетом сделай.

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

>>Может линкер подменить?

ничего подменять не надо. при указании правильного target автоматически берется то что надо

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

В общем собрал в buildroot'е. Вроде работает, SIP запустился, варнинги какие-то при запуске выкидывает, но в целом пашет.

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