# Build failure on fedora from reporing: /usr/lib/libGL.so: could not read symbols: File in wrong format

This looks like some sort of NVIDIA driver related issue.

Any suggestions on how to rework the configure and get this fixed would be a big help
Thanks.

Attachments:

Hi Phil,
The most probably NVIDIA drivers have been installed incorrectly.
/usr/lib/libGL.so can not find some symbols.
Try to make :

> ldd -r /usr/lib/libGL.so

Regards

here's the output:
ldd -r /usr/lib/libGL.so
linux-gate.so.1 => (0xf7f9a000)
libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0xf6f5d000)
libnvidia-tls.so.1 => /usr/lib/libnvidia-tls.so.1 (0xf6f5b000)
libm.so.6 => /lib/libm.so.6 (0xf6f33000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xf6f23000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xf6df3000)
libdl.so.2 => /lib/libdl.so.2 (0xf6dee000)
libc.so.6 => /lib/libc.so.6 (0xf6c7d000)
/lib/ld-linux.so.2 (0x41cc7000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xf6c7a000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf6c5e000)

I still get the make error, I also note there is an earlier warning that is probably related:
*** Warning: linker path does not have real file for library -lXt.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libXt and none of the candidates passed a file format test
*** using a file magic. Last file checked: /lib/librt-2.10.1.so
*** The inter-library dependencies that have been dropped here will be
*** or is declared to -dlopen it.

Thanks for your help, also the subsequent post with a script did not work as my system does not have a /usr/lib64/nvidia directory.

This sure sounds like an NVIDIA adventure so I've fixed my inittab for the eventual driver crash.
Phil

Hi Phil,

Are you running Fedora. In that case it might be that libGL.so is linked to the wrong non-NVIDIA library. I had the same issue. For some reason each "yum update" invalidates the link. I have a small bash script that corrects the issue:

#!/usr/bin/env bash

# Author: M. Nawijn
# Purpose: Restore symbolic links to NVIDIA libGL* libraries.
# These symbolic links are somehow restored to default
# non-NVIDIA libraries after yum update

# Test for existence of NVIDIA shared libs

libdir="/usr/lib64"
nvlibdir="/usr/lib64/nvidia"

if [ -L $nvlibdir/libGL.so ]; then echo "NVIDIA sharedlibrary exists" fi if [ -L$libdir/libGL.so ]; then
echo "OpenGL sharedlibrary exists"
fi

\rm $libdir/libGL.so \rm$libdir/libGL.so.1

ln -s $nvlibdir/libGL.so$libdir/libGL.so
ln -s %nvlibdir/libGL.so.1 \$libdir/libGL.so.1