Bug 8859 - undefined symbol drmCloseOnce in i915_dri.so
undefined symbol drmCloseOnce in i915_dri.so
Status: CLOSED FIXED
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i915
git
x86 (IA32) Linux (All)
: high normal
Assigned To: Default DRI bug account
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2006-11-01 23:58 UTC by Shuang He
Modified: 2009-08-24 12:24 UTC (History)
2 users (show)

See Also:


Attachments
X server log (46.28 KB, text/plain)
2006-11-01 23:58 UTC, Shuang He
Details
X conf file (2.76 KB, text/plain)
2006-11-01 23:59 UTC, Shuang He
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Shuang He 2006-11-01 23:58:15 UTC
--Architecture(ia32,ia32e,compatiblity): ia32
--2D driver: git(fbb376bd1a4daad4c86e349df98438989ce173f1)
--Xorg: 7.1
--Mesa: CVS tip
--OS: FC5
--Kernel: 2.6.19-rc3

For platform: 845gv, 865gv, 915gm

When config to use i915_dri.so or i915tex_dri.so,running glxinfo will get
following error:

X: symbol lookup error: /opt/X11R7/lib/dri/i915tex_dri.so: undefined symbol:
drmCloseOnce

[1]+  Exit 127                X
Comment 1 Shuang He 2006-11-01 23:58:44 UTC
Created attachment 7628 [details]
X server log
Comment 2 Shuang He 2006-11-01 23:59:05 UTC
Created attachment 7629 [details]
X conf file
Comment 3 Keith Whitwell 2006-11-02 00:14:44 UTC
I'm guessing you need to recompile libGL.so.
Comment 4 Michel Dänzer 2006-11-02 14:14:26 UTC
I think you need libdrm 2.2. Does this really affect i915_dri.so though?
Comment 5 Gordon Jin 2006-11-05 21:51:41 UTC
Even with "Legacy3D TRUE", I'm still seeing: 
X: symbol lookup error: /opt/X11R7/lib/dri/i915_dri.so: undefined symbol:
drmCloseOnce

I'm using mesa tip, and libdrm 2.2.

I wonder where drmCloseOnce is defined?
Comment 6 Gordon Jin 2006-11-06 22:44:27 UTC
more findings:

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, 
including i965_dri.so.

3. I don't know where drmCloseOnce is defined. But removing "drmCloseOnce" in 
common/dri_util.c seems working. 
Comment 7 haihao 2006-11-06 23:53:26 UTC
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
spelling mistake.
Comment 8 Keith Packard 2006-11-07 00:33:36 UTC
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.
Comment 9 Eric Anholt 2006-11-07 09:08:05 UTC
Again, this is about X Server startup, nothing libGL related.
Comment 10 Eric Anholt 2006-11-07 09:08:27 UTC
Are you running a current X Server?
Comment 11 Gordon Jin 2006-11-07 17:19:11 UTC
Eric, our xserver is a bit stale. We failed to build the xserver tip due to 
bug#8868.
Comment 12 Alan Hourihane 2006-11-08 04:42:34 UTC
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.
Comment 13 Dave Airlie 2006-11-08 14:34:28 UTC
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.

Comment 14 Gordon Jin 2006-11-10 05:40:14 UTC
verified, thanks for the fix.
Comment 15 Peter Waller 2006-12-16 07:52:33 UTC
(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 :(

Cheers,

Pete
Comment 16 Dave Airlie 2006-12-16 15:26:13 UTC
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...
Comment 17 ajax at nwnk dot net 2009-08-24 12:24:51 UTC
Mass version move, cvs -> git