aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmil Velikov <[email protected]>2014-05-02 22:02:15 +0100
committerEmil Velikov <[email protected]>2014-05-25 23:21:46 +0100
commita75baba2f14a2bcdaf640aeef86d67b41bb2a76f (patch)
treef55233e9ef80d31a2d444f7f4a780246709ee58a
parentce12bbd107996dacdb01e4a0f90ce141dfa8b05d (diff)
targets/xa: limit the amount of exported symbols
In the presence of LLVM the final library exports every symbol from the llvm namespace. Resolve this by using a version script (w/o the version/name tag). Considering that there are only ~35 symbols, explicitly list them to minimize the chances of rogue symbols sneaking in. v2: Conditionally include the version-script. Reviewed-by: Thomas Hellstrom <[email protected]> (v1) Signed-off-by: Emil Velikov <[email protected]>
-rw-r--r--src/gallium/targets/xa/Makefile.am5
-rw-r--r--src/gallium/targets/xa/xa.sym38
2 files changed, 43 insertions, 0 deletions
diff --git a/src/gallium/targets/xa/Makefile.am b/src/gallium/targets/xa/Makefile.am
index 0d3945430a1..cb9fdc44716 100644
--- a/src/gallium/targets/xa/Makefile.am
+++ b/src/gallium/targets/xa/Makefile.am
@@ -66,6 +66,11 @@ libxatracker_la_LDFLAGS = \
$(GC_SECTIONS) \
$(LD_NO_UNDEFINED)
+if HAVE_LD_VERSION_SCRIPT
+libxatracker_la_LDFLAGS += \
+ -Wl,--version-script=$(top_srcdir)/src/gallium/targets/xa/xa.sym
+endif
+
if HAVE_MESA_LLVM
libxatracker_la_LIBADD += $(LLVM_LIBS)
libxatracker_la_LDFLAGS += $(LLVM_LDFLAGS)
diff --git a/src/gallium/targets/xa/xa.sym b/src/gallium/targets/xa/xa.sym
new file mode 100644
index 00000000000..9c7f422f399
--- /dev/null
+++ b/src/gallium/targets/xa/xa.sym
@@ -0,0 +1,38 @@
+{
+ global:
+ xa_composite_allocation;
+ xa_composite_check_accelerated;
+ xa_composite_done;
+ xa_composite_prepare;
+ xa_composite_rect;
+ xa_context_create;
+ xa_context_default;
+ xa_context_destroy;
+ xa_context_flush;
+ xa_copy;
+ xa_copy_done;
+ xa_copy_prepare;
+ xa_fence_get;
+ xa_fence_wait;
+ xa_fence_destroy;
+ xa_format_check_supported;
+ xa_solid;
+ xa_solid_done;
+ xa_solid_prepare;
+ xa_surface_create;
+ xa_surface_dma;
+ xa_surface_format;
+ xa_surface_from_handle;
+ xa_surface_handle;
+ xa_surface_map;
+ xa_surface_redefine;
+ xa_surface_ref;
+ xa_surface_unmap;
+ xa_surface_unref;
+ xa_tracker_create;
+ xa_tracker_destroy;
+ xa_tracker_version;
+ xa_yuv_planar_blit;
+ local:
+ *;
+};