So I somehow broke OpenGL on my Gentoo desktop yesterday. I noticed it because my screensaver stopped working. It’s the only thing that uses GL all the time. So I started trying various things to fix the problem such as good old revdep-rebuild. It immediately complains about freeglut having a problem and tries to emerge it. Then I get a wonderfully generic error, “ld: cannot find -lGL”. Great, the linker can’t find a file and is complaining that it’s arguments are the file and it can’t find them. So what file is it looking for and why can’t the linker find it.
After much reading about lots of things that didn’t seem to apply I found one that was close. It said to try and update which OpenGL libraries are being used via eselect. “eselect opengl list” will show you what it thinks it has. “eselect opengl set #” will assign which library to use. It complained that it couldn’t find openGL.so. A-ha! Now we’re getting somewhere. Well you can find it as a symbolic link at /usr/lib/openGL.so and it links to /usr/lib/openGL.so.1 and that doesn’t exist. So I created a symbolic link /usr/lib/openGL.so.1 to /usr/lib/opengl/xorg-x11/lib/libGL.so and BINGO! everything now works.
What a pain in the ass and how did the symbolic link to that file get deleted in the first place???
Well it’s fixed and only wasted about 4 hours of my life really fixing something that isn’t even terribly relevant to my job BUT my screensaver works again. 🙂
Why not just re-do eselect opengl set xorg-x11?
I did. When I said I tried “eselect opengl set #” The # is the value of the line entry you get back off of “eselect list”. eselect couldn’t find openGL.so which is how I tracked down the problem.
Now I’ve realized that DRI isn’t working now so openGL runs at a crawl. Arg. Wish I new what I did to start this mess.
Well.. I seem to have the same kind of problem… I’ll try your advise 🙂
(It happened after my last update.. I use Sidux… And now neither amarok nor my screensaver NOR frozen-bubble are working… I’ll tell you later on if it worked … but thx anyway this is the closest to my problem I could find… )
regards