@Matthias Klose:
I think it is well possible to test this without any Nvidia hardware: you probably can just do
$ dpkg-deb -x nvidia-glx-185_185.18.36-0ubuntu2_i386.deb xxx $ LD_LIBRARY_PATH=$PWD/xxx/usr/lib glxinfo
and observe the crash -- it occurs on shared library load, very likely before Nvidia's GL library even tries to access the HW. Consider also:
$ cat test.c int main() { return 0; } $ gcc -o test test.c -lGL $ LD_LIBRARY_PATH=$PWD/xxx/usr/lib ./test Segmentation fault (core dumped)
It crashes before reaching main(). Also, something strange is going on here:
$ LD_DEBUG=all LD_LIBRARY_PATH=$PWD/xxx/usr/lib ./test [clip] 6922: symbol=pthread_key_create; lookup in file=/usr/lib/libXdmcp.so.6 [0] 6922: ./test: error: symbol lookup error: undefined symbol: pthread_key_create (fatal) Segmentation fault (core dumped)
I don't know (as of now) how to debug the .init section code of a shared library, so I'll have to stop here.
@Matthias Klose:
I think it is well possible to test this without any Nvidia hardware: you probably can just do
$ dpkg-deb -x nvidia- glx-185_ 185.18. 36-0ubuntu2_ i386.deb xxx PATH=$PWD/ xxx/usr/ lib glxinfo
$ LD_LIBRARY_
and observe the crash -- it occurs on shared library load, very likely before Nvidia's GL library even tries to access the HW. Consider also:
$ cat test.c PATH=$PWD/ xxx/usr/ lib ./test
int main() { return 0; }
$ gcc -o test test.c -lGL
$ LD_LIBRARY_
Segmentation fault (core dumped)
It crashes before reaching main(). Also, something strange is going on here:
$ LD_DEBUG=all LD_LIBRARY_ PATH=$PWD/ xxx/usr/ lib ./test pthread_ key_create; lookup in file=/usr/ lib/libXdmcp. so.6 [0]
[clip]
6922: symbol=
6922: ./test: error: symbol lookup error: undefined symbol: pthread_key_create (fatal)
Segmentation fault (core dumped)
I don't know (as of now) how to debug the .init section code of a shared library, so I'll have to stop here.