diff options
author | Rob Herring <robh@kernel.org> | 2017-08-21 14:27:42 -0500 |
---|---|---|
committer | Rob Herring <robh@kernel.org> | 2017-08-22 19:02:12 -0500 |
commit | f8e42237283d2b4ec829449adbbcfc9e51ac8756 (patch) | |
tree | 97ae765c437a3a8d1307437b54155b5f82f0d545 | |
parent | 2b025a11be1be82b482b7d61a1c0a8cf4de5570f (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.mk | 1 | ||||
-rw-r--r-- | src/gallium/targets/dri/Android.mk | 7 |
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 \ |