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