[Mesa-dev] [PATCH] Android: fix r300g only build
Mauro Rossi
issor.oruam at gmail.com
Tue Apr 25 18:50:25 UTC 2017
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.
> 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) \
...
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?
Thanks
Mauro
PS: Moving libmesa_amdgpu_addrlib would cause the same duplication of symbols.
More information about the mesa-dev
mailing list