FS#48114 - [nvidia-utils] doesn't install the TLS library correctly

Attached to Project: Arch Linux
Opened by (Det) - Wednesday, 10 February 2016, 08:50 GMT
Last edited by Sven-Hendrik Haase (Svenstaro) - Saturday, 13 February 2016, 12:58 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Sven-Hendrik Haase (Svenstaro)
Felix Yan (felixonmars)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

The "classic" TLS library should go to /usr/lib/libnvidia-tls.so.361.28 and the "new" in /usr/lib/tls/libnvidia-tls.so.361.28. [1] Currently the "new" gets installed in the "classic" location, and the "classic" one is left out.

From the .run package's .manifest:

libnvidia-tls.so.361.28 0755 TLS_LIB NATIVE CLASSIC /
tls/libnvidia-tls.so.361.28 0755 TLS_LIB NATIVE NEW tls/

This is also how they are installed in Ubuntu. [2]

[1] = http://us.download.nvidia.com/XFree86/Linux-x86_64/361.28/README/installedcomponents.html
[2] = http://packages.ubuntu.com/wily/amd64/nvidia-352/filelist
This task depends upon

Closed by  Sven-Hendrik Haase (Svenstaro)
Saturday, 13 February 2016, 12:58 GMT
Reason for closing:  Implemented
Comment by Felix Yan (felixonmars) - Wednesday, 10 February 2016, 15:25 GMT
The old tls library was removed more than 5 years ago without a comment for the change. I am not really familiar with this part, maybe we are just modern enough? Maybe Pierre would have an answer for this.

https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/nvidia-utils&id=640c6d0f1dda6ce6ce7234af368bf9404dd1c896
Comment by Darek (blablo) - Wednesday, 10 February 2016, 15:43 GMT
Release 355.06 Please see [1]
[1] https://github.com/aaronp24/arch-nvidia-utils/issues/2

Current release 361.28 (with GLVND GLX libraries)
$ ldd /usr/lib/libGL.so.1
linux-vdso.so.1 (0x00007ffe42672000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f1182c9f000)
libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007f1182a6d000)
libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007f1182785000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f11823e0000)
/usr/lib64/ld-linux-x86-64.so.2 (0x000055b02ef99000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f118209e000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f1181e8c000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f1181c68000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f1181a64000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f118185e000)

$ ldd /usr/lib/xorg/modules/extensions/libglx.so
linux-vdso.so.1 (0x00007ffd5c746000)
libnvidia-tls.so.361.28 => /usr/lib/tls/libnvidia-tls.so.361.28 (0x00007f4adc0cd000)
libnvidia-glcore.so.361.28 => /usr/lib/libnvidia-glcore.so.361.28 (0x00007f4ada43f000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f4ada09b000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f4ad9e96000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f4ad9b98000)
/usr/lib64/ld-linux-x86-64.so.2 (0x0000557185fe4000)

Comment by Paul Bredbury (brebs) - Wednesday, 10 February 2016, 20:59 GMT
Different distro, but:

$ file /usr/lib/libnvidia-tls.so.358.16
/usr/lib/libnvidia-tls.so.358.16: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, for GNU/Linux 2.3.99, stripped

Who, exactly, is running a kernel less than 2.3.99?

I see no requirement whatsoever for the "classic" (i.e. ludicrously ancient) version of this file. In fact it's probably a bug on Nvidia's part for pointlessly causing this uncertainty ;)
Comment by (Det) - Wednesday, 10 February 2016, 21:02 GMT
That's the newer one, which is supposed to be located in the tls/ sub-dir:

└┌(%:~/Desktop)┌- file /usr/lib/libnvidia-tls.so.361.28
/usr/lib/libnvidia-tls.so.361.28: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, for GNU/Linux 2.2.5, stripped
└┌(%:~/Desktop)┌- file /usr/lib/tls/libnvidia-tls.so.361.28
/usr/lib/tls/libnvidia-tls.so.361.28: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, for GNU/Linux 2.3.99, stripped

Loading...