Hello all... sent this a couple of days ago but sent it to the wrong email. I have corrected the issue as I state later in the post but have yet to perform any runtime tests. If anyone thinks this could cause any issues the please let me know. Hello all, I am trying to cross-compile the pjproject for an arm target - arm-unknown-linux-uclibcgnueabi - but am having some issues. I have built the toolchain using buildroot and this seems to be working for other projects without issue. I configure the source as follows: $ ./configure --host=arm-unknown-linux-uclibcgnueabi I then run: $ make dep Followed by: $ make During the compilation the build fails as follows: if test ! -d ../lib; then mkdir -p ../lib; fi /srv/dataplace/software/development-current/gateway-linux-dev/buildroot/buildroot-2011.08/output/host/usr/bin/arm-unknown-linux-uclibcgnueabi-ar ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a output/pjlib-arm-unknown-linux-uclibcgnueabi/ioqueue_select.o output/pjlib-arm-unknown-linux-uclibcgnueabi/file_access_unistd.o output/pjlib-arm-unknown-linux-uclibcgnueabi/file_io_ansi.o output/pjlib-arm-unknown-linux-uclibcgnueabi/os_core_unix.o output/pjlib-arm-unknown-linux-uclibcgnueabi/os_error_unix.o output/pjlib-arm-unknown-linux-uclibcgnueabi/os_time_unix.o output/pjlib-arm-unknown-linux-uclibcgnueabi/os_timestamp_posix.o output/pjlib-arm-unknown-linux-uclibcgnueabi/guid_simple.o output/pjlib-arm-unknown-linux-uclibcgnueabi/addr_resolv_sock.o output/pjlib-arm-unknown-linux-uclibcgnueabi/log_writer_stdout.o output/pjlib-arm-unknown-linux-uclibcgnueabi/os_timestamp_common.o output/pjlib-arm-unknown-linux-uclibcgnueabi/pool_policy_malloc.o output/pjlib-arm-unknown-linux-uclibcgnueabi/sock_bsd.o output/pjlib-arm-unknown-linux-uclibcgnueabi/sock_select.o output/pjlib-arm-unknown-linux-uclibcgnueabi/activesock.o output/pjlib-arm-unknown-linux-uclibcgnueabi/array.o output/pjlib-arm-unknown-linux-uclibcgnueabi/config.o output/pjlib-arm-unknown-linux-uclibcgnueabi/ctype.o output/pjlib-arm-unknown-linux-uclibcgnueabi/errno.o output/pjlib-arm-unknown-linux-uclibcgnueabi/except.o output/pjlib-arm-unknown-linux-uclibcgnueabi/fifobuf.o output/pjlib-arm-unknown-linux-uclibcgnueabi/guid.o output/pjlib-arm-unknown-linux-uclibcgnueabi/hash.o output/pjlib-arm-unknown-linux-uclibcgnueabi/ip_helper_generic.o output/pjlib-arm-unknown-linux-uclibcgnueabi/list.o output/pjlib-arm-unknown-linux-uclibcgnueabi/lock.o output/pjlib-arm-unknown-linux-uclibcgnueabi/log.o output/pjlib-arm-unknown-linux-uclibcgnueabi/os_time_common.o output/pjlib-arm-unknown-linux-uclibcgnueabi/os_info.o output/pjlib-arm-unknown-linux-uclibcgnueabi/pool.o output/pjlib-arm-unknown-linux-uclibcgnueabi/pool_buf.o output/pjlib-arm-unknown-linux-uclibcgnueabi/pool_caching.o output/pjlib-arm-unknown-linux-uclibcgnueabi/pool_dbg.o output/pjlib-arm-unknown-linux-uclibcgnueabi/rand.o output/pjlib-arm-unknown-linux-uclibcgnueabi/rbtree.o output/pjlib-arm-unknown-linux-uclibcgnueabi/sock_common.o output/pjlib-arm-unknown-linux-uclibcgnueabi/sock_qos_common.o output/pjlib-arm-unknown-linux-uclibcgnueabi/sock_qos_bsd.o output/pjlib-arm-unknown-linux-uclibcgnueabi/ssl_sock_common.o output/pjlib-arm-unknown-linux-uclibcgnueabi/ssl_sock_ossl.o output/pjlib-arm-unknown-linux-uclibcgnueabi/ssl_sock_dump.o output/pjlib-arm-unknown-linux-uclibcgnueabi/string.o output/pjlib-arm-unknown-linux-uclibcgnueabi/timer.o output/pjlib-arm-unknown-linux-uclibcgnueabi/types.o /srv/dataplace/software/development-current/gateway-linux-dev/buildroot/buildroot-2011.08/output/host/usr/bin/arm-unknown-linux-uclibcgnueabi-ar: illegal option -- . Usage: /srv/dataplace/software/development-current/gateway-linux-dev/buildroot/buildroot-2011.08/output/host/usr/bin/arm-unknown-linux-uclibcgnueabi-ar [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file... /srv/dataplace/software/development-current/gateway-linux-dev/buildroot/buildroot-2011.08/output/host/usr/bin/arm-unknown-linux-uclibcgnueabi-ar -M [<mri-script] commands: d - delete file(s) from the archive m[ab] - move file(s) in the archive p - print file(s) found in the archive q[f] - quick append file(s) to the archive r[ab][f][u] - replace existing or insert new file(s) into the archive s - act as ranlib t - display contents of archive x[o] - extract file(s) from the archive command specific modifiers: [a] - put file(s) after [member-name] [b] - put file(s) before [member-name] (same as [i]) [D] - use zero for timestamps and uids/gids [N] - use instance [count] of name [f] - truncate inserted file names [P] - use full path names when matching [o] - preserve original dates [u] - only replace files that are newer than current archive contents generic modifiers: [c] - do not warn if the library had to be created [s] - create an archive index (cf. ranlib) [S] - do not build a symbol table [T] - make a thin archive [v] - be verbose [V] - display the version number @<file> - read options from <file> emulation options: No emulation specific options /srv/dataplace/software/development-current/gateway-linux-dev/buildroot/buildroot-2011.08/output/host/usr/bin/arm-unknown-linux-uclibcgnueabi-ar: supported targets: elf32-littlearm elf32-bigarm elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex make[2]: *** [../lib/libpj-arm-unknown-linux-uclibcgnueabi.a] Error 1 make[2]: Leaving directory `/srv/dataplace/software/development-current/gateway-linux-dev/buildroot/buildroot-2011.08/output/build/pjproject-1.10/pjlib/build' make[1]: *** [pjlib] Error 2 make[1]: Leaving directory `/srv/dataplace/software/development-current/gateway-linux-dev/buildroot/buildroot-2011.08/output/build/pjproject-1.10/pjlib/build' make: *** [all] Error 1 This error is obviously caused due to not invoking any options with the archiver and so I run this command manually with the -cvr options and it succeeds. However, when i then issue make again the build fails as follows: if test ! -d ../bin; then mkdir -p ../bin; fi /srv/dataplace/software/development-current/gateway-linux-dev/buildroot/buildroot-2011.08/output/host/usr/bin/arm-unknown-linux-uclibcgnueabi-ld -o ../bin/pjlib-test-arm-unknown-linux-uclibcgnueabi \ output/pjlib-test-arm-unknown-linux-uclibcgnueabi/main.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/activesock.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/atomic.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/echo_clt.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/errno.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/exception.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/fifobuf.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/file.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/hash_test.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/ioq_perf.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/ioq_udp.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/ioq_unreg.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/ioq_tcp.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/list.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/mutex.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/os.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/pool.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/pool_perf.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/rand.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/rbtree.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/select.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/sleep.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/sock.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/sock_perf.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/ssl_sock.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/string.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/test.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/thread.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/timer.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/timestamp.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/udp_echo_srv_sync.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/udp_echo_srv_ioqueue.o output/pjlib-test-arm-unknown-linux-uclibcgnueabi/util.o -lm -lnsl -lrt -lpthread ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a -lm -lnsl -lrt -lpthread ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a(addr_resolv_sock.o): In function `pj_gethostbyname': addr_resolv_sock.c:(.text+0x314): warning: gethostbyname is obsolescent, use getnameinfo() instead. /srv/dataplace/software/development-current/gateway-linux-dev/buildroot/buildroot-2011.08/output/host/usr/bin/arm-unknown-linux-uclibcgnueabi-ld: warning: cannot find entry symbol _start; defaulting to 0000000000009db8 output/pjlib-test-arm-unknown-linux-uclibcgnueabi/ioq_perf.o: In function `ioqueue_perf_test_imp': ioq_perf.c:(.text+0x6e8): undefined reference to `__aeabi_ui2d' ioq_perf.c:(.text+0x6f4): undefined reference to `__aeabi_dmul' ioq_perf.c:(.text+0x704): undefined reference to `__aeabi_ui2d' ioq_perf.c:(.text+0x718): undefined reference to `__aeabi_ddiv' ioq_perf.c:(.text+0x71c): undefined reference to `__aeabi_d2uiz' output/pjlib-test-arm-unknown-linux-uclibcgnueabi/ioq_unreg.o: In function `perform_unreg_test': ioq_unreg.c:(.text+0x5d0): undefined reference to `__aeabi_uidiv' output/pjlib-test-arm-unknown-linux-uclibcgnueabi/pool_perf.o: In function `pool_perf_test': pool_perf.c:(.text+0x394): undefined reference to `__aeabi_uidiv' pool_perf.c:(.text+0x3a4): undefined reference to `__aeabi_uidiv' output/pjlib-test-arm-unknown-linux-uclibcgnueabi/rbtree.o: In function `randomize_string': rbtree.c:(.text+0x4c): undefined reference to `__aeabi_idivmod' output/pjlib-test-arm-unknown-linux-uclibcgnueabi/rbtree.o: In function `rbtree_test': rbtree.c:(.text+0x32c): undefined reference to `__aeabi_uidiv' rbtree.c:(.text+0x33c): undefined reference to `__aeabi_uidiv' rbtree.c:(.text+0x34c): undefined reference to `__aeabi_uidiv' rbtree.c:(.text+0x35c): undefined reference to `__aeabi_uidiv' output/pjlib-test-arm-unknown-linux-uclibcgnueabi/sleep.o: In function `sleep_test': sleep.c:(.text+0x184): undefined reference to `__aeabi_uidiv' output/pjlib-test-arm-unknown-linux-uclibcgnueabi/sleep.o:sleep.c:(.text+0x198): more undefined references to `__aeabi_uidiv' follow output/pjlib-test-arm-unknown-linux-uclibcgnueabi/sock_perf.o: In function `sock_producer_consumer': sock_perf.c:(.text+0x210): undefined reference to `__aeabi_ui2d' sock_perf.c:(.text+0x21c): undefined reference to `__aeabi_dmul' sock_perf.c:(.text+0x22c): undefined reference to `__aeabi_ui2d' sock_perf.c:(.text+0x240): undefined reference to `__aeabi_ddiv' sock_perf.c:(.text+0x244): undefined reference to `__aeabi_d2uiz' output/pjlib-test-arm-unknown-linux-uclibcgnueabi/string.o: In function `string_test': string.c:(.text+0x5eac): undefined reference to `__aeabi_uidiv' string.c:(.text+0x5eb8): undefined reference to `__aeabi_uidiv' string.c:(.text+0x5ec8): undefined reference to `__aeabi_uidivmod' output/pjlib-test-arm-unknown-linux-uclibcgnueabi/thread.o: In function `thread_test': thread.c:(.text+0x508): undefined reference to `__aeabi_uidiv' output/pjlib-test-arm-unknown-linux-uclibcgnueabi/timer.o: In function `timer_test': timer.c:(.text+0x12c): undefined reference to `__aeabi_idivmod' timer.c:(.text+0x224): undefined reference to `__aeabi_uidivmod' timer.c:(.text+0x318): undefined reference to `__aeabi_uidiv' timer.c:(.text+0x328): undefined reference to `__aeabi_uidiv' timer.c:(.text+0x338): undefined reference to `__aeabi_uidiv' output/pjlib-test-arm-unknown-linux-uclibcgnueabi/timestamp.o: In function `timestamp_test': timestamp.c:(.text+0xd8): undefined reference to `__aeabi_idivmod' timestamp.c:(.text+0x3cc): undefined reference to `__aeabi_uldivmod' timestamp.c:(.text+0x404): undefined reference to `__aeabi_uldivmod' timestamp.c:(.text+0x44c): undefined reference to `__aeabi_uldivmod' timestamp.c:(.text+0x470): undefined reference to `__aeabi_uldivmod' timestamp.c:(.text+0x4a4): undefined reference to `__aeabi_uldivmod' output/pjlib-test-arm-unknown-linux-uclibcgnueabi/udp_echo_srv_sync.o: In function `echo_srv_common_loop': udp_echo_srv_sync.c:(.text+0x64): undefined reference to `__aeabi_i2d' udp_echo_srv_sync.c:(.text+0xb8): undefined reference to `__aeabi_dsub' udp_echo_srv_sync.c:(.text+0xc4): undefined reference to `__aeabi_dmul' udp_echo_srv_sync.c:(.text+0xe0): undefined reference to `__aeabi_ui2d' udp_echo_srv_sync.c:(.text+0xf4): undefined reference to `__aeabi_ddiv' udp_echo_srv_sync.c:(.text+0x11c): undefined reference to `__aeabi_dadd' udp_echo_srv_sync.c:(.text+0x144): undefined reference to `__aeabi_ddiv' udp_echo_srv_sync.c:(.text+0x148): undefined reference to `__aeabi_d2uiz' udp_echo_srv_sync.c:(.text+0x164): undefined reference to `__aeabi_ui2d' udp_echo_srv_sync.c:(.text+0x178): undefined reference to `__aeabi_ddiv' udp_echo_srv_sync.c:(.text+0x184): undefined reference to `__aeabi_ddiv' udp_echo_srv_sync.c:(.text+0x188): undefined reference to `__aeabi_d2uiz' udp_echo_srv_sync.c:(.text+0x1bc): undefined reference to `__aeabi_ddiv' udp_echo_srv_sync.c:(.text+0x1dc): undefined reference to `__aeabi_dcmpgt' udp_echo_srv_sync.c:(.text+0x208): undefined reference to `__aeabi_ddiv' udp_echo_srv_sync.c:(.text+0x20c): undefined reference to `__aeabi_d2uiz' ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a(os_time_unix.o): In function `pj_gettimeofday': os_time_unix.c:(.text+0x4c): undefined reference to `__aeabi_idiv' ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a(os_timestamp_common.o): In function `elapsed_msec': os_timestamp_common.c:(.text+0x3c): undefined reference to `__aeabi_l2d' os_timestamp_common.c:(.text+0x50): undefined reference to `__aeabi_dcmpeq' os_timestamp_common.c:(.text+0x70): undefined reference to `__aeabi_l2d' os_timestamp_common.c:(.text+0x7c): undefined reference to `__aeabi_dmul' os_timestamp_common.c:(.text+0x88): undefined reference to `__aeabi_ddiv' ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a(os_timestamp_common.o): In function `pj_elapsed_time': os_timestamp_common.c:(.text+0xc0): undefined reference to `__aeabi_dcmpeq' os_timestamp_common.c:(.text+0x104): undefined reference to `__aeabi_ddiv' os_timestamp_common.c:(.text+0x108): undefined reference to `__aeabi_d2iz' os_timestamp_common.c:(.text+0x118): undefined reference to `__aeabi_d2iz' ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a(os_timestamp_common.o): In function `pj_elapsed_msec': os_timestamp_common.c:(.text+0x1a0): undefined reference to `__aeabi_d2uiz' ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a(os_timestamp_common.o): In function `pj_elapsed_usec': os_timestamp_common.c:(.text+0x1d8): undefined reference to `__aeabi_l2d' os_timestamp_common.c:(.text+0x1ec): undefined reference to `__aeabi_dcmpeq' os_timestamp_common.c:(.text+0x20c): undefined reference to `__aeabi_l2d' os_timestamp_common.c:(.text+0x218): undefined reference to `__aeabi_dmul' os_timestamp_common.c:(.text+0x224): undefined reference to `__aeabi_ddiv' os_timestamp_common.c:(.text+0x228): undefined reference to `__aeabi_d2uiz' ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a(os_timestamp_common.o): In function `pj_elapsed_nanosec': os_timestamp_common.c:(.text+0x264): undefined reference to `__aeabi_l2d' os_timestamp_common.c:(.text+0x278): undefined reference to `__aeabi_dcmpeq' os_timestamp_common.c:(.text+0x298): undefined reference to `__aeabi_l2d' os_timestamp_common.c:(.text+0x2a4): undefined reference to `__aeabi_dmul' os_timestamp_common.c:(.text+0x2b0): undefined reference to `__aeabi_ddiv' os_timestamp_common.c:(.text+0x2b4): undefined reference to `__aeabi_d2uiz' ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a(pool.o): In function `pj_pool_allocate_find': pool.c:(.text+0x23c): undefined reference to `__aeabi_uidiv' ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a(pool_caching.o): In function `cpool_dump_status': pool_caching.c:(.text+0x2a0): undefined reference to `__aeabi_uidiv' pool_caching.c:(.text+0x2f8): undefined reference to `__aeabi_uidiv' ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a(string.o): In function `pj_utoa_pad': string.c:(.text+0x194): undefined reference to `__aeabi_uidivmod' string.c:(.text+0x1a4): undefined reference to `__aeabi_uidiv' ../lib/libpj-arm-unknown-linux-uclibcgnueabi.a(types.o): In function `pj_time_val_normalize': types.c:(.text+0x20): undefined reference to `__aeabi_idiv' types.c:(.text+0x38): undefined reference to `__aeabi_idivmod' make[1]: *** [../bin/pjlib-test-arm-unknown-linux-uclibcgnueabi] Error 1 make[1]: Leaving directory `/srv/dataplace/software/development-current/gateway-linux-dev/buildroot/buildroot-2011.08/output/build/pjproject-1.10/pjlib/build' make: *** [pjlib-test] Error 2 Obviously this is a problem with the library I manually created but I am not experienced enough to know what I have done wrong... Any ideas would be greatly appreciated. Best regards, Steven Eventually got this to compile correctly by setting the following: export AR+= -rcs export LD=/srv/dataplace/software/development-current/gateway-linux-dev/buildroot/buildroot-2011.08/output/host/usr/bin/arm-unknown-linux-uclibcgnueabi-gcc If anyone can see any obvious flaw in this procedure then please let me know. I will confirm the result of run-time tests later today. Best regards, Steven Swann