libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Libunwind-devel] arm cross-compile/link errors: undefined reference


From: Allen Hamedany
Subject: Re: [Libunwind-devel] arm cross-compile/link errors: undefined reference to AO_fetch_and_add & AO_fetch_and_add1
Date: Tue, 19 Aug 2014 11:43:46 -0400
User-agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.5.0


Hi Arun:

Uncommenting acinclude.m4:

AC_DEFUN([CHECK_ATOMIC_OPS],
[dnl Check whether the system has the atomic_ops package installed.
  AC_CHECK_HEADERS(atomic_ops.h)
#
# Don't link against libatomic_ops for now.  We don't want libunwind
# to depend on libatomic_ops.so.  Fortunately, none of the platforms
# we care about so far need libatomic_ops.a (everything is done via
# inline macros).
#
AC_CHECK_LIB(atomic_ops, main)
])

I reran ./configure & make as before.

config.log output snippet:
>grep -B2 -A2 -i atomic config.log

configure:15856: $? = 0
configure:15873: result: -ldl
configure:15889: checking atomic_ops.h usability
configure:15889: /scratch/ti/AM335x/linux-devkit/bin/*gcc -c -std=gnu99 conftest.c >&5
configure:15889: $? = 0
configure:15889: result: yes
configure:15889: checking atomic_ops.h presence
configure:15889: /scratch/ti/AM335x/linux-devkit/bin/*gcc -E conftest.c
configure:15889: $? = 0
configure:15889: result: yes
configure:15889: checking for atomic_ops.h
configure:15889: result: yes
configure:15905: checking for main in -latomic_ops <=== Looks like where configure is checking configure:15924: /scratch/ti/AM335x/linux-devkit/bin/*gcc -o conftest -std=gnu99 -L/scratch/test/libunwind/libunwind-1.1/src/.libs conftest.c -latomic_ops >&5
configure:15924: $? = 0
configure:15933: result: yes
--
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_ATOMIC_OPS_H 1
| #define HAVE_LIBATOMIC_OPS 1
| #define STDC_HEADERS 1
| /* end confdefs.h.  */
--
<deleted>
--
configure:16476: result: yes
configure:16498: checking for dl_iterate_phdr
configure:16498: /scratch/ti/AM335x/linux-devkit/bin/*gcc -o conftest -std=gnu99 -D_GNU_SOURCE -L/scratch/test/libunwind/libunwind-1.1/src/.libs conftest.c -latomic_ops >&5
configure:16498: $? = 0
configure:16498: result: yes
configure:16498: checking for dl_phdr_removals_counter
configure:16498: /scratch/ti/AM335x/linux-devkit/bin/*gcc -o conftest -std=gnu99 -D_GNU_SOURCE -L/scratch/test/libunwind/libunwind-1.1/src/.libs conftest.c -latomic_ops >&5
/tmp/cckS71Rf.o: In function `main':
conftest.c:(.text+0x8): undefined reference to `dl_phdr_removals_counter'
--
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_ATOMIC_OPS_H 1
| #define HAVE_LIBATOMIC_OPS 1
| #define STDC_HEADERS 1
| #define HAVE_ENDIAN_H 1
--
configure:16498: result: no
configure:16498: checking for dlmodinfo
configure:16498: /scratch/ti/AM335x/linux-devkit/bin/*gcc -o conftest -std=gnu99 -D_GNU_SOURCE -L/scratch/test/libunwind/libunwind-1.1/src/.libs conftest.c -latomic_ops >&5
/tmp/cc2Um3Tm.o: In function `main':
conftest.c:(.text+0x8): undefined reference to `dlmodinfo'
--
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_ATOMIC_OPS_H 1
| #define HAVE_LIBATOMIC_OPS 1
| #define STDC_HEADERS 1
| #define HAVE_ENDIAN_H 1
--
configure:16498: result: no
configure:16498: checking for getunwind
configure:16498: /scratch/ti/AM335x/linux-devkit/bin/*gcc -o conftest -std=gnu99 -D_GNU_SOURCE -L/scratch/test/libunwind/libunwind-1.1/src/.libs conftest.c -latomic_ops >&5
/tmp/ccX5QI7k.o: In function `main':
conftest.c:(.text+0x8): undefined reference to `getunwind'
--
<deleted>
--
configure:16498: result: no
configure:16498: checking for ttrace
configure:16498: /scratch/ti/AM335x/linux-devkit/bin/*gcc -o conftest -std=gnu99 -D_GNU_SOURCE -L/scratch/test/libunwind/libunwind-1.1/src/.libs conftest.c -latomic_ops >&5
/tmp/ccmAHbhh.o: In function `main':
conftest.c:(.text+0x8): undefined reference to `ttrace'
--
.
.
.
--
configure:16498: result: no
configure:16498: checking for mincore
configure:16498: /scratch/ti/AM335x/linux-devkit/bin/*gcc -o conftest -std=gnu99 -D_GNU_SOURCE -L/scratch/test/libunwind/libunwind-1.1/src/.libs conftest.c -latomic_ops >&5
configure:16498: $? = 0
configure:16498: result: yes
--
.
.
.
--
configure:16956: result: auto
configure:16959: checking for lzma_mf_is_supported in -llzma
configure:16984: /scratch/ti/AM335x/linux-devkit/bin/*gcc -o conftest -std=gnu99 -D_GNU_SOURCE -DUNW_REMOTE_ONLY -DNDEBUG -L/scratch/test/libunwind/libunwind-1.1/src/.libs conftest.c -llzma -latomic_ops >&5 /scratch/ti/AM335x/linux-devkit/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/bin/ld: cannot find -llzma
collect2: ld returned 1 exit status
--
<deleted>
--
configure:17079: result: no
configure:17113: checking for __builtin___clear_cache
configure:17126: /scratch/ti/AM335x/linux-devkit/bin/*gcc -o conftest -std=gnu99 -fexceptions -Wall -Wsign-compare -D_GNU_SOURCE -DUNW_REMOTE_ONLY -DNDEBUG -L/scratch/test/libunwind/libunwind-1.1/src/.libs conftest.c -latomic_ops >&5
configure:17126: $? = 0
configure:17138: result: yes
configure:17141: checking for __sync atomics
configure:17157: /scratch/ti/AM335x/linux-devkit/bin/*gcc -o conftest -std=gnu99 -fexceptions -Wall -Wsign-compare -D_GNU_SOURCE -DUNW_REMOTE_ONLY -DNDEBUG -L/scratch/test/libunwind/libunwind-1.1/src/.libs conftest.c -latomic_ops >&5
configure:17157: $? = 0
configure:17169: result: yes
--
ac_cv_have_decl_PT_TRACE_ME=yes
ac_cv_header_asm_ptrace_offsets_h=no
ac_cv_header_atomic_ops_h=yes
ac_cv_header_byteswap_h=yes
ac_cv_header_dlfcn_h=yes
--
<deleted>
--
LIBLZMA=''
LIBOBJS=''
LIBS='-latomic_ops '
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
LIPO=''
--
<deleted>

//EOF


make check still gives the same error:

make  test-proc-info test-static-link test-strerror run-check-namespace
make[2]: Entering directory `/scratch/home/test/libunwind/libunwind-1.1-arm/tests'
depbase=`echo test-proc-info.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
/scratch/ti/AM335x/linux-devkit/bin/*gcc -DHAVE_CONFIG_H -I. -I../include -I../include -D_GNU_SOURCE -DUNW_REMOTE_ONLY -DNDEBUG -std=gnu99 -fexceptions -Wall -Wsign-compare -MT test-proc-info.o -MD -MP -MF $depbase.Tpo -c -o test-proc-info.o test-proc-info.c &&\
    mv -f $depbase.Tpo $depbase.Po
/bin/sh ../libtool --tag=CC --mode=link /scratch/ti/AM335x/linux-devkit/bin/*gcc -std=gnu99 -fexceptions -Wall -Wsign-compare -L/scratch/test/libunwind/libunwind-1.1/src/.libs -o test-proc-info test-proc-info.o ../src/libunwind-arm.la -latomic_ops libtool: link: /scratch/ti/AM335x/linux-devkit/bin/arm-arago-linux-gnueabi-gcc -std=gnu99 -fexceptions -Wall -Wsign-compare -o .libs/test-proc-info test-proc-info.o -L/scratch/test/libunwind/libunwind-1.1/src/.libs ../src/.libs/libunwind-arm.so -latomic_ops -Wl,-rpath -Wl,/usr/local/lib
../src/.libs/libunwind-arm.so: undefined reference to `AO_fetch_and_add'
../src/.libs/libunwind-arm.so: undefined reference to `AO_fetch_and_add1'
collect2: ld returned 1 exit status

Thanks,
Allen


On 08/19/2014 10:52 AM, Arun Sharma wrote:
On Tue, Aug 19, 2014 at 7:57 PM, Allen Hamedany <address@hidden> wrote:

../src/.libs/libunwind-arm.so: undefined reference to `AO_fetch_and_add'
../src/.libs/libunwind-arm.so: undefined reference to `AO_fetch_and_add1'
collect2: ld returned 1 exit status
make[2]: *** [test-proc-info] Error 1
make[2]: Leaving directory
`/scratch/home/test/libunwind/libunwind-1.1-arm/tests'
make[1]: *** [check-am] Error 2
Could you try uncommenting this line here:

AC_CHECK_LIB(atomic_ops, main)
http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=blob_plain;f=acinclude.m4;hb=HEAD

ARM was probably not an interesting platform when the comment was
written. Also not clear why it can't be an inline-able implementation
like other platforms.

  -Arun




reply via email to

[Prev in Thread] Current Thread [Next in Thread]