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>
This commit is contained in:
@@ -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 \
|
||||
|
@@ -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 \
|
||||
|
Reference in New Issue
Block a user