CVS Update: xserver (branch: accel_indirect_glx)
Adam Jackson
xorg-commit at cvs.freedesktop.org
Fri Feb 17 02:55:36 EET 2006
CVSROOT: /cvs/xorg
Module name: xserver
Changes by: ajax at gabe.freedesktop.org 06/02/16 16:55:36
Log message:
libdrm is built with libc wrapping in the server. the DRI driver links against
the system copy, which is not wrapped. normal ELF symbol resolution will
attempt to resolve drm* symbols by starting at the executable (Xorg) and
working breadth-first. this will hit the server's version of libdrm first,
meaning drm calls from the DRI driver will succeed fine, when they succeed,
but will fail with mangled errno values when they fail. this will defeat
some drivers that retry ioctls like drmCommandWrite on -EAGAIN or -EINTR.
to work around this, dlopen the DRI driver with RTLD_DEEPBIND, which changes
the resolution rules to only search within the lib dependencies listed by the
driver itself. this requires a relatively recent glibc and probably makes
this entire branch linux-only.
the real solution, as has already been done in HEAD, is to terminate the
libc wrapper with extreme prejudice. however that's a big backport so i'm
not going to do it on this branch.
Modified files:
xserver/xorg/GL/glx/: Tag: accel_indirect_glx
glxloader.c
Revision Changes Path
1.1.2.2 +1 -1 xserver/xorg/GL/glx/Attic/glxloader.c
http://cvs.freedesktop.org/xorg/xserver/xorg/GL/glx/Attic/glxloader.c
More information about the xorg-commit
mailing list