targets/xa: limit the amount of exported symbols
authorEmil Velikov <emil.l.velikov@gmail.com>
Fri, 2 May 2014 21:02:15 +0000 (22:02 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Sun, 25 May 2014 22:21:46 +0000 (23:21 +0100)
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 <thellstrom@vmware.com> (v1)
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
src/gallium/targets/xa/Makefile.am
src/gallium/targets/xa/xa.sym [new file with mode: 0644]

index 0d3945430a10b2e288fdefc3a03580ef9ddf03de..cb9fdc44716aebde8140d4f06aea8b0bad6b6e7b 100644 (file)
@@ -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 (file)
index 0000000..9c7f422
--- /dev/null
@@ -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:
+               *;
+};