--- Begin Message ---
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
--- End Message ---
--- Begin Message ---
Source: eglibc
Source-Version: 2.17-7
We believe that the bug you reported is fixed in the latest version of
eglibc, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 713837@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Aurelien Jarno <aurel32@debian.org> (supplier of updated eglibc package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Sun, 30 Jun 2013 01:18:27 +0200
Source: eglibc
Binary: libc-bin libc-dev-bin glibc-doc eglibc-source locales locales-all nscd multiarch-support libc6 libc6-dev libc6-dbg libc6-prof libc6-pic libc6-udeb libc6.1 libc6.1-dev libc6.1-dbg libc6.1-prof libc6.1-pic libc6.1-udeb libc0.3 libc0.3-dev libc0.3-dbg libc0.3-prof libc0.3-pic libc0.3-udeb libc0.1 libc0.1-dev libc0.1-dbg libc0.1-prof libc0.1-pic libc0.1-udeb libc6-i386 libc6-dev-i386 libc6-sparc libc6-dev-sparc libc6-sparc64 libc6-dev-sparc64 libc6-s390 libc6-dev-s390 libc6-s390x libc6-dev-s390x libc6-amd64 libc6-dev-amd64 libc6-powerpc libc6-dev-powerpc libc6-ppc64 libc6-dev-ppc64 libc6-mipsn32 libc6-dev-mipsn32 libc6-mips64 libc6-dev-mips64 libc6-armhf libc6-dev-armhf libc6-armel libc6-dev-armel libc0.1-i386 libc0.1-dev-i386 libc6-x32 libc6-dev-x32 libc6-i686 libc6-xen libc0.1-i686 libc0.3-i686 libc0.3-xen libc6.1-alphaev67 libc6-loongson2f libnss-dns-udeb libnss-files-udeb
Architecture: source all
Version: 2.17-7
Distribution: unstable
Urgency: medium
Maintainer: Aurelien Jarno <aurel32@debian.org>
Changed-By: Aurelien Jarno <aurel32@debian.org>
Description:
eglibc-source - Embedded GNU C Library: sources
glibc-doc - Embedded GNU C Library: Documentation
libc-bin - Embedded GNU C Library: Binaries
libc-dev-bin - Embedded GNU C Library: Development binaries
libc0.1 - Embedded GNU C Library: Shared libraries
libc0.1-dbg - Embedded GNU C Library: detached debugging symbols
libc0.1-dev - Embedded GNU C Library: Development Libraries and Header Files
libc0.1-dev-i386 - Embedded GNU C Library: 32bit development libraries for AMD64
libc0.1-i386 - Embedded GNU C Library: 32bit shared libraries for AMD64
libc0.1-i686 - Embedded GNU C Library: Shared libraries [i686 optimized]
libc0.1-pic - Embedded GNU C Library: PIC archive library
libc0.1-prof - Embedded GNU C Library: Profiling Libraries
libc0.1-udeb - Embedded GNU C Library: Shared libraries - udeb (udeb)
libc0.3 - Embedded GNU C Library: Shared libraries
libc0.3-dbg - Embedded GNU C Library: detached debugging symbols
libc0.3-dev - Embedded GNU C Library: Development Libraries and Header Files
libc0.3-i686 - Embedded GNU C Library: Shared libraries [i686 optimized]
libc0.3-pic - Embedded GNU C Library: PIC archive library
libc0.3-prof - Embedded GNU C Library: Profiling Libraries
libc0.3-udeb - Embedded GNU C Library: Shared libraries - udeb (udeb)
libc0.3-xen - Embedded GNU C Library: Shared libraries [Xen version]
libc6 - Embedded GNU C Library: Shared libraries
libc6-amd64 - Embedded GNU C Library: 64bit Shared libraries for AMD64
libc6-armel - Embedded GNU C Library: ARM softfp shared libraries for armhf
libc6-armhf - Embedded GNU C Library: ARM hard float shared libraries for armel
libc6-dbg - Embedded GNU C Library: detached debugging symbols
libc6-dev - Embedded GNU C Library: Development Libraries and Header Files
libc6-dev-amd64 - Embedded GNU C Library: 64bit Development Libraries for AMD64
libc6-dev-armel - Embedded GNU C Library: ARM softfp development libraries for armh
libc6-dev-armhf - Embedded GNU C Library: ARM hard float development libraries for
libc6-dev-i386 - Embedded GNU C Library: 32-bit development libraries for AMD64
libc6-dev-mips64 - Embedded GNU C Library: 64bit Development Libraries for MIPS64
libc6-dev-mipsn32 - Embedded GNU C Library: n32 Development Libraries for MIPS64
libc6-dev-powerpc - Embedded GNU C Library: 32bit powerpc development libraries for p
libc6-dev-ppc64 - Embedded GNU C Library: 64bit Development Libraries for PowerPC64
libc6-dev-s390 - Embedded GNU C Library: 32bit Development Libraries for IBM zSeri
libc6-dev-s390x - Embedded GNU C Library: 64bit Development Libraries for IBM zSeri
libc6-dev-sparc - Embedded GNU C Library: 32bit Development Libraries for SPARC
libc6-dev-sparc64 - Embedded GNU C Library: 64bit Development Libraries for UltraSPAR
libc6-dev-x32 - Embedded GNU C Library: X32 ABI Development Libraries for AMD64
libc6-i386 - Embedded GNU C Library: 32-bit shared libraries for AMD64
libc6-i686 - Embedded GNU C Library: Shared libraries [i686 optimized]
libc6-loongson2f - Embedded GNU C Library: Shared libraries (Loongson 2F optimized)
libc6-mips64 - Embedded GNU C Library: 64bit Shared libraries for MIPS64
libc6-mipsn32 - Embedded GNU C Library: n32 Shared libraries for MIPS64
libc6-pic - Embedded GNU C Library: PIC archive library
libc6-powerpc - Embedded GNU C Library: 32bit powerpc shared libraries for ppc64
libc6-ppc64 - Embedded GNU C Library: 64bit Shared libraries for PowerPC64
libc6-prof - Embedded GNU C Library: Profiling Libraries
libc6-s390 - Embedded GNU C Library: 32bit Shared libraries for IBM zSeries
libc6-s390x - Embedded GNU C Library: 64bit Shared libraries for IBM zSeries
libc6-sparc - Embedded GNU C Library: 32bit Shared libraries for SPARC
libc6-sparc64 - Embedded GNU C Library: 64bit Shared libraries for UltraSPARC
libc6-udeb - Embedded GNU C Library: Shared libraries - udeb (udeb)
libc6-x32 - Embedded GNU C Library: X32 ABI Shared libraries for AMD64
libc6-xen - Embedded GNU C Library: Shared libraries [Xen version]
libc6.1 - Embedded GNU C Library: Shared libraries
libc6.1-alphaev67 - Embedded GNU C Library: Shared libraries (EV67 optimized)
libc6.1-dbg - Embedded GNU C Library: detached debugging symbols
libc6.1-dev - Embedded GNU C Library: Development Libraries and Header Files
libc6.1-pic - Embedded GNU C Library: PIC archive library
libc6.1-prof - Embedded GNU C Library: Profiling Libraries
libc6.1-udeb - Embedded GNU C Library: Shared libraries - udeb (udeb)
libnss-dns-udeb - Embedded GNU C Library: NSS helper for DNS - udeb (udeb)
libnss-files-udeb - Embedded GNU C Library: NSS helper for files - udeb (udeb)
locales - Embedded GNU C Library: National Language (locale) data [support]
locales-all - Embedded GNU C Library: Precompiled locale data
multiarch-support - Transitional package to ensure multiarch compatibility
nscd - Embedded GNU C Library: Name Service Cache Daemon
Closes: 709992 712196 713035 713799 713837
Changes:
eglibc (2.17-7) unstable; urgency=medium
.
[ Aurelien Jarno ]
* debian/rules.d/build.mk: unexport LD_PRELOAD to allow the testsuite
to pass even if eatmydata is used. Closes: #713035.
* debian/script.in/nohwcap.sh: handle new multiarch format of dpkg-query.
Closes: #713837.
* debian/patches/m68k/cvs-sysdep-cfi.diff: new patch from upstream to fix
cfi assembly code. Closes: #709992.
* patches/any/cvs-gethostbyname-numeric.diff: new patch from upstream to fix
gethostbyname when used with numeric addresses.
* debian/patches/any/cvs-getaddrinfo-EAI_NONAME.diff: new patch from
upstream to return EAI_NONAME instead of EAI_SYSTEM when the network
is down. Closes: #713799.
* debian/local/ldconfig_wrap: rename into debian/local/sbin/ldconfig to
be consistent with the naming of other files in this directory.
* debian/patches/mips/local-prlimit64.diff: new patch to temporarily
workaround issues with the prlimit64 syscall on MIPS.
* debian/testsuite-checking/expected-results-mips*: allow a few tests to
fail due to the prlimit64 syscall issue on MIPS.
* Add 32-bit biarch packages on sparc64.
.
[ Samuel Thibault ]
* Remove unapplied hurd-i386/local-nice.diff (applied as tg-nice.diff)
.
[ Petr Salinger ]
* kfreebsd/local-sysdeps.diff: update to revision 4552 (from glibc-bsd).
Closes: #712196.
Checksums-Sha1:
9bc4cc66ad4ddb50eb3d97233491becb2a2f17d8 5263 eglibc_2.17-7.dsc
f492046ca38fa382157cdaf2cd4f531f6394a1a1 780072 eglibc_2.17-7.debian.tar.xz
f411015db6e18d9ee6905832c5e9dac05f25ec5f 2124858 glibc-doc_2.17-7_all.deb
a2d8e1bbbc68e5c710934df337514a56106c9728 13868500 eglibc-source_2.17-7_all.deb
02424c1e2e0ecb242e2fcc0a33652d6333b25be1 3846276 locales_2.17-7_all.deb
Checksums-Sha256:
7f57ff44e970a6c8465092c779981f7f612abcd1cd8651be369478480c88b5dc 5263 eglibc_2.17-7.dsc
f849f7ace24f8467da29ee8727f88419e9f3a1f11209930392465fddafe9d9ad 780072 eglibc_2.17-7.debian.tar.xz
91795d7b2296214486dd671481166e652e44d5de98ddc4fd549b32ef6e2d9c29 2124858 glibc-doc_2.17-7_all.deb
c8d850677276938f7d830afac56f72b26faeb20e7cb614a26c8722a6674c1afc 13868500 eglibc-source_2.17-7_all.deb
907dd1c793af27f0e2491b6719a3faef2fef8f5ba864bdcbe27bd0d265266717 3846276 locales_2.17-7_all.deb
Files:
2782437f9533e51b8a7371f0a6f86b65 5263 libs required eglibc_2.17-7.dsc
63e46a88f284a00e9012e3d78d010d96 780072 libs required eglibc_2.17-7.debian.tar.xz
97f00897d030105b88bfb42ab2a7184c 2124858 doc optional glibc-doc_2.17-7_all.deb
ac9f58701c033bbe65aa58cee2bde18c 13868500 devel optional eglibc-source_2.17-7_all.deb
3dfcad6b595d6c3cba4f7471525b858e 3846276 localization standard locales_2.17-7_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iD8DBQFRz3EGw3ao2vG823MRAtCaAJwLEaJTCjjP7k4sd4UWUw+WvXKZFACeMoIu
nDr7LCYNwVIGigXRg0nRdPo=
=E/bF
-----END PGP SIGNATURE-----
--- End Message ---