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

Author: Rob Herring <r...@kernel.org>
Date:   Mon Aug 21 14:27:42 2017 -0500

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.veli...@gmail.com>
Reviewed-by: Emil Velikov <emil.l.veli...@gmail.com>
Signed-off-by: Rob Herring <r...@kernel.org>

---

 Android.common.mk                  | 1 +
 src/gallium/targets/dri/Android.mk | 7 +++++++
 2 files changed, 8 insertions(+)

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 \

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to