Building from a linux x86_64 host targeting arm has missing symbols for functions relating to 32bit elf reading.
$ gcc -v 2>&1 | grep -i ^Target
Target: x86_64-linux-gnu
#==================================
PREFIX=/tmp/libunwind/
TARGET_SUFFIX=linux-gnu
HOST=x86_64-${TARGET_SUFFIX}
#Generic Build
./configure --build=${HOST} \
--enable-coredump --enable-ptrace \
--prefix=${PREFIX}
make -j
make install
make check
for TARGET in \
arm-${TARGET_SUFFIX} \
x86_64-${TARGET_SUFFIX} \
x86-${TARGET_SUFFIX}
do
./configure --build=${HOST} \
--target=${TARGET} \
--enable-coredump --enable-ptrace \
--prefix=${PREFIX}
make -j
make install
make check
done
#==================================
During make check:
libtool: link: gcc -g -O2 -fexceptions -Wall -Wsign-compare -o .libs/test-proc-info test-proc-info.o ../src/.libs/libunwind-arm.so -Wl,-rpath -Wl,/tmp/libunwind/lib
/usr/bin/ld: ../src/.libs/libunwind-arm.so: undefined reference to `_Uelf32_load_debuglink'
/usr/bin/ld: ../src/.libs/libunwind-arm.so: undefined reference to `_Uelf32_find_section'
$ nm /tmp/lib/libunwind-arm.so | grep Uelf
U _Uelf32_find_section
U _Uelf32_load_debuglink
$ nm /tmp/lib/libunwind-generic.so | grep Uelf
000000000000fb60 t _Uelf64_find_section
00000000000103c0 t _Uelf64_get_proc_name
000000000000fc70 t _Uelf64_get_proc_name_in_image
000000000000ff50 t _Uelf64_load_debuglink
000000000000f990 t _Uelf64_lookup_symbol.isra.0
$ nm /tmp/lib/libunwind.so | grep Uelf
000000000000a010 t _Uelf64_find_section
000000000000a870 t _Uelf64_get_proc_name
000000000000a120 t _Uelf64_get_proc_name_in_image
000000000000a400 t _Uelf64_load_debuglink
It seems likely I am overlooking some obvious configure option or build step that is preventing the 32 bit elf functions from ending up in libunwind-arm.so (or related libraries). Could anyone point me in the right direction?
--