summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmil Velikov <[email protected]>2014-04-04 23:46:13 +0100
committerEmil Velikov <[email protected]>2014-05-02 21:48:25 +0100
commitb8f31dfc22eb90c1703c8d414eedb841c9025f52 (patch)
treebe41f363499cf945ad9681eb152cb61445750715
parent9bcb3698db98fe0ffc7bd6619b8324f13b3b67d2 (diff)
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 <[email protected]> Reviewed-by: Christian König <[email protected]>
-rw-r--r--src/gallium/Automake.inc2
-rw-r--r--src/gallium/targets/xvmc.sym32
2 files changed, 33 insertions, 1 deletions
diff --git a/src/gallium/Automake.inc b/src/gallium/Automake.inc
index 1f5d532e426..f857c1a793d 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 00000000000..f51378e00a1
--- /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:
+ *;
+};