[Mesa-dev] [PATCH] Android: fix r300g only build

Mauro Rossi issor.oruam at gmail.com
Tue Apr 25 22:49:04 UTC 2017


2017-04-25 22:12 GMT+02:00 Rob Herring <robh at kernel.org>:
> On Tue, Apr 25, 2017 at 1:50 PM, Mauro Rossi <issor.oruam at gmail.com> wrote:
>> 2017-04-25 18:21 GMT+02:00 Emil Velikov <emil.l.velikov at gmail.com>:
>>>
>>> On 24 April 2017 at 22:49, Rob Herring <robh at kernel.org> wrote:
>>> > On Mon, Apr 24, 2017 at 11:59 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>>> >> Hi Rob,
>>> >>
>>> >> On 24 April 2017 at 17:46, Rob Herring <robh at kernel.org> wrote:
>>> >>> If r300g is the only radeon driver built, the Android build fails to
>>> >>> build:
>>> >>>
>>> >>> ninja: error:
>>> >>> 'out/target/product/linaro_x86_64/obj/STATIC_LIBRARIES/libmesa_pipe_radeon_intermediates/export_includes',
>>> >>> needed by
>>> >>> 'out/target/product/linaro_x86_64/obj/SHARED_LIBRARIES/gallium_dri_intermediates/import_includes',
>>> >>> missing and no known rule to make it
>>> >>>
>>> >>> This is because the path to build libmesa_pipe_radeon was only getting
>>> >>> added for r600g and radeonsi, but the library dependency was added for
>>> >>> all radeon drivers. As libmesa_pipe_radeon is not needed for r300g, drop
>>> >>> the library dependency.
>>> >>>
>>> >> I think we want to move libmesa_amdgpu_addrlib in a similar way. The
>>> >> lib is used/required by libmesa_winsys_amdgpu which is a r600/radeonsi
>>> >> only.
>>> >> Can you please build test that and send a patch (or even squash here
>>> >> if you prefer)?
>>> >
>>> > You are right. Looking at this a bit more, I think we want to push all
>>> > the "extra" libraries down into the driver makefiles. With that we can
>>> > also properly export and import include directories.
>>> >
>>> >> The patch as-is
>>> >> Acked-by: Emil Velikov <emil.velikov at collabora.com>
>>> >
>>> > This one fixes the build, so can you apply it and I'll send a
>>> > follow-up series with further clean-ups. They'll need Mauro's help to
>>> > test because I don't have radeonsi building.
>>> >
>>> Pushed this one, thanks.
>>>
>>> Fwiw one doesn't need anything r600 or radeonsi related. Just move
>>> libmesa_amdgpu_addrlib out of r300 (as we do here for
>>> libmesa_pipe_radeon) and see that things link fine.
>
> The problem is not needing h/w, but radeonsi doesn't build with
> mainline AOSP. There's additional LLVM bits needed.
>
>>> Either way mostly thinking out loud.
>>>
>>> -Emil
>>
>>
>> Hi Rob, Emil,
>>
>> I tested building r300g, r600g, radeonsi together and the build is broken,
>>
>> due to multiple symbols defintion, which happens due to the use of
>>
>> LOCAL_WHOLE_STATIC_LIBRARIES := \
>>     $(gallium_DRIVERS) \
>
> $(sort $(gallium_DRIVERS)) will fix this as sort removes duplicates. I
> hit this in the follow-up I'm working on. Will post it soon.

Great!

$(sort $(gallium_DRIVERS)) indeed works
as in whole static dependencies the order does not matter.

libmesa_amdgpu_addrlib is currently not a problem as it is
unconditionally built,
but which are the correct dependencies? radeonsi and r600g?

What about keeping void lines between ifneq..endif in the whole list of drivers?
Mauro


More information about the mesa-dev mailing list