Hi Alberto, One of our GL driver engineers looked into this a bit, and it actually seems to be a linker regression that is exposed when linking an application against the Mesa libGL, and then running it against the NVIDIA one. He is gathering some more information before filing a bug, but in the mean time, please find attached a test case demonstrating the linker bug, which doesn't involve either the Mesa libGL or the NVIDIA one. See the README in the tarball for details.
When bisecting binutils in an attempt to identify the regression, our engineer found that commit commit b64fb44af4f416fbbbda3de03fcfff61d80c841c ("Also track weak references") actually introduced a link time error when attempting to link the test executable: ld: /tmp/cc3K1rHK.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5' ld: note: 'pthread_create@@GLIBC_2.2.5' is defined in DSO //lib/x86_64-linux-gnu/libpthread.so.0 so try adding it to the linker command line That ld error no longer occurs after commit 879707c642925947e156b7ae2169b89f844532cd ("Exclude weak refs when considering whether an --as-needed library is needed"); however, the bug described here (assertion from ld.so) does. We believe that this Debian bug may be related: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=728529 ** Bug watch added: Debian Bug tracker #728529 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=728529 -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to nvidia-graphics-drivers-319 in Ubuntu. https://bugs.launchpad.net/bugs/1248642 Title: dynamic library inconsistencies with OpenGL/C++ Status in “nvidia-graphics-drivers-319” package in Ubuntu: Confirmed Bug description: While using the nvidia-319 driver, the following C++ program won't run: $ cat > test.cpp << EOF #include <string> #include <GL/gl.h> int main(int argc, char *argv[]) { std::string s; glEnable(GL_LIGHT0); } EOF Instead, it fails with the following error message: $ g++ test.cpp -lGL $ ./a.out Inconsistency detected by ld.so: dl-version.c: 224: _dl_check_map_versions: Assertion `needed != ((void *)0)' failed! Using the xserver-xorg-video-nouveau driver, the problem does not occur. Also, when std::string is not used, the program runs without problems. Using OpenGL from pure C programs is also not a problem. The problem can be reproduced with both g++-4.6 and g++-4.8. ProblemType: Bug DistroRelease: Ubuntu 13.10 Package: nvidia-319 319.32-0ubuntu7 ProcVersionSignature: Ubuntu 3.11.0-12.19-generic 3.11.3 Uname: Linux 3.11.0-12-generic x86_64 NonfreeKernelModules: openafs nvidia ApportVersion: 2.12.5-0ubuntu2.1 Architecture: amd64 Date: Wed Nov 6 18:25:48 2013 InstallationDate: Installed on 2013-11-01 (5 days ago) InstallationMedia: Ubuntu-GNOME 13.10 "Saucy Salamander" - Release amd64 (20131017) MarkForUpload: True SourcePackage: nvidia-graphics-drivers-319 UpgradeStatus: No upgrade log present (probably fresh install) modified.conffile..etc.modprobe.d.nvidia.319.hybrid.conf: [deleted] To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-319/+bug/1248642/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp