summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2017-08-21 14:27:42 -0500
committerRob Herring <robh@kernel.org>2017-08-22 19:02:12 -0500
commitf8e42237283d2b4ec829449adbbcfc9e51ac8756 (patch)
tree97ae765c437a3a8d1307437b54155b5f82f0d545
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 <emil.l.velikov@gmail.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Rob Herring <robh@kernel.org>
-rw-r--r--Android.common.mk1
-rw-r--r--src/gallium/targets/dri/Android.mk7
2 files changed, 8 insertions, 0 deletions
diff --git a/Android.common.mk b/Android.common.mk
index e5416c4e38..25ea8a3c49 100644
--- a/Android.common.mk
+++ b/Android.common.mk
@@ -64,6 +64,7 @@ LOCAL_CFLAGS += \
-DHAVE___BUILTIN_CLZLL \
-DHAVE___BUILTIN_UNREACHABLE \
-DHAVE_PTHREAD=1 \
+ -DHAVE_DLADDR \
-DHAVE_DLOPEN \
-DHAVE_DL_ITERATE_PHDR \
-DMAJOR_IN_SYSMACROS \
diff --git a/src/gallium/targets/dri/Android.mk b/src/gallium/targets/dri/Android.mk
index 96b570ea11..e40288c21b 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 \