fix vdpau interop when using -Bsymbolic-functions in ldflags
authorMaarten Lankhorst <maarten.lankhorst@canonical.com>
Thu, 6 Mar 2014 14:20:56 +0000 (15:20 +0100)
committerMaarten Lankhorst <maarten.lankhorst@canonical.com>
Mon, 10 Mar 2014 16:08:19 +0000 (17:08 +0100)
Explicitly add radeon_drm_winsys_create and nouveau_drm_screen_create to
the dynamic list. This will ensure vdpau interop still works even when
the user links with -Bsymbolic-functions in hardened builds.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Tested-by: Rachel Greenham <rachel@strangenoises.org>
Reported-by: Peter Frühberger <peter.fruehberger@gmail.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
src/gallium/targets/dri-nouveau/Makefile.am
src/gallium/targets/dri-nouveau/nouveau_dri.dyn [new file with mode: 0644]
src/gallium/targets/r300/dri/Makefile.am
src/gallium/targets/r300/dri/radeon.dyn [new file with mode: 0644]
src/gallium/targets/r600/dri/Makefile.am
src/gallium/targets/r600/vdpau/Makefile.am
src/gallium/targets/radeonsi/dri/Makefile.am
src/gallium/targets/radeonsi/vdpau/Makefile.am
src/gallium/targets/vdpau-nouveau/Makefile.am

index 4bd4e21953c6f562ba4a0ff8f1eff1c4c2c19323..f34acf80593916361a459ae444b30452a3ed3b37 100644 (file)
@@ -35,7 +35,9 @@ dri_LTLIBRARIES = nouveau_dri.la
 nodist_EXTRA_nouveau_dri_la_SOURCES = dummy.cpp
 nouveau_dri_la_SOURCES = target.c
 
-nouveau_dri_la_LDFLAGS = $(GALLIUM_DRI_LINKER_FLAGS)
+nouveau_dri_la_LDFLAGS = \
+       $(GALLIUM_DRI_LINKER_FLAGS) \
+       -Wl,--dynamic-list=$(srcdir)/nouveau_dri.dyn
 
 nouveau_dri_la_LIBADD = \
        $(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \
diff --git a/src/gallium/targets/dri-nouveau/nouveau_dri.dyn b/src/gallium/targets/dri-nouveau/nouveau_dri.dyn
new file mode 100644 (file)
index 0000000..a10356b
--- /dev/null
@@ -0,0 +1,3 @@
+{
+       nouveau_drm_screen_create;
+};
index 4bd9ea4f6a97be856832b6625d298e7b28c6ad2a..e2becdbca65a79fa0e48fb4c9109028c444c1bea 100644 (file)
@@ -37,7 +37,9 @@ nodist_EXTRA_r300_dri_la_SOURCES = dummy.cpp
 r300_dri_la_SOURCES = \
        drm_target.c
 
-r300_dri_la_LDFLAGS = $(GALLIUM_DRI_LINKER_FLAGS)
+r300_dri_la_LDFLAGS = \
+       $(GALLIUM_DRI_LINKER_FLAGS) \
+       -Wl,--dynamic-list=$(srcdir)/radeon.dyn
 
 r300_dri_la_LIBADD = \
        $(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \
diff --git a/src/gallium/targets/r300/dri/radeon.dyn b/src/gallium/targets/r300/dri/radeon.dyn
new file mode 100644 (file)
index 0000000..8d243dc
--- /dev/null
@@ -0,0 +1,3 @@
+{
+       radeon_drm_winsys_create;
+};
index 1f13b803e0b597646d4483d66ef9c8057a5c315a..f0a1b7bdd231148cfebf8a5a7629b74f28b4e90d 100644 (file)
@@ -36,7 +36,9 @@ dri_LTLIBRARIES = r600_dri.la
 r600_dri_la_SOURCES = \
        drm_target.c
 
-r600_dri_la_LDFLAGS = $(GALLIUM_DRI_LINKER_FLAGS)
+r600_dri_la_LDFLAGS = \
+       $(GALLIUM_DRI_LINKER_FLAGS) \
+       -Wl,--dynamic-list=$(srcdir)/../../r300/dri/radeon.dyn
 
 r600_dri_la_LIBADD = \
        $(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \
index 509b954a68527157af520518f6e5bb66a6d3062a..8d2e70137ee1d6fd8215900c1d7d210821b1cc3d 100644 (file)
@@ -35,7 +35,8 @@ libvdpau_r600_la_SOURCES = \
        $(top_srcdir)/src/gallium/auxiliary/vl/vl_winsys_dri.c
 
 libvdpau_r600_la_LDFLAGS = \
-       $(GALLIUM_VDPAU_LINKER_FLAGS)
+       $(GALLIUM_VDPAU_LINKER_FLAGS) \
+       -Wl,--dynamic-list=$(srcdir)/../../r300/dri/radeon.dyn
 
 libvdpau_r600_la_LIBADD = \
        $(top_builddir)/src/gallium/drivers/r600/libr600.la \
index eab28b5a253cd99aa55fdab41aabc471b07395f9..c49e5fcac872ceec3ef2eeefe6c5658ace96a862 100644 (file)
@@ -37,7 +37,9 @@ nodist_EXTRA_radeonsi_dri_la_SOURCES = dummy.cpp
 radeonsi_dri_la_SOURCES = \
        drm_target.c
 
-radeonsi_dri_la_LDFLAGS = $(GALLIUM_DRI_LINKER_FLAGS)
+radeonsi_dri_la_LDFLAGS = \
+       $(GALLIUM_DRI_LINKER_FLAGS) \
+       -Wl,--dynamic-list=$(srcdir)/../../r300/dri/radeon.dyn
 
 radeonsi_dri_la_LIBADD = \
        $(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \
index 54d65b3d783310738ba80c92074a82f8dea1bbfc..8e2761368422ee5319706e67640360465b6756e9 100644 (file)
@@ -36,7 +36,9 @@ libvdpau_radeonsi_la_SOURCES = \
        $(top_srcdir)/src/gallium/auxiliary/vl/vl_winsys_dri.c
 
 libvdpau_radeonsi_la_LDFLAGS = \
-       $(GALLIUM_VDPAU_LINKER_FLAGS)
+       $(GALLIUM_VDPAU_LINKER_FLAGS) \
+       -Wl,--dynamic-list=$(srcdir)/../../r300/dri/radeon.dyn
+
 
 libvdpau_radeonsi_la_LIBADD = \
        $(top_builddir)/src/gallium/drivers/radeonsi/libradeonsi.la \
index 3cdf1031044ad5c1a1797fbf7c1c96014b4a0278..66738f1d4121e2d145a2086a10fba4da82c18beb 100644 (file)
@@ -36,7 +36,8 @@ libvdpau_nouveau_la_SOURCES = \
        $(top_srcdir)/src/gallium/auxiliary/vl/vl_winsys_dri.c
 
 libvdpau_nouveau_la_LDFLAGS = \
-       $(GALLIUM_VDPAU_LINKER_FLAGS)
+       $(GALLIUM_VDPAU_LINKER_FLAGS) \
+       -Wl,--dynamic-list=$(srcdir)/../dri-nouveau/nouveau_dri.dyn
 
 libvdpau_nouveau_la_LIBADD = \
        $(top_builddir)/src/gallium/winsys/nouveau/drm/libnouveaudrm.la \