Mesa (master): targets/xvmc: limit the amount of exported symbols

Emil Velikov evelikov at kemper.freedesktop.org
Fri May 2 20:52:08 UTC 2014


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

Author: Emil Velikov <emil.l.velikov at gmail.com>
Date:   Fri Apr  4 23:46:13 2014 +0100

targets/xvmc: 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 ~25 symbols, explicitly list them
to minimize the chances of rogue symbols sneaking in.

Drop the *winsys_create functions as they were only meant for
gl-vdpau interop.

Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
Reviewed-by: Christian König <christian.koenig at amd.com>

---

 src/gallium/Automake.inc     |    2 +-
 src/gallium/targets/xvmc.sym |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/src/gallium/Automake.inc b/src/gallium/Automake.inc
index 1f5d532..f857c1a 100644
--- a/src/gallium/Automake.inc
+++ b/src/gallium/Automake.inc
@@ -75,7 +75,7 @@ GALLIUM_XVMC_LINKER_FLAGS = \
 	-module \
 	-no-undefined \
 	-version-number $(XVMC_MAJOR):$(XVMC_MINOR) \
-	-export-symbols-regex '^XvMC' \
+	-Wl,--version-script=$(top_srcdir)/src/gallium/targets/xvmc.sym \
 	$(GC_SECTIONS) \
 	$(LD_NO_UNDEFINED)
 
diff --git a/src/gallium/targets/xvmc.sym b/src/gallium/targets/xvmc.sym
new file mode 100644
index 0000000..f51378e
--- /dev/null
+++ b/src/gallium/targets/xvmc.sym
@@ -0,0 +1,32 @@
+{
+	global:
+		XvMCBlendSubpicture;
+		XvMCBlendSubpicture2;
+		XvMCClearSubpicture;
+		XvMCCompositeSubpicture;
+		XvMCCreateBlocks;
+		XvMCCreateContext;
+		XvMCCreateMacroBlocks;
+		XvMCCreateSubpicture;
+		XvMCCreateSurface;
+		XvMCDestroyBlocks;
+		XvMCDestroyContext;
+		XvMCDestroyMacroBlocks;
+		XvMCDestroySubpicture;
+		XvMCDestroySurface;
+		XvMCFlushSubpicture;
+		XvMCFlushSurface;
+		XvMCGetAttribute;
+		XvMCGetSubpictureStatus;
+		XvMCGetSurfaceStatus;
+		XvMCHideSurface;
+		XvMCPutSurface;
+		XvMCQueryAttributes;
+		XvMCRenderSurface;
+		XvMCSetAttribute;
+		XvMCSetSubpicturePalette;
+		XvMCSyncSubpicture;
+		XvMCSyncSurface;
+	local:
+		*;
+};




More information about the mesa-commit mailing list