Package: libc6 Version: 2.17-3 Severity: normal Dear Maintainer,
I am seeing SEGV at a startup for _all_ applications which are linked to libGL served by a proprietary NVIDIA driver. At first I thought this was the NVIDIA issue but then it turned out that the issue is caused by linker (or at least this is my understanding now). NVIDIA installer provides two versions of nvidia-tls library: $ file /usr/lib/libnvidia-tls.so.310.44 /usr/lib/libnvidia-tls.so.310.44: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, for GNU/Linux 2.2.5, stripped $ file /usr/lib/tls/libnvidia-tls.so.310.44 /usr/lib/tls/libnvidia-tls.so.310.44: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, for GNU/Linux 2.3.99, stripped I would have expected that /usr/lib/tls variant would be picked up automagically. $ /sbin/ldconfig -p | grep tls libnvidia-tls.so.310.44 (libc6, hwcap: 0x8000000000000000, ABI OS: Linux 2.3.99) => /usr/lib/tls/libnvidia-tls.so.310.44 libnvidia-tls.so.310.44 (libc6, ABI OS: Linux 2.2.5) => /usr/lib/libnvidia-tls.so.310.44 and $ /sbin/ldconfig -v | grep -v ^$'\t' 2>/dev/null /lib/i386-linux-gnu: /usr/lib/i386-linux-gnu: /usr/local/lib: /lib: /usr/lib: /sbin/ldconfig: Informace o /usr/lib/libfakeroot-0.so nelze zĂskat: AdresĂĄĹ nebo soubor neexistuje /lib/i386-linux-gnu/i686: (hwcap: 0x0008000000000000) /usr/lib/i386-linux-gnu/i586: (hwcap: 0x0004000000000000) /usr/lib/i386-linux-gnu/sse2: (hwcap: 0x0000000004000000) /usr/lib/i386-linux-gnu/i686: (hwcap: 0x0008000000000000) /usr/lib/i586: (hwcap: 0x0004000000000000) /usr/lib/sse2: (hwcap: 0x0000000004000000) /usr/lib/i686: (hwcap: 0x0008000000000000) /usr/lib/i486: (hwcap: 0x0002000000000000) /usr/lib/tls: (hwcap: 0x8000000000000000) /lib/i386-linux-gnu/i686/cmov: (hwcap: 0x0008000000008000) /usr/lib/i386-linux-gnu/i686/cmov: (hwcap: 0x0008000000008000) /usr/lib/i386-linux-gnu/i686/sse2: (hwcap: 0x0008000004000000) /usr/lib/i686/cmov: (hwcap: 0x0008000000008000) suggest that /usr/lib/tls should be honored. For some reason it is not though. $ cat ./main.c #include <stdio.h> int main(int argc, char **argv) { printf("Yep\n"); return 0; } $ gcc -o main main.c /usr/lib/libGL.so.1 $ ldd ./main linux-gate.so.1 => (0xb77cc000) libGL.so.1 => /usr/lib/libGL.so.1 (0xb76d2000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7589000) libnvidia-tls.so.310.44 => /usr/lib/libnvidia-tls.so.310.44 (0xb7584000) libnvidia-glcore.so.310.44 => /usr/lib/libnvidia-glcore.so.310.44 (0xb5862000) libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb572a000) libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb5718000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb5714000) /lib/ld-linux.so.2 (0xb77cd000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb56ed000) libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb56ca000) libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb56c7000) libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb56c1000) $ LD_DEBUG=libs ./main 15977: find library=libGL.so.1 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/usr/lib/libGL.so.1 15977: 15977: find library=libc.so.6 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/lib/i386-linux-gnu/libc.so.6 15977: 15977: find library=libnvidia-tls.so.310.44 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/usr/lib/libnvidia-tls.so.310.44 15977: 15977: find library=libnvidia-glcore.so.310.44 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/usr/lib/libnvidia-glcore.so.310.44 15977: 15977: find library=libX11.so.6 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/usr/lib/i386-linux-gnu/libX11.so.6 15977: 15977: find library=libXext.so.6 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/usr/lib/i386-linux-gnu/libXext.so.6 15977: 15977: find library=libdl.so.2 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/lib/i386-linux-gnu/libdl.so.2 15977: 15977: find library=libm.so.6 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/lib/i386-linux-gnu/libm.so.6 15977: 15977: find library=libxcb.so.1 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/usr/lib/i386-linux-gnu/libxcb.so.1 15977: 15977: find library=libXau.so.6 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/usr/lib/i386-linux-gnu/libXau.so.6 15977: 15977: find library=libXdmcp.so.6 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/usr/lib/i386-linux-gnu/libXdmcp.so.6 15977: 15977: 15977: calling init: /lib/i386-linux-gnu/libc.so.6 15977: 15977: 15977: calling init: /usr/lib/i386-linux-gnu/libXdmcp.so.6 15977: 15977: 15977: calling init: /usr/lib/i386-linux-gnu/libXau.so.6 15977: 15977: 15977: calling init: /usr/lib/i386-linux-gnu/libxcb.so.1 15977: 15977: 15977: calling init: /lib/i386-linux-gnu/libm.so.6 15977: 15977: 15977: calling init: /lib/i386-linux-gnu/libdl.so.2 15977: 15977: 15977: calling init: /usr/lib/i386-linux-gnu/libX11.so.6 15977: 15977: 15977: calling init: /usr/lib/i386-linux-gnu/libXext.so.6 15977: 15977: 15977: calling init: /usr/lib/libnvidia-glcore.so.310.44 15977: 15977: 15977: calling init: /usr/lib/libGL.so.1 15977: 15977: /usr/lib/libGL.so.1: error: symbol lookup error: undefined symbol: pthread_create, version GLIBC_2.0 (fatal) 15977: find library=libselinux.so.1 [0]; searching 15977: search cache=/etc/ld.so.cache 15977: trying file=/lib/i386-linux-gnu/libselinux.so.1 15977: 15977: 15977: calling init: /lib/i386-linux-gnu/libselinux.so.1 15977: 15977: 15977: calling fini: /lib/i386-linux-gnu/libselinux.so.1 [0] 15977: SEGV $ LD_LIBRARY_PATH=/usr/lib/tls:/usr/lib ./main Yep Is this a misconfiguration on my end or the glibc doesn't honor tls/ directory? -- System Information: Debian Release: 7.0 APT prefers testing APT policy: (500, 'testing'), (500, 'stable') Architecture: i386 (i686) Kernel: Linux 3.2.0-4-686-pae (SMP w/2 CPU cores) Locale: LANG=cs_CZ.UTF-8, LC_CTYPE=cs_CZ.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages libc6 depends on: ii libgcc1 1:4.7.2-5 Versions of packages libc6 recommends: ii libc6-i686 2.17-3 Versions of packages libc6 suggests: ii debconf [debconf-2.0] 1.5.49 pn glibc-doc <none> ii locales 2.17-3 -- Configuration Files: /etc/ld.so.conf.d/i486-linux-gnu.conf changed: /lib/i386-linux-gnu /usr/lib/i386-linux-gnu -- debconf information: * glibc/upgrade: true * glibc/disable-screensaver: glibc/restart-failed: * glibc/restart-services: vsftpd cron atd * libraries/restart-without-asking: false -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20130627160417.ga16...@curandero.mameluci.net