mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 06:48:06 +02:00
Android: Fix LLVM duplicated symbols linking for N and M
Both statically linking libLLVMCore and dynamically linking libLLVM causes duplicated symbols in gallium_dri.so and it fails to dlopen. We don't really need to link libLLVMCore, but just need generated headers to be built first. Dynamically linking to libLLVM instead is enough to do that. Thanks to Qiang Yu for finding the root cause. With this change, we can align all versions and just have libLLVM as a shared lib dependency. This also requires changes in the M and N versions of LLVM to export the include paths for libLLVM. AOSP master is okay. Fixes:26aee6f4d5("Android: rework LLVM build support") Reported-by: Mauro Rossi <issor.oruam@gmail.com> Cc: 17.2 <mesa-stable@lists.freedesktop.org> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Qiang Yu <Qiang.Yu@amd.com> Signed-off-by: Rob Herring <robh@kernel.org> (cherry picked from commit4734bfc02a)
This commit is contained in:
parent
1f8cb4c243
commit
9ba7693a9a
4 changed files with 7 additions and 13 deletions
12
Android.mk
12
Android.mk
|
|
@ -92,16 +92,12 @@ define mesa-build-with-llvm
|
|||
$(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5), \
|
||||
$(warning Unsupported LLVM version in Android $(MESA_ANDROID_MAJOR_VERSION)),) \
|
||||
$(if $(filter 6,$(MESA_ANDROID_MAJOR_VERSION)), \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_PATCH=0) \
|
||||
$(eval LOCAL_STATIC_LIBRARIES += libLLVMCore) \
|
||||
$(eval LOCAL_C_INCLUDES += external/llvm/include external/llvm/device/include),) \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_PATCH=0)) \
|
||||
$(if $(filter 7,$(MESA_ANDROID_MAJOR_VERSION)), \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_PATCH=0) \
|
||||
$(eval LOCAL_STATIC_LIBRARIES += libLLVMCore) \
|
||||
$(eval LOCAL_C_INCLUDES += external/llvm/include external/llvm/device/include),) \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_PATCH=0)) \
|
||||
$(if $(filter O,$(MESA_ANDROID_MAJOR_VERSION)), \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_PATCH=0) \
|
||||
$(eval LOCAL_HEADER_LIBRARIES += llvm-headers),)
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_PATCH=0)) \
|
||||
$(eval LOCAL_SHARED_LIBRARIES += libLLVM)
|
||||
endef
|
||||
|
||||
# add subdirectories
|
||||
|
|
|
|||
|
|
@ -54,9 +54,7 @@ LOCAL_C_INCLUDES := \
|
|||
$(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_nir,,)/nir \
|
||||
$(MESA_TOP)/src/gallium/include \
|
||||
$(MESA_TOP)/src/gallium/auxiliary \
|
||||
$(intermediates)/common \
|
||||
external/llvm/include \
|
||||
external/llvm/device/include
|
||||
$(intermediates)/common
|
||||
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := \
|
||||
$(LOCAL_PATH)/common
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ include $(CLEAR_VARS)
|
|||
|
||||
LOCAL_SRC_FILES := $(C_SOURCES)
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := libdrm_radeon libLLVM
|
||||
LOCAL_SHARED_LIBRARIES := libdrm_radeon
|
||||
LOCAL_MODULE := libmesa_pipe_radeon
|
||||
|
||||
ifeq ($(MESA_ENABLE_LLVM),true)
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ LOCAL_C_INCLUDES := \
|
|||
|
||||
LOCAL_STATIC_LIBRARIES := libmesa_amd_common
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := libdrm_radeon libLLVM
|
||||
LOCAL_SHARED_LIBRARIES := libdrm_radeon
|
||||
LOCAL_MODULE := libmesa_pipe_radeonsi
|
||||
|
||||
$(call mesa-build-with-llvm)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue