Mesa (master): targets/dri: android: use WHOLE static libraries

Emil Velikov evelikov at kemper.freedesktop.org
Fri Jan 22 11:50:41 UTC 2016


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

Author: Emil Velikov <emil.l.velikov at gmail.com>
Date:   Sun Nov 29 16:38:54 2015 +0000

targets/dri: android: use WHOLE static libraries

By using whole static libraries the android buildsystem provides
whole-archive (alike) solution. This means that we don't need to worry
about the order of the static libraries and any reverse, recursive or
circular dependencies that they have between one another.

Without this the linker will discard any unused hunks of one library
and we'll end up with unresolved symbols as those are required by
another static library. This issue has become more prominent with the
introduction of pipe-loader.

Whole static libraries has been used in i915/i965 for a very long
time, so we might do the same.

v2:
 - Better commit message (Ilia)
 - Keep external dependencies as [normal] static libs (Mauro)

Cc: mesa-stable at lists.freedesktop.org
Cc: Mauro Rossi <issor.oruam at gmail.com>
Reported-by: Mauro Rossi <issor.oruam at gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>

---

 src/gallium/targets/dri/Android.mk | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gallium/targets/dri/Android.mk b/src/gallium/targets/dri/Android.mk
index 2d9610e..9118fef 100644
--- a/src/gallium/targets/dri/Android.mk
+++ b/src/gallium/targets/dri/Android.mk
@@ -100,7 +100,7 @@ ifneq ($(filter nouveau r600g,$(MESA_GPU_DRIVERS)),)
 LOCAL_SHARED_LIBRARIES += $(if $(filter true,$(MESA_LOLLIPOP_BUILD)),libc++,libstlport)
 endif
 
-LOCAL_STATIC_LIBRARIES := \
+LOCAL_WHOLE_STATIC_LIBRARIES := \
 	$(gallium_DRIVERS) \
 	libmesa_st_dri \
 	libmesa_st_mesa \
@@ -112,6 +112,8 @@ LOCAL_STATIC_LIBRARIES := \
 	libmesa_util \
 	libmesa_loader \
 
+LOCAL_STATIC_LIBRARIES :=
+
 ifeq ($(MESA_ENABLE_LLVM),true)
 LOCAL_STATIC_LIBRARIES += \
 	libLLVMR600CodeGen \




More information about the mesa-commit mailing list