On 25 July 2018 at 20:33, Alistair Strachan <astrac...@google.com> wrote: > On Wed, Jul 25, 2018 at 5:48 AM Emil Velikov <emil.l.veli...@gmail.com> wrote: >> >> On 25 July 2018 at 00:21, John Stultz <john.stu...@linaro.org> wrote: >> > From: Alistair Strachan <astrac...@google.com> >> > >> > This is a forward port of a patch in the AOSP/master tree: >> > https://android.googlesource.com/platform/external/mesa3d/+/d7f894a7d39e66ca5a832c19edaf175400041aff%5E%21/ >> > >> > The libmesa_dri_common target depends on xgettext unconditionally, but >> > this is not a documented dependency of AOSP and is not installed on the >> > Mac builders, so we must not build any part of mesa3d on these >> > platforms. >> > >> > Cc: Rob Herring <rob.herr...@linaro.org> >> > Cc: Alistair Strachan <astrac...@google.com> >> > Cc: Marissa Wall <maris...@google.com> >> > Cc: Sumit Semwal <sumit.sem...@linaro.org> >> > Cc: Emil Velikov <emil.l.veli...@gmail.com> >> > Cc: Rob Clark <robdcl...@gmail.com> >> > Signed-off-by: Alistair Strachan <astrac...@google.com> >> > Signed-off-by: John Stultz <john.stu...@linaro.org> >> > --- >> > Android.mk | 5 ++++- >> > 1 file changed, 4 insertions(+), 1 deletion(-) >> > >> > diff --git a/Android.mk b/Android.mk >> > index 494b4b9..128db4d 100644 >> > --- a/Android.mk >> > +++ b/Android.mk >> > @@ -30,6 +30,8 @@ >> > # module will also be built. DRI modules will be loaded by libGLES_mesa. >> > >> > ifneq ($(BOARD_USE_CUSTOMIZED_MESA), true) >> > +ifneq ($(BOARD_GPU_DRIVERS),) >> > + >> >> Something looks fairly weird here. Commit message talks about Mac and >> xgettext while this here checks for BOARD_GPU_DRIVERS. > > This change is actually papering over another bug in the makefiles: if > BOARD_GPU_DRIVERS is the empty string, bits of mesa (I think the Intel > drivers IIRC) will still be built due to some makefile logic that I > didn't track down yet. This can be reproduced with "mmma > external/mesa3d" for a device that does not specify > BOARD_GPU_DRIVERS). > > As part of 'checkbuild', all reachable modules will be built for a > given lunch target, this means all modules *must build* or the modules > should not be emitted in the first place. If that bug was tracked down > and fixed, we wouldn't need to mask the parsing of the mesa > makefile/directory because BOARD_GPU_DRIVERS being the empty string > would be enough to suppress these driver module definitions. > If BOARD_GPU_DRIVERS is not set, nothing should be build. Actually your Intel hint gave me an idea: We don't have a BOARD_GPU_DRIVERS based guard for the Intel (ANV) Vulkan driver.
Sadly, I won't have any time to look at this. John, others with an Android setup handy - care to do the honours? See how BOARD_GPU_DRIVERS controls what gets built and add similar guards for ANV. >> IIRC, libGLES_mesa must be explicitly pulled in the device >> manifest/project in order to for Mesa be built. The exact same one >> tends to set BOARD_GPU_DRIVERS. > > external/mesa3d is part of the upstream manifest. We are therefore > holding this project to the highest standard: all modules must build > on all targets, or be appropriately suppressed. All modules reachable > with "mmm" must build for every target. > That's pretty high expectation, although not unreasonable. >> Or looking it from another angle - if the Mac builder is missing >> xgettext one could add it, becoming in sync with other builders. >> Quick search shows that it's available in brew (brew install gettext) >> and one can build it locally. > > AFAICT this won't happen. The dependencies for AOSP are documented on > https://source.android.com/setup/build/initializing, and this list > does not include xgettext. It's just that Linux distros tend to > include xgettext in even the most minimal installation. On Mac, such a > list (other than the one documented by that page) does not exist. To > me, this seems like a porting issue that should be resolved > appropriately for AOSP. > Ack. I assumed that xgettext was in the (Linux) list w/o checking. > (IOW: ideally the dependencies on xgettext and python-maco should be > removed so that these tools are not required to build Mesa for > Android. The python-maco dependency has been worked around on the AOSP > fork of mesa by directing the makefiles to a set of pregenerated files > but this change, along with the hack discussed here, is not a > good/sustainable solution.) > Personally, I don't mind removing those deps. although we'd need some alternative way to getting the job done. Something that the Mesa community is happy with. Until then sharing some extra solutions/workarounds: - Check-in sources from the release tarballs which include all the generated sources. Hence above two deps. should not be needed. - Have a script which generates the files each time the repo is sync'd, ala git reset --hard origin/foo; generate bits; git commit -am "checking generated sources" HTH Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev