summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRob Herring <[email protected]>2017-08-21 14:27:42 -0500
committerRob Herring <[email protected]>2017-08-22 19:02:12 -0500
commitf8e42237283d2b4ec829449adbbcfc9e51ac8756 (patch)
tree97ae765c437a3a8d1307437b54155b5f82f0d545 /src
parent2b025a11be1be82b482b7d61a1c0a8cf4de5570f (diff)
Android: gallium_dri: pass dri.sym to linker
Pass the dri.sym version script to the linker. This ensures only explicitly exported symbols are exported and shrinks the library by up to 60KB. HAVE_DLADDR also needs to be set so that __driDriverExtensions is defined. We need to pass "--undefined-version" because the Android build system sets --no-undefined-version by default and we get an error on driver specific symbols if those drivers are disabled without the option. Suggested-by: Emil Velikov <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Signed-off-by: Rob Herring <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/targets/dri/Android.mk7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/targets/dri/Android.mk b/src/gallium/targets/dri/Android.mk
index 96b570ea116..e40288c21b9 100644
--- a/src/gallium/targets/dri/Android.mk
+++ b/src/gallium/targets/dri/Android.mk
@@ -32,6 +32,13 @@ LOCAL_SRC_FILES := target.c
LOCAL_CFLAGS :=
+# We need --undefined-version as some functions in dri.sym may be missing
+# depending on which drivers are enabled or not. Otherwise, we get the error:
+# "version script assignment of to symbol FOO failed: symbol not defined"
+LOCAL_LDFLAGS := \
+ -Wl,--version-script=$(LOCAL_PATH)/dri.sym \
+ -Wl,--undefined-version
+
LOCAL_SHARED_LIBRARIES := \
libdl \
libglapi \