Bugzilla – Bug 8859
undefined symbol drmCloseOnce in i915_dri.so
Last modified: 2009-08-24 12:24:51 UTC
--2D driver: git(fbb376bd1a4daad4c86e349df98438989ce173f1)
--Mesa: CVS tip
For platform: 845gv, 865gv, 915gm
When config to use i915_dri.so or i915tex_dri.so,running glxinfo will get
X: symbol lookup error: /opt/X11R7/lib/dri/i915tex_dri.so: undefined symbol:
+ Exit 127 X
Created attachment 7628 [details]
X server log
Created attachment 7629 [details]
X conf file
I'm guessing you need to recompile libGL.so.
I think you need libdrm 2.2. Does this really affect i915_dri.so though?
Even with "Legacy3D TRUE", I'm still seeing:
X: symbol lookup error: /opt/X11R7/lib/dri/i915_dri.so: undefined symbol:
I'm using mesa tip, and libdrm 2.2.
I wonder where drmCloseOnce is defined?
1. It's triggered in nude xserver. I think most people are using desktop
environment so not seeing this issue.
You can reproduce this by running "X &" then trying "glxinfo" on that X.
2. It's not related to i915tex. Actually it happens on all platforms,
3. I don't know where drmCloseOnce is defined. But removing "drmCloseOnce" in
common/dri_util.c seems working.
drmCloseOnce is not defined. If you build Mesa, you will get the following message:
../common/dri_util.c: In function ‘driDestroyScreen’:
../common/dri_util.c:852: warning: implicit declaration of function ‘drmCloseOnce’
On my 965 platform, X prints the following message
(EE) AIGLX error: dlopen of /usr/local/xorg/lib/dri/i965_dri.so failed
(/usr/local/xorg/lib/dri/i965_dri.so: undefined symbol: drmCloseOnce)
(EE) AIGLX: reverting to software rendering
I check some previous editors and find it is drmClose. So I guess this is a
drmCloseOnce is defined in libGL, so you'll have to install a new version of
that in the appropriate place as well as installing a new driver.
Again, this is about X Server startup, nothing libGL related.
Are you running a current X Server?
Eric, our xserver is a bit stale. We failed to build the xserver tip due to
The problem here seems to stem from the fact that drmOpenOnce and drmCloseOnce
are defined in the Mesa sources in src/glx/x11/glxext.c and therefore is only
provided in new libGL's. For AIGLX this breaks.
Given that Dave Airlie has updated the libdrm code so that the Xserver can now
utilize it, we should move the code for drmOpenOnce/drmCloseOnce into libdrm now
which should fix this problem.
Unfortunately, I can't test it at the moment, but if someone can do that and
generate a patch - that'd be great.
I've just released libdrm 2.3.0 with drmOpenOnce and drmCloseOnce in the API,
I've removed them from libGL, and checked in a patch to the X server to use the
system libdrm instead...
so in theory with libdrm 2.3.0, + a new X server it should all work.
verified, thanks for the fix.
(In reply to comment #13)
> I've just released libdrm 2.3.0 with drmOpenOnce and drmCloseOnce in the API,
> I've removed them from libGL, and checked in a patch to the X server to use the
> system libdrm instead...
> so in theory with libdrm 2.3.0, + a new X server it should all work.
How new an x-server, and where is the best place to get it?
I don't suppose I would be able to find ubuntu packages with a recent enough
x-server? I've been struggling to compile xserver for myself, for some reason.
The 'compilexservermanually' wiki page is quite complicated.
I'm getting this issue after recompiling mesa. Everything seems to work but
opengl applications won't work, and neither will xgl :(
Disable AIGLX if you server is giving the problem.
If it is a client side problem then just your installed libGL or libdrm is old...
Mass version move, cvs -> git