[elrepo-devel] nvidia-x11-drv additions

Phil Perry phil at elrepo.org
Wed Mar 12 06:53:40 EDT 2014


On 12/03/14 00:27, Michael Lampe wrote:
> Phil Perry wrote:
>
>> But as Michael says, it makes sense to me to use the OpenGL headers from
>> the version of OpenGL running on the target system rather than those
>> supplied by NVIDIA for any development work.
>
> The current Unix/Linux ABI for OpenGL is many, many years old. It
> doesn't matter which headers you use as long as they reflect this old
> standard. More recent stuff has to be detected at runtime to be used,
> e.g. with GLEW (http://glew.sourceforge.net).
>

Thanks for that. I did a quick diff on the two sets of headers and they 
differ a fair amount, at least on RHEL5.

So I'm happy to put the ball back in Ray's court on this one. Ray, if 
you need the NVIDIA headers (i.e, your builds won't compile against the 
system mesa-libGL-devel headers) then I'm happy to release them in a 
separate nvidia-x11-drv-devel package.

> It also doesn't matter if you link to Mesa's libGL.so or Nvidia's and
> then run with the other, it's all the same -- minus discoverable
> extensions at runtime of course.
>
>> http://elrepo.org/bugs/view.php?id=299
>>
>> Did we forget to reinstate the symlinks when we reinstalled the
>> libnvidia-tls.so lib in the el6 package?
>
> Which symlinks?
>
>    /usr/lib64/nvidia/libnvidia-tls.so.331.49
>
> and
>
>    /usr/lib64/nvidia/tls/libnvidia-tls.so.331.49
>
> are two different files for two different threading implementations with
> the appropriate one selected at runtime.
>

Originally we had symlinks to libnvidia-tls.so.1. The symlinks were 
removed when the extra tls libs were removed, but they weren't 
reinstated when we put the tls lib back as a result of bug #299 (above).

I'm not quite sure why we originally had a symlink to libnvidia-tls.so.1 
as that's not an SONAME for the lib:

$ objdump libnvidia-tls.so.331.49 -p | grep -i SONAME
   SONAME               libnvidia-tls.so.331.49

but perhaps software is trying to link against it?

Ray - can you tell us why you need the symlinks for libnvidia-tls.so ? 
For example, can you show us an example of something that fails when the 
symlinks are not present?

Some further investigation; I'm wondering if when compiling stuff 
against libGL, /usr/lib{64}/nvidia/libGL.so is pulled in, and that lib 
has reference to libnvidia-tls.so (even though it's not an SONAME), 
implying we might need that symlink. It wouldn't be the first time 
NVIDIA has messed up the SONAME dependency chains on their libs.

Anyway, I don't have an issue with adding symlinks for libnvidia-tls.so 
and libnvidia-tls.so.1 as this certainly won't break anything.

> Just my two cents though. Anyway, I'm using this package on both el5 and
> el6 for quite some time now and everything is just right. (el5 and el6
> will find and use the library under tls as expected and compiling
> OpenGL/CUDA/etc. stuff never was a problem.)
>

Indeed, but as bug #299 previously showed, some folks are clearly trying 
to build software that is causing issues for them. Where we can 
accommodate them without impacting other users, I'm happy to do so, as 
we did in bug #299 by reinstating the extra libnvidia-tls.so lib.





More information about the elrepo-devel mailing list