libGL error: dlopen /usr/lib/dri/r200_dri.so failed undefined symbol:

Asked by Vesa K on 2008-05-10

Lot of segfaults after upgrading to Hardy. libGL is out of sync with DRI drivers??? What I should do next?

$ uname -a
Linux ju1 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008 i686 GNU/Linux

[ 1149.325468] glxinfo[19360]: segfault at 00000200 eip b7fdabad esp bfe81a50 error 4
[ 1149.354520] glxinfo[19365]: segfault at 00000200 eip b7f05bad esp bfe0cbb0 error 4
[ 1149.412468] glxinfo[19370]: segfault at 00000200 eip b7f35bad esp bfa5b000 error 4
[ 1149.507234] glxinfo[19386]: segfault at 00000200 eip b7ef8bad esp bfd28ac0 error 4
[ 1631.623298] glxinfo[25304]: segfault at 00000200 eip b7f1fbad esp bfcb6520 error 4

$ export LIBGL_DEBUG=verbose
$ /usr/X11R6/bin/glxinfo
name of display: :0.0
libGL: XF86DRIGetClientDriverName: 5.3.0 r200 (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/r200_dri.so
libGL error: dlopen /usr/lib/dri/r200_dri.so failed (/usr/lib/dri/r200_dri.so: undefined symbol: _glapi_Dispatch)
libGL error: unable to load driver: r200_dri.so
...
0x31 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x32 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow
0x8c 32 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 Ncon
Segmentation fault
$

According http://dri.freedesktop.org/wiki/DriTroubleshooting: "then your libGL is out of sync with your DRI drivers. Because APIs change, you typically need a libGL from the latest X.Org release to run DRI drivers, and sometimes you need a libGL from X.Org CVS for the latest drivers. Reinstall both your drivers and your libGL from sources from the same date."

- Libraries are modified about same date 11th and 6th of april 2008 (created same time, upgrade day).
- glxinfo use correct libGL (not fglrx version)
- libgl1-mesa-dri newest version
- symbol _glapi_Dispatch found from /usr/lib/dri/r200_dri.so

$ locate libGL.so
/usr/lib/libGL.so
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2
/usr/lib/fglrx/libGL.so.1.2.xlibmesa
/usr/lib/fglrx/libGL.so.1.xlibmesa

$ ldd /usr/X11R6/bin/glxinfo
 linux-gate.so.1 => (0xb7f5f000)
 libGL.so.1 => /usr/lib/libGL.so.1 (0xb7ed2000)
 libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d83000)
 libX11.so.6 => /usr/lib/libX11.so.6 (0xb7c9c000)
 libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7c84000)
 libXext.so.6 => /usr/lib/libXext.so.6 (0xb7c76000)
 libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7c6b000)
 /lib/ld-linux.so.2 (0xb7f60000)
 libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb7c68000)
 libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7c50000)
 libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7c4c000)
 libXau.so.6 => /usr/lib/libXau.so.6 (0xb7c49000)
 libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7c44000)

$ ls -al /usr/lib/libGL.*
lrwxrwxrwx 1 root root 12 2008-05-09 18:16 /usr/lib/libGL.so -> libGL.so.1.2
lrwxrwxrwx 1 root root 12 2008-05-07 02:25 /usr/lib/libGL.so.1 -> libGL.so.1.2
-rw-r--r-- 1 root root 478188 2008-04-11 07:13 /usr/lib/libGL.so.1.2

$ ls -al /usr/lib/dri/r*
-rw-r--r-- 1 root root 2143164 2008-04-06 06:06 /usr/lib/dri/r128_dri.so
-rw-r--r-- 1 root root 2208508 2008-04-06 06:06 /usr/lib/dri/r200_dri.so
-rw-r--r-- 1 root root 2138524 2008-04-06 06:06 /usr/lib/dri/r300_dri.so
-rw-r--r-- 1 root root 2174720 2008-04-06 06:06 /usr/lib/dri/radeon_dri.so

VGA compatible controller [0300]: ATI Technologies Inc Radeon R200 QL [Radeon 8500 LE]

Easy fix which not help:

$ sudo apt-get install libgl1-mesa-dri
Reading package lists... Done
Building dependency tree
Reading state information... Done
libgl1-mesa-dri is already the newest version.
The following packages were automatically installed and are no longer required:
  libarts1c2a kdelibs4c2a libartsc0 libk3b2 kdelibs-data liblualib50 libflac++6 libavahi-qt3-1 libdbus-qt-1-1c2
  libqt3-mt liblua50 libaudio2
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$

$ readelf -a /usr/lib/dri/r200_dri.so | grep "glapi"
0020c140 00003506 R_386_GLOB_DAT 00000000 _glapi_Dispatch
0020c638 00006006 R_386_GLOB_DAT 00000000 _glapi_Context
0020c72c 00001e07 R_386_JUMP_SLOT 00000000 _glapi_get_dispatch_ta
0020c770 00002f07 R_386_JUMP_SLOT 00000000 _glapi_get_dispatch
0020c7a4 00003e07 R_386_JUMP_SLOT 00000000 _glapi_get_context
0020c7bc 00004407 R_386_JUMP_SLOT 00000000 _glapi_add_dispatch
0020c7ec 00005107 R_386_JUMP_SLOT 00000000 _glapi_set_warning_fun
0020c7f4 00005307 R_386_JUMP_SLOT 00000000 _glapi_set_context
0020c800 00005607 R_386_JUMP_SLOT 00000000 _glapi_noop_enable_war
0020c834 00006407 R_386_JUMP_SLOT 00000000 _glapi_set_dispatch
    30: 00000000 0 NOTYPE GLOBAL DEFAULT UND _glapi_get_dispatch_table
    47: 00000000 0 NOTYPE GLOBAL DEFAULT UND _glapi_get_dispatch
    53: 00000000 0 NOTYPE GLOBAL DEFAULT UND _glapi_Dispatch
    62: 00000000 0 NOTYPE GLOBAL DEFAULT UND _glapi_get_context
    68: 00000000 0 NOTYPE GLOBAL DEFAULT UND _glapi_add_dispatch
    81: 00000000 0 NOTYPE GLOBAL DEFAULT UND _glapi_set_warning_func
    83: 00000000 0 NOTYPE GLOBAL DEFAULT UND _glapi_set_context
    86: 00000000 0 NOTYPE GLOBAL DEFAULT UND _glapi_noop_enable_warnin
    96: 00000000 0 NOTYPE GLOBAL DEFAULT UND _glapi_Context
   100: 00000000 0 NOTYPE GLOBAL DEFAULT UND _glapi_set_dispatch

What is best way get libGL and DRI driver to sync?

Thanks

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu Edit question
Assignee:
No assignee Edit question
Solved by:
Vesa K
Solved:
2008-05-10
Last query:
2008-05-10
Last reply: