[Mesa-dev] [PATCH] gallium makefiles: use -export-symbols-regex for building dri drivers
Christian König
deathsimple at vodafone.de
Tue Feb 11 07:26:14 PST 2014
Am 11.02.2014 16:24, schrieb Emil Velikov:
> On 11/02/14 15:17, Christian König wrote:
>> Am 11.02.2014 15:55, schrieb Maarten Lankhorst:
>>> Hide most symbols, except radeon_drm_winsys_create.
>>> As a side effect, it ought to fix bug 73200 on radeon.
>>>
>>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com>
>> I think Emil Velikov wanted to remove "-export-symbols-regex", but I'm
>> fine with any method as long as it works correctly.
>>
> Seems like we'll need to keep the symbol restrictions due to llvm :'(
Oh, no. That wasn't because of LLVM, it's just that -Bsymbolic has the
unwanted side effect of preferring local symbols in the local DSO
instead of the global one, which breaks VDPAU interop in certain cases.
Christian.
>
> Maarten can you please use version script.
>
> Thanks
> -Emil
>
> [1] Ulrich Drepper's paper http://people.redhat.com/drepper/dsohowto.pdf
>
>> So this patch is: Reviewed-by: Christian König <christian.koenig at amd.com>
>>
>>> ---
>>> diff --git a/src/gallium/Automake.inc b/src/gallium/Automake.inc
>>> index 1e4a34f..b70b940 100644
>>> --- a/src/gallium/Automake.inc
>>> +++ b/src/gallium/Automake.inc
>>> @@ -51,12 +51,14 @@ GALLIUM_VIDEO_CFLAGS = \
>>> $(VISIBILITY_CFLAGS)
>>>
>>>
>>> -# TODO: add -export-symbols-regex
>>> +DRI_EXPORTS ?= '^(__dri2ConfigOptions|__driDriverExtensions.*)$$'
>>> +
>>> GALLIUM_DRI_LINKER_FLAGS = \
>>> -module \
>>> -avoid-version \
>>> + -export-symbols-regex $(DRI_EXPORTS) \
>>> -shared \
>>> - -Wl,-Bsymbolic
>>> + -no-undefined
>>>
>>> GALLIUM_VDPAU_LINKER_FLAGS = \
>>> -module \
>>> diff --git a/src/gallium/targets/r300/dri/Makefile.am
>>> b/src/gallium/targets/r300/dri/Makefile.am
>>> index d6d8f2d..a2ae263 100644
>>> --- a/src/gallium/targets/r300/dri/Makefile.am
>>> +++ b/src/gallium/targets/r300/dri/Makefile.am
>>> @@ -20,6 +20,7 @@
>>> # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
>>> # DEALINGS IN THE SOFTWARE.
>>>
>>> +DRI_EXPORTS =
>>> '^(__dri2ConfigOptions|__driDriverExtensions.*|radeon_drm_winsys_create)$$'
>>>
>>> include $(top_srcdir)/src/gallium/Automake.inc
>>>
>>> AM_CFLAGS = \
>>> diff --git a/src/gallium/targets/r600/dri/Makefile.am
>>> b/src/gallium/targets/r600/dri/Makefile.am
>>> index 42db72f..374b2ce 100644
>>> --- a/src/gallium/targets/r600/dri/Makefile.am
>>> +++ b/src/gallium/targets/r600/dri/Makefile.am
>>> @@ -20,6 +20,7 @@
>>> # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
>>> # DEALINGS IN THE SOFTWARE.
>>>
>>> +DRI_EXPORTS =
>>> '^(__dri2ConfigOptions|__driDriverExtensions.*|radeon_drm_winsys_create)$$'
>>>
>>> include $(top_srcdir)/src/gallium/Automake.inc
>>>
>>> AM_CFLAGS = \
>>> diff --git a/src/gallium/targets/radeonsi/dri/Makefile.am
>>> b/src/gallium/targets/radeonsi/dri/Makefile.am
>>> index 2c1a58d..79ce23f 100644
>>> --- a/src/gallium/targets/radeonsi/dri/Makefile.am
>>> +++ b/src/gallium/targets/radeonsi/dri/Makefile.am
>>> @@ -20,6 +20,7 @@
>>> # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
>>> # DEALINGS IN THE SOFTWARE.
>>>
>>> +DRI_EXPORTS =
>>> '^(__dri2ConfigOptions|__driDriverExtensions.*|radeon_drm_winsys_create)$$'
>>>
>>> include $(top_srcdir)/src/gallium/Automake.inc
>>>
>>> AM_CFLAGS = \
>>>
More information about the mesa-dev
mailing list