Summary: | undefined symbol drmCloseOnce in i915_dri.so | ||
---|---|---|---|
Product: | Mesa | Reporter: | Shuang He <shuang.he> |
Component: | Drivers/DRI/i915 | Assignee: | Default DRI bug account <dri-devel> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | high | CC: | gordon.jin, haihao.xiang |
Version: | git | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
X server log
X conf file |
Description
Shuang He
2006-11-01 23:58:15 UTC
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: drmCloseOnce I'm using mesa tip, and libdrm 2.2. I wonder where drmCloseOnce is defined? 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. 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. 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 bug#8868. 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 :( Cheers, Pete 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 |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.