Bug 30303

Summary: libglx.so does not export glapi_get_proc_address as public
Product: xorg Reporter: Peter Hjalmarsson <xake>
Component: Server/Ext/GLXAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: rezbit.hex
Version: git   
Hardware: Other   
OS: All   
See Also: http://bugs.gentoo.org/show_bug.cgi?id=328917
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Marking glapi_get_proc_address as PUBLIC none

Description Peter Hjalmarsson 2010-09-21 04:20:51 UTC
Created attachment 38839 [details] [review]
Marking glapi_get_proc_address as PUBLIC

Currently libglx.so does not mark glapi_get_proc_address as PUBLIC and because of this, when having mesa compiled with -z,now or executing startx with LD_BIND_NOW=1 you will get the following error:


[ 24890.012] (EE) AIGLX error: dlopen of /usr/lib64/dri/nouveau_dri.so failed (/usr/lib64/dri/nouveau_dri.so: undefined symbol: _glapi_get_proc_address)
[ 24890.012] (EE) AIGLX: reverting to software rendering


Now with the attached patch this error disapperes, and nouveau_dri.so seems to load as it should.
Comment 1 Julien Cristau 2010-09-21 04:53:03 UTC
On Tue, Sep 21, 2010 at 04:20:51 -0700, bugzilla-daemon@freedesktop.org wrote:

> Currently libglx.so does not mark glapi_get_proc_address as PUBLIC and because
> of this, when having mesa compiled with -z,now or executing startx with
> LD_BIND_NOW=1 you will get the following error:
> 
This sounds like "it hurts when I shoot myself in the foot".
Comment 2 Peter Hjalmarsson 2010-09-21 07:40:03 UTC
(In reply to comment #1)
> This sounds like "it hurts when I shoot myself in the foot".

Oh, my foot is fine. At least it was with mesa classic drivers which worked fine,
however with Gallium3D-drivers this is confirmed with both for nouveau and radeon.
Oh, and the feetshooting is called hardened gentoo.
Comment 3 Peter Hjalmarsson 2010-09-24 11:46:58 UTC
I also forgot to ask: how can nouveau_dri.so or the radeon counterpart rely on and resolv glapi_get_proc_address unless it is public also when not using BIND_NOW?
Comment 4 Peter Hjalmarsson 2010-10-06 08:24:29 UTC
I maybe should mention that what I am trying to get done here is having the following change inside of mesa also exported to the xserver tree:

http://cgit.freedesktop.org/mesa/mesa/commit/?id=8d62eb45997a199e116661e26217b4d44fb9ba1e
Comment 5 Dillon 2011-03-16 13:34:31 UTC
Issue confirmed with i915
Comment 6 Peter Hjalmarsson 2011-04-20 03:25:18 UTC
This is actually fixed in master[1].

Yay for feets in the shooting gallery!:-)

[1] http://cgit.freedesktop.org/xorg/xserver/commit?id=17d9e374721d6c8ee3f7f9cdc882f80127bdb57f

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.