[vox-tech] complicated libGL / library breakage

Peter Jay Salzman vox-tech@lists.lugod.org
Mon, 1 Dec 2003 07:01:30 -0800


Hi all,

My main workstation is a dual Celeron running Woody (X 4.2.1) with a
Voodoo 5.  My system has previously been healthy and finely tuned.

A long time ago, maybe a year, my hardware accelerated GL broke after an
"apt-get upgrade".  When I run glxgears, I see:

   p@satan$ glxgears 
   libGL: XF86DRIGetClientDriverName: 1.0.0 tdfx (screen 0)
   libGL: OpenDriver: trying /usr/X11R6/lib/modules/dri/tdfx_dri.so
   libGL: OpenDriver: trying /usr/X11R6/lib/modules/dri/tdfx_dri.so
   drmOpenByBusid: busid is PCI:1:0:0
   drmOpenDevice: minor is 0
   drmOpenDevice: node name is /dev/dri/card0
   drmOpenDevice: open result is 4, (OK)
   drmOpenByBusid: drmOpenMinor returns 4
   drmOpenByBusid: drmGetBusid reports PCI:1:0:0
=> libGL error: can't find Glide library, dlopen(libglide3-v5.so) and
=> dlopen(libglide3.so) both failed.
=> libGL error: dlerror() message: /usr/lib/libglide3.so: undefined symbol:
=> _trisetup_Default_win_nocull_valid
   411 frames in 5.0 seconds = 82.200 FPS
   500 frames in 5.0 seconds = 100.000 FPS
   400 frames in 5.0 seconds = 80.000 FPS
   500 frames in 5.0 seconds = 100.000 FPS
   400 frames in 5.0 seconds = 80.000 FPS


There seem to be two errors:

   1. Glide library can't be found.
   2. Undefined symbol in glide library.

These errors seem to be contradictory, so I ran strace on glxgears:

   ...

      lots of open("a glide3 library that doesn't exist") = ENOENT
   ...

   open("/usr/lib/libglide3.so", O_RDONLY) = 5
   read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260\252"...,
      512) = 512fstat64(5, {st_mode=S_IFREG|0644, st_size=436112, ...}) = 0
   old_mmap(NULL, 4184584, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) =
      0x4044a000
   old_mmap(0x404b2000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
      5, 0x68000) = 0x404b2000
   old_mmap(0x404b5000, 3746312, PROT_READ|PROT_WRITE,
   MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x404b5000
   close(5)                                = 0
   munmap(0x4043b000, 60403)               = 0
   munmap(0x4044a000, 4184584)             = 0
   write(2, "libGL error: can\'t find Glide li"..., 101) = 101
   write(2, "libGL error: dlerror() message: "..., 108) = 108

   ...

it seems to open /usr/lib/libglide3.so, and even reads from the file.
but then goes on to print that it can't find the glide library.  very
wierd.  the library libglide3.so certainly exists (and permissions look
good):



p@satan$ locate libglide3-v5
p@satan$ 

p@satan$ ls -l /usr/lib/libglide3.so
/usr/lib/libglide3.so -> libglide3.so.3

p@satan$ ls -l /usr/lib/libglide3.so.3
/usr/lib/libglide3.so.3 -> /usr/lib/glide3/libglide3_h5.so.3.10.0

p@satan$ ls -l /usr/lib/glide3/libglide3_h5.so.3.10.0
/usr/lib/glide3/libglide3_h5.so.3.10.0



as far as the undefined symbol goes, i confirmed that it is undefined:

objdump -T /usr/lib/glide3/libglide3_h5.so.3.10.0 | grep trisetup
00000000      D  *UND*  00000000 _trisetup_Default_win_nocull_valid

but i'm not sure what to do with this information.


this isn't my gaming system, so it's not crucial that accelerated
graphics work, but i'd like to fix this anyhow.  i'm starting to reach
the point where i'm not quite sure what to do.

any ideas?

pete

-- 
Make everything as simple as possible, but no simpler.  -- Albert Einstein
GPG Instructions: http://www.dirac.org/linux/gpg
GPG Fingerprint: B9F1 6CF3 47C4 7CD8 D33E 70A9 A3B9 1945 67EA 951D