OSDN Git Service

android: make libdrm*.so available to the vendor partition
authorJiyong Park <jiyong@google.com>
Tue, 12 Dec 2017 10:43:07 +0000 (19:43 +0900)
committerMauro Rossi <issor.oruam@gmail.com>
Thu, 17 Oct 2019 18:07:53 +0000 (20:07 +0200)
libdrm_<vendor>.so are moved to the vendor partition (/vendor/lib or
/system/vendor/lib if there is no dedicated vendor partition), since
they are vendor-specific extension that must not be in the system
partition which should be generic.

libdrm.so (which is generic) is built/installed twice: once to
/vendor/lib to satisfy the dependency for the libdrm_<vendor>.so libs
and once to /system/lib for platform clients such as the recovery
executable.

The platform variant of libdrm is named as libdrm_platform.so since
in Android.mk we can't have two different shared libs having
same soname. In the near future, this will be fixed by converting these
Android.mk files to Android.bp and mark the module libdrm as
'vendor_available: true'. (See
https://android-review.googlesource.com/c/368372/ for further detail on
the property)

Signed-off-by: Jiyong Park <jiyong@google.com>
12 files changed:
Android.common.mk
Android.mk
amdgpu/Android.mk
etnaviv/Android.mk
freedreno/Android.mk
intel/Android.mk
libkms/Android.mk
nouveau/Android.mk
radeon/Android.mk
tests/modetest/Android.mk
tests/proptest/Android.mk
tests/util/Android.mk

index d0e5d55..798cf3e 100644 (file)
@@ -15,5 +15,3 @@ LOCAL_CFLAGS += \
 # Quiet down the build system and remove any .h files from the sources
 LOCAL_SRC_FILES := $(patsubst %.h, , $(LOCAL_SRC_FILES))
 LOCAL_EXPORT_C_INCLUDE_DIRS += $(LOCAL_PATH)
-
-LOCAL_PROPRIETARY_MODULE := true
index 0ab6f0f..1950b89 100644 (file)
 # IN THE SOFTWARE.
 #
 
+# Two identical libs are defined here.
+# libdrm: for vendors. installed to /vendor/lib. libdrm_<vendor> uses this.
+# libdrm_platform: for platform modules (such as libminui). installed to /system/lib
+
 LIBDRM_ANDROID_MAJOR_VERSION := $(word 1, $(subst ., , $(PLATFORM_VERSION)))
 ifneq ($(filter 2 4, $(LIBDRM_ANDROID_MAJOR_VERSION)),)
 $(error "Android 4.4 and earlier not supported")
@@ -38,7 +42,41 @@ include $(LOCAL_PATH)/Makefile.sources
 
 #static library for the device (recovery)
 include $(CLEAR_VARS)
+
+LOCAL_MODULE := libdrm_platform
+
+LOCAL_SRC_FILES := $(LIBDRM_FILES)
+LOCAL_EXPORT_C_INCLUDE_DIRS := \
+       $(LOCAL_PATH) \
+       $(LOCAL_PATH)/include/drm
+
+LOCAL_C_INCLUDES := \
+       $(LOCAL_PATH)/include/drm
+
+include $(LIBDRM_COMMON_MK)
+include $(BUILD_STATIC_LIBRARY)
+
+# Dynamic library for the device
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libdrm_platform
+
+LOCAL_SRC_FILES := $(LIBDRM_FILES)
+LOCAL_EXPORT_C_INCLUDE_DIRS := \
+       $(LOCAL_PATH) \
+       $(LOCAL_PATH)/include/drm
+
+LOCAL_C_INCLUDES := \
+       $(LOCAL_PATH)/include/drm
+
+include $(LIBDRM_COMMON_MK)
+include $(BUILD_SHARED_LIBRARY)
+
+# Static library for the device (recovery)
+include $(CLEAR_VARS)
+
 LOCAL_MODULE := libdrm
+LOCAL_VENDOR_MODULE := true
 
 LOCAL_SRC_FILES := $(LIBDRM_FILES)
 LOCAL_EXPORT_C_INCLUDE_DIRS := \
@@ -55,6 +93,7 @@ include $(BUILD_STATIC_LIBRARY)
 # Shared library for the device
 include $(CLEAR_VARS)
 LOCAL_MODULE := libdrm
+LOCAL_VENDOR_MODULE := true
 
 LOCAL_SRC_FILES := $(LIBDRM_FILES)
 LOCAL_EXPORT_C_INCLUDE_DIRS := \
index 1f028d0..fc7892e 100644 (file)
@@ -5,7 +5,7 @@ include $(CLEAR_VARS)
 include $(LOCAL_PATH)/Makefile.sources
 
 LOCAL_MODULE := libdrm_amdgpu
-
+LOCAL_VENDOR_MODULE := true
 LOCAL_SHARED_LIBRARIES := libdrm
 
 LOCAL_SRC_FILES := $(LIBDRM_AMDGPU_FILES)
index 390f9a9..1143eac 100644 (file)
@@ -5,6 +5,7 @@ include $(CLEAR_VARS)
 include $(LOCAL_PATH)/Makefile.sources
 
 LOCAL_MODULE := libdrm_etnaviv
+LOCAL_VENDOR_MODULE := true
 
 LOCAL_SHARED_LIBRARIES := libdrm
 
index 2b582ae..c128914 100644 (file)
@@ -5,7 +5,7 @@ include $(CLEAR_VARS)
 include $(LOCAL_PATH)/Makefile.sources
 
 LOCAL_MODULE := libdrm_freedreno
-
+LOCAL_VENDOR_MODULE := true
 LOCAL_SHARED_LIBRARIES := libdrm
 
 LOCAL_SRC_FILES := $(LIBDRM_FREEDRENO_FILES)
index f45312d..dda3707 100644 (file)
@@ -28,6 +28,7 @@ include $(CLEAR_VARS)
 include $(LOCAL_PATH)/Makefile.sources
 
 LOCAL_MODULE := libdrm_intel
+LOCAL_VENDOR_MODULE := true
 
 LOCAL_SRC_FILES := $(LIBDRM_INTEL_FILES)
 
index a8b9489..c38660d 100644 (file)
@@ -45,6 +45,7 @@ LOCAL_SRC_FILES += $(LIBKMS_RADEON_FILES)
 endif
 
 LOCAL_MODULE := libkms
+LOCAL_VENDOR_MODULE := true
 LOCAL_SHARED_LIBRARIES := libdrm
 
 include $(LIBDRM_COMMON_MK)
index b430af4..27433d8 100644 (file)
@@ -5,6 +5,7 @@ include $(CLEAR_VARS)
 include $(LOCAL_PATH)/Makefile.sources
 
 LOCAL_MODULE := libdrm_nouveau
+LOCAL_VENDOR_MODULE := true
 
 LOCAL_SHARED_LIBRARIES := libdrm
 
index 71040da..7bc9cee 100644 (file)
@@ -5,6 +5,7 @@ include $(CLEAR_VARS)
 include $(LOCAL_PATH)/Makefile.sources
 
 LOCAL_MODULE := libdrm_radeon
+LOCAL_VENDOR_MODULE := true
 
 LOCAL_SHARED_LIBRARIES := libdrm
 
index c1a71fd..a2a52df 100644 (file)
@@ -7,7 +7,7 @@ LOCAL_SRC_FILES := $(MODETEST_FILES)
 
 LOCAL_MODULE := modetest
 
-LOCAL_SHARED_LIBRARIES := libdrm
+LOCAL_SHARED_LIBRARIES := libdrm_platform
 LOCAL_STATIC_LIBRARIES := libdrm_util
 
 include $(LIBDRM_COMMON_MK)
index 91a590f..26aea51 100644 (file)
@@ -7,7 +7,7 @@ LOCAL_SRC_FILES := $(PROPTEST_FILES)
 
 LOCAL_MODULE := proptest
 
-LOCAL_SHARED_LIBRARIES := libdrm
+LOCAL_SHARED_LIBRARIES := libdrm_platform
 LOCAL_STATIC_LIBRARIES := libdrm_util
 
 include $(LIBDRM_COMMON_MK)
index 12eccb4..6c5c924 100644 (file)
@@ -28,7 +28,7 @@ include $(LOCAL_PATH)/Makefile.sources
 
 LOCAL_MODULE := libdrm_util
 
-LOCAL_SHARED_LIBRARIES := libdrm
+LOCAL_SHARED_LIBRARIES := libdrm_platform
 
 LOCAL_SRC_FILES := $(UTIL_FILES)