Mesa (master): gallium makefiles: use a linker script for building dri drivers

Maarten Lankhorst mlankhorst at kemper.freedesktop.org
Wed Feb 12 13:10:02 UTC 2014


Module: Mesa
Branch: master
Commit: 572a8345bfd1d6289a91b64eef92565ef9b3ee55
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=572a8345bfd1d6289a91b64eef92565ef9b3ee55

Author: Maarten Lankhorst <maarten.lankhorst at canonical.com>
Date:   Wed Feb 12 13:50:43 2014 +0100

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 at canonical.com>
Reviewed-by: Christian König <christian.koenig at amd.com>

---

 src/gallium/Automake.inc                     |    6 ++++--
 src/gallium/state_trackers/dri/dri.link      |    5 +++++
 src/gallium/targets/r300/dri/Makefile.am     |    1 +
 src/gallium/targets/r300/dri/radeon.link     |    6 ++++++
 src/gallium/targets/r600/dri/Makefile.am     |    1 +
 src/gallium/targets/radeonsi/dri/Makefile.am |    1 +
 6 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/gallium/Automake.inc b/src/gallium/Automake.inc
index 1e4a34f..fec69cc 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 0000000..163902e
--- /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 d6d8f2d..4bd9ea4 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 0000000..618058b
--- /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 42db72f..1f13b80 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 2c1a58d..eab28b5 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 = \




More information about the mesa-commit mailing list