problem with LT and static build

Waldemar Brodkorb wbx at openadk.org
Mon Sep 8 16:01:37 UTC 2014


Hi uClibc hackers,

I am trying to build a static system with linuxthreads (new).
But I get following linking errors (for test-suite or any apps)

/usr/bin/make -C  termios compile \
        KCONFIG_CONFIG=/adk/uclibc-arm-static/toolchain_build_qemu-arm_uclibc_arm_eabi/w-uClibc-0.9.34-git-1/uClibc-0.9.34-git/.config
/adk/uclibc-arm-static/toolchain_qemu-arm_uclibc_arm_eabi/usr/bin/arm-openadk-linux-uclibceabi-gcc
-nostdinc -I../../install_dir/usr/include -I../../test -D_GNU_SOURCE
-I/adk/uclibc-arm-static/target_qemu-arm_uclibc_arm_eabi/usr/include/
-isystem
/adk/uclibc-arm-static/toolchain_qemu-arm_uclibc_arm_eabi/usr/lib/gcc/arm-openadk-linux-uclibceabi/4.8.3/include-fixed
-isystem
/adk/uclibc-arm-static/toolchain_qemu-arm_uclibc_arm_eabi/usr/lib/gcc/arm-openadk-linux-uclibceabi/4.8.3/include
-Os -funit-at-a-time -fmerge-all-constants -fstrict-aliasing
-fno-tree-loop-optimize -fno-tree-dominator-opts
-fno-strength-reduce -funsigned-char -fno-builtin -fno-asm
-msoft-float -std=gnu99 -mlittle-endian -Wall -Wstrict-prototypes
-Wstrict-aliasing -Wstrict-prototypes    -c termios.c -o termios.o
/adk/uclibc-arm-static/toolchain_qemu-arm_uclibc_arm_eabi/usr/bin/arm-openadk-linux-uclibceabi-gcc
-Wl,-EL -Wl,-z,now -Wl,-s -Wl,-static -static-libgcc
-Wl,-rpath,/adk/uclibc-arm-static/toolchain_build_qemu-arm_uclibc_arm_eabi/w-uClibc-0.9.34-git-1/uClibc-0.9.34-git/test/termios
termios.o -o termios  
/adk/uclibc-arm-static/toolchain_qemu-arm_uclibc_arm_eabi/usr/../../target_qemu-arm_uclibc_arm_eabi/usr/lib/libc.a(ioctl.os):
In function `__GI_ioctl':
/adk/uclibc-arm-static/toolchain_build_qemu-arm_uclibc_arm_eabi/w-uClibc-0.9.34-git-1/uClibc-0.9.34-git/libc/sysdeps/linux/common/ioctl.c:31:
undefined reference to `__libc_enable_asynccancel'
/adk/uclibc-arm-static/toolchain_build_qemu-arm_uclibc_arm_eabi/w-uClibc-0.9.34-git-1/uClibc-0.9.34-git/libc/sysdeps/linux/common/ioctl.c:33:
undefined reference to `__libc_disable_asynccancel'
/adk/uclibc-arm-static/toolchain_qemu-arm_uclibc_arm_eabi/usr/../../target_qemu-arm_uclibc_arm_eabi/usr/lib/libc.a(close.os):
In function `__GI_close':
/adk/uclibc-arm-static/toolchain_build_qemu-arm_uclibc_arm_eabi/w-uClibc-0.9.34-git-1/uClibc-0.9.34-git/libc/sysdeps/linux/common/close.c:20:
undefined reference to `__libc_enable_asynccancel'
/adk/uclibc-arm-static/toolchain_build_qemu-arm_uclibc_arm_eabi/w-uClibc-0.9.34-git-1/uClibc-0.9.34-git/libc/sysdeps/linux/common/close.c:20:
undefined reference to `__libc_disable_asynccancel'
...

The __libc_enable_asynccancel and __libc_disable_asynccancel is
indeed missing in libc.a. (extracted the ar archiv and looked into
object files via nm)

What's wrong here? I need linuxthreads(new) for m68k and gdbserver.
Newer gdb does require threads and is using some TLS stuff, which is
only implemented in linuxthreads(new).

Before trying to get it working for m68k, I like to get it working
for arm (more popular, better support). The shared version compiles
fine, but I need the static one.

best regards
 Waldemar



More information about the uClibc mailing list