[Mesa-dev] [android-x86-devel] [PATCH] android: fix gallium_dri.so can't be loaded by drm_gralloc

Emil Velikov emil.l.velikov at gmail.com
Fri Aug 18 16:03:50 UTC 2017


Hi Qiang Yu,

On 18 August 2017 at 01:30, Qiang Yu <Qiang.Yu at amd.com> wrote:
> The problem is in gallium/winsys/amdgpu/drm/Android.mk
> which will have duplacated symbols when linking
> gallium_dri.so for libLLVMCore and libLLVM.
>
Skimming through the commit message and the change inspires some confusion.

How about something like the following:
"Android:  rework LLVM linking to avoid multiple symbol definitions

Currently we static against libLLVMCore alongside the shared link
against libLLVM.
This leads to duplicate symbols and run/build (please correct me) time.

Fix that by consistently dropping the libLLVMCore + llvm-headers bits
and consistently using a shared libLLVM link.
"

> Signed-off-by: Qiang Yu <Qiang.Yu at amd.com>
> Signed-off-by: Mauro Rossi <issor.oruam at gmail.com>
> Signed-off-by: Rob Herring <robherring2 at gmail.com>
I don't recall seeing patches from Mauro/RobH about this. I think you
meant - Reviewed-by/Acked-by/other?

Fixes: 26aee6f4d5a ("Android: rework LLVM build support")
Fixes: d31a2b4d492 ("Android: Add LLVM support for Android O")

> ---
>  Android.mk                              | 7 ++++---
>  src/amd/Android.common.mk               | 4 +---
>  src/gallium/drivers/radeon/Android.mk   | 2 +-
>  src/gallium/drivers/radeonsi/Android.mk | 2 +-
>  4 files changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/Android.mk b/Android.mk
> index 6571161..5154a56 100644
> --- a/Android.mk
> +++ b/Android.mk
> @@ -93,15 +93,16 @@ define mesa-build-with-llvm
>      $(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_SHARED_LIBRARIES += libLLVM) \
>      $(eval LOCAL_C_INCLUDES += external/llvm/include external/llvm/device/include),) \
>    $(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_SHARED_LIBRARIES += libLLVM) \
>      $(eval LOCAL_C_INCLUDES += external/llvm/include external/llvm/device/include),) \
>    $(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_SHARED_LIBRARIES += libLLVM) \
> +    $(eval LOCAL_C_INCLUDES += external/llvm/include external/llvm/device/include),)

With these two lines being identical across the board, we can have
them only once.
At a later stage one can export the includes from the LLVM module.

Thanks
Emil


More information about the mesa-dev mailing list