[Mesa-dev] [PATCH 11/12] Android: Add LLVM support for Android O

Emil Velikov emil.l.velikov at gmail.com
Mon May 1 20:54:45 UTC 2017


On 1 May 2017 at 21:40, Rob Herring <robh at kernel.org> wrote:
> On Mon, May 1, 2017 at 3:27 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> On 27 April 2017 at 20:43, Rob Herring <robh at kernel.org> wrote:
>>> Android O moves to LLVM 3.9 and also has some differences in header
>>> dependencies as LLVM has moved to blueprint files. It seems libLLVMCore
>>> was only needed for header dependencies.
>>>
>>> Signed-off-by: Rob Herring <robh at kernel.org>
>>> ---
>>>  Android.common.mk                |  5 +++--
>>>  src/amd/Android.common.mk        |  7 ++++++-
>>>  src/gallium/auxiliary/Android.mk | 12 ++++++++----
>>>  3 files changed, 17 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/Android.common.mk b/Android.common.mk
>>> index a7b78bb910fc..8669492bec11 100644
>>> --- a/Android.common.mk
>>> +++ b/Android.common.mk
>>> @@ -86,9 +86,10 @@ endif
>>>  ifeq ($(MESA_ENABLE_LLVM),true)
>>>    ifeq ($(MESA_ANDROID_MAJOR_VERSION),6)
>>>      LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_PATCH=0
>>> -  endif
>>> -  ifeq ($(MESA_ANDROID_MAJOR_VERSION),7)
>>> +  else ifeq ($(MESA_ANDROID_MAJOR_VERSION),7)
>>>      LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_PATCH=0
>>> +  else
>>> +    LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_PATCH=0
>>>    endif
>> Worth adding an error for "too new" Android versions? Can be folded as
>> part of my earlier suggestion to error out for old ones.
>
> Useful if we stop paying attention to Android which wasn't my plan.
>
> Now with the libelf include paths dropped, this is really not what
> version of android do we have, but what version of LLVM do we have.
> I've not analyzed all the uses of HAVE_LLVM, but hopefully they are
> all written to check for minimum versions and new versions of LLVM
> will work even if we set 3.9 here. I'd hope the Linux side is not
> *that* fragile.
>
Android aims for the latest and greatest (yes, please) then eventually
nuking the above will be great.
On the Linux side we're a bit more restricted, so things are less fun.

I doubt we check the required LLVM version within the code everywhere.

Even then, we tend to have the checks at a higher level since there's
greater flexibility in produced binaries.
Building half of the driver only to realise you have old LLVM version
is never fun, so we have the configure checks.

Thanks
Emil


More information about the mesa-dev mailing list