[elrepo] prelinking against /usr/lib/nvidia/libGL.so.1

Phil Perry phil at elrepo.org
Fri Jul 17 09:38:19 EDT 2009


Olaf Mueller wrote:
> Hello,
> 
> since a few days I am using the new elrepo repository for CentOS 5.3. I
> use it for kmod-fuse, kmod-ntfs and kmod-alsa and I am very happy with
> it. Thank you very much for your hard work!
> 

Hi Olaf,

Great - glad you like them and thanks for the feedback :)

> On one system with Nvidia 7600GT graphic card I am using the
> nvidia-x11-drv-185.18.14-1.el5.elrepo and the
> kmod-nvidia-185.18.14-1.el5.elrepo packages from elrepo-testing. And on
> prelinking I run into the following Warning/Error message.
> 
> prelink: /usr/local/sbin/opt/kde/bin/kdesktop_lock: Cannot prelink
> against non-PIC shared library /usr/lib/nvidia/libGL.so.1
> 
> There are many more messages like this all ending with "Cannot prelink
> against non-PIC shared library /usr/lib/nvidia/libGL.so.1". As a
> workaround I have disabled the path /usr/lib/nvidia for prelinking
> with "-b".
> 
> So my questions is, is it possible to build the nvidia-x11-drv package
> in a way that makes prelinking possible? As a PIC shared library for
> example?
> Thank you.
> 
> 

That's somewhat strange as I'm unable to reproduce those warnings. What 
arch are you running - x86_64 or i386?

The cause of "Cannot prelink against non-PIC shared library" wanrings is 
generally due to shared libraries being compiled without the -fPIC gcc 
option for all of their object files. In this case the libraries are not 
compiled by us but are provided by nvidia, precompiled in binary form 
from nvidia's binary installer - we simply repackage them into a 
convenient RPM format for the end user. So we are unable to fix the 
problem - only nvidia can do that.

It's actually a known issue that nvidia sometimes ship non-PIC compiled 
libraries. Apparently this is done due to performance reasons.

So, if the nvidia libraries are causing prelinking issues for you, then 
you have already discovered the workaround, and that is to blacklist 
their prelinking in /etc/prelink.conf. About all we could do as 
packagers is to ship an /etc/prelink.conf.d/nvidia.conf blacklist file 
to prevent prelinking (much the same as you have done) but until we are 
able to replicate the issue that's unlikely to happen.

Perhaps you could file a bug on http://elrepo.org/bugs with more details 
and we can track the issue there.

Regards,

Phil



More information about the elrepo mailing list