Just tried merging the new nvidia-glx-1.0.2802-r1 and it broke my X.
Relevant error is outlined in FAQ section of README excerpted below. The gist
is if I set DEBUGBUILD=true in my /etc/make.conf so that portage won't strip the
binaries, it works. If this happens to others, we should probably override the
auto stripping when installing nvidia-glx. Note: the critical file is
Q: When I start X it fails and my XFree86 log file contains:
(II) LoadModule: "nvidia"
(II) Loading /usr/X11R6/lib/modules/drivers/nvidia_drv.o
No symbols found in this module
(EE) Failed to load /usr/X11R6/lib/modules/drivers/nvidia_drv.o
(II) UnloadModule: "nvidia"
(EE) Failed to load module "nvidia" (loader failed, 256)
(EE) No drivers available.
A: The nvidia_drv.o X driver has been stripped of needed symbols;
some versions of rpm (wrongly) strip object files while installing.
You should probably upgrade your version of rpm. Or, you can install
the NVIDIA_GLX package from tar file.
Weird. I saw one more account of this in one of the mailing lists...
Anyhow, I don't have DEBUGBUILD defined in /etc/make.conf, and everything seems
to work fine. Any ideas what else could influence the file to be stripped? Are
you sure it's in fact stripped (run "file nvidia_drv.o" and look at the output).
Unfortunately, I can't confirm.
I merged the nvidia stuff, and X wouldn't start back up and I was just trying to
get up and running again. Setting DEBUGBUILD=true fixed the problem for me.
I did do the merge while X was running, then shutdown -r for the hell of it
(hadn't actually restarted the system for a long time). don't know if merging
while in X had an influence.
Some more questions:
1. From what version of the nvidia package were you upgrading?
2. A wild guess: you did not forget to rmmod the old NVdriver kernel driver and
loading the new one, before restarting X, right? If you did, then the reboot
could have actually taken care of it.
3. If you could remove DEBUGBUILD=true from your make.conf, then emerge
nvidia-glx and check whether nvidia_drv.o is in fact stripped, it would be
great. You can then safely re-merge it with DEBUGBUILD=true enabled.
p.s. Wonder why DEBUGBUILD=true is not documented in make.conf?
The proper "new" way for doing this (with the 1.8.9+ Portage series) is to add a
RESTRICT="nostrip" to your ebuild. For the time being, you'll also need to add
a DEBUG="yes" to your ebuild to be compatible with old-style Portage. Afaik,
this was fixed by g2boojum.