summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaarten Lankhorst <maarten.lankhorst@canonical.com>2014-02-12 13:50:43 +0100
committerMaarten Lankhorst <maarten.lankhorst@canonical.com>2014-02-12 13:51:51 +0100
commit572a8345bfd1d6289a91b64eef92565ef9b3ee55 (patch)
treecbadc19c873d6441fd7630af1f69a4457985fd24
parent025d99ce3cea21c9ecea77b95655c0c838b2fa3c (diff)
gallium makefiles: use a linker script for building dri drivers
Only export __driDriverExtensions by default, and radeon_drm_winsys_create on radeons. Remove -Bsymbolic which should no longer be needed. As a side effect, it ought to fix a manifestation of bug 73200 on radeon. Signed-off-by: Maarten Lankhorst<maarten.lankhorst@canonical.com> Reviewed-by: Christian König <christian.koenig@amd.com>
-rw-r--r--src/gallium/Automake.inc6
-rw-r--r--src/gallium/state_trackers/dri/dri.link5
-rw-r--r--src/gallium/targets/r300/dri/Makefile.am1
-rw-r--r--src/gallium/targets/r300/dri/radeon.link6
-rw-r--r--src/gallium/targets/r600/dri/Makefile.am1
-rw-r--r--src/gallium/targets/radeonsi/dri/Makefile.am1
6 files changed, 18 insertions, 2 deletions
diff --git a/src/gallium/Automake.inc b/src/gallium/Automake.inc
index 1e4a34f5d2d..fec69cc523f 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_VERSION_SCRIPT ?= $(top_srcdir)/src/gallium/state_trackers/dri/dri.link
+
GALLIUM_DRI_LINKER_FLAGS = \
-module \
-avoid-version \
+ -Wl,--version-script=$(DRI_VERSION_SCRIPT) \
-shared \
- -Wl,-Bsymbolic
+ -no-undefined
GALLIUM_VDPAU_LINKER_FLAGS = \
-module \
diff --git a/src/gallium/state_trackers/dri/dri.link b/src/gallium/state_trackers/dri/dri.link
new file mode 100644
index 00000000000..163902eff58
--- /dev/null
+++ b/src/gallium/state_trackers/dri/dri.link
@@ -0,0 +1,5 @@
+VERSION {
+ global:
+ __driDriverExtensions;
+ local: *;
+};
diff --git a/src/gallium/targets/r300/dri/Makefile.am b/src/gallium/targets/r300/dri/Makefile.am
index d6d8f2d3f97..4bd9ea4f6a9 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_VERSION_SCRIPT = $(srcdir)/radeon.link
include $(top_srcdir)/src/gallium/Automake.inc
AM_CFLAGS = \
diff --git a/src/gallium/targets/r300/dri/radeon.link b/src/gallium/targets/r300/dri/radeon.link
new file mode 100644
index 00000000000..618058b13db
--- /dev/null
+++ b/src/gallium/targets/r300/dri/radeon.link
@@ -0,0 +1,6 @@
+VERSION {
+ global:
+ __driDriverExtensions;
+ radeon_drm_winsys_create;
+ local: *;
+};
diff --git a/src/gallium/targets/r600/dri/Makefile.am b/src/gallium/targets/r600/dri/Makefile.am
index 42db72f5cd5..1f13b803e0b 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_VERSION_SCRIPT = $(srcdir)/../../r300/dri/radeon.link
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 2c1a58d76ff..eab28b5a253 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_VERSION_SCRIPT = $(srcdir)/../../r300/dri/radeon.link
include $(top_srcdir)/src/gallium/Automake.inc
AM_CFLAGS = \