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

Rob Herring robh at kernel.org
Tue Apr 25 20:12:30 UTC 2017


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.

> ...
>
> prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/x86_64-linux-android/bin/ld:
> error: out/target/product/x86_64/obj_x86/STATIC_LIBRARIES/libmesa_pipe_radeon_intermediates/libmesa_pipe_radeon.a(cayman_msaa.o):
> multiple definition of 'cayman_emit_msaa_config'
> prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/x86_64-linux-android/bin/ld:
> out/target/product/x86_64/obj_x86/STATIC_LIBRARIES/libmesa_pipe_radeon_intermediates/libmesa_pipe_radeon.a(cayman_msaa.o):
> previous definition here
>
> [repeating for all other symbols]
>
> So now we need revert or correct to support radeonsi also, as before
> it was working,
> and have 'r300g U r600g U radeonsi' support is better that having the
> choice between 'r300g' and 'r300g U r600g'.
>
> BTW, Rob have you tested the llvm 3.9.0 branch I provided for radeonsi
> building purposes, does it build with AOSP/O preview?

No, sorry I haven't gotten to that.

Rob


More information about the mesa-dev mailing list