Created attachment 577922 [details]
"emerge --info" output.
tl;dr: Nvidia accidentally broke non-GLVND libGL backwards compatibility in >= 430.09. The only means of resolving this is to remove the "compat" option from our x11-drivers/nvidia-drivers-430.14 ebuild.
Nvidia accidentally broke backward compatibility in their recent line of proprietary drivers in a sufficiently severe fashion that breaks X11 startup across multiple Linux distributions. This includes Gentoo, Arch, and OpenSUSE, as confirmed by at least one Nvidia developer (Arthur Huillet) and multiple third-party users and developers in the following Nvidia forum thread:
As further confirmation, see also the following relevant Gentoo forum threads:
Specifically, the "--no-glvnd-glx-client" and "--no-glvnd-egl-client" options passed to the Nvidia .run installer by the x11-drivers/nvidia-drivers-430.14 ebuild when the "compat" USE flag is enabled reliably raises segmentation faults resembling the following "/var/log/Xorg.0.log" stacktrace:
(EE) 0: /usr/bin/X (OsLookupColor+0x149) [0x55f4410c0529]
(EE) 1: /lib64/libc.so.6 (killpg+0x90) [0x7f4974d1089f]
(EE) 2: /lib64/libc.so.6 (memcpy+0x1f) [0x7f4974d82b4f]
(EE) 3: /usr/lib64/libnvidia-glcore.so.430.14 (_nv043glcore+0x27f659) [0x7f49716c2869]
(EE) 4: /usr/lib64/libnvidia-glcore.so.430.14 (_nv043glcore+0x27f7bd) [0x7f49716c2b8d]
(EE) 5: /usr/lib64/libnvidia-glcore.so.430.14 (_nv015glcore+0x49ad8) [0x7f4971176418]
(EE) unw_get_proc_name failed: no unwind info found [-10]
(EE) 6: /usr/lib64/xorg/modules/extensions/libglxserver_nvidia.so (?+0x0) [0x7f496e8a6d32]
(EE) Segmentation fault at address 0x7f496e9a0008
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
I can personally confirm that disabling the "compat" USE flag trivially resolves this issue on my end.
Nvidia has already scheduled the "--no-glvnd-glx-client" and "--no-glvnd-egl-client" options underlying this USE flag to be removed with the next stable release. It seems likely that Nvidia accidentally broke these options prior to their scheduled removal (e.g., due to their ongoing transition to the full GLVND libGL stack).
Since these options were scheduled to be removed shortly anyway, our premature removal of this USE flag shouldn't impose too much of an additional hardship on end users. There is one notable exception, however: the unstable "x11-misc/primus" package, which requires "x11-drivers/nvidia-drivers[compat]" as a hard runtime dependency. The "primus-0.2.ebuild" will also need to be patched to blacklist "!>=x11-drivers/nvidia-drivers-430.14".
Yet again, the high price of binary kernel blobs is unmasked for all to see.
*** This bug has been marked as a duplicate of bug 684324 ***