Paul, thanks for getting some builds going.

On 8 May 2011 18:40, Paul Sokolovsky <paul.sokolov...@linaro.org> wrote:
> (sorry, first time sent from wrong email, don't know if that'll get
> thru)
>
> Hello Android team,
>
> I was working on making Android toolchain buildable using Android build
> service, and finally I was able to do successful and reproducible
> builds - of AOSP pristine bare-matal toolchain so far
> (https://android-build.linaro.org/builds/~pfalcon/aosp-toolchain/).
> There were few issues which needed to be investigated and resolved,
> and which I would like to discuss here:
>
> 1. make -jN breakage
>
> Android build service builds on EC2 XLARGE instances with 16
> concurrent make jobs (-j16). This invariably leads to build failure
> sooner or later (exact location depends on other options and maybe
> non-deterministic at all). The failure is "error: Link tests are not
> allowed after GCC_NO_EXECUTABLES." which somehow sends issue-hunting
> the wrong trail (like sysroot issues, etc.) but after some experiments
> I reduced this to exactly -j >1 being used, with -j1 it went past usual
> failure points reliably.
>
> 2. Lack of DESTDIR support
>
> There's standard GNU autotools variable "DESTDIR" to install package
> into other directory besides $prefix. It is supported for gcc,
> binutils, etc., but not for Android's own toolchain/build project. The
> usual local-use trick is just to pass another prefix just for make
> install target, and that's what toolchain/build's README suggests. My
> only concern is "cleanroomness" of the results - suppose make install
> suddenly wants to rebuild something (libtool used to have such habit),
> then new prefix may be embedded into some executable, and then hit
> beyond the usual usage pattern (like, with non-English locale). Still,
> this is more a theoretical risk, which I as a build engineer should
> note, but not something to much worry about.
>
> 3. libstdc++v3 build
>
> toolchain/build's README says that the default is not to build
> libstdc++v3 and it must be enabled explicitly. But in the current
> master I found that not to be the case - it gets enabled by default.
> And its build requires sysroot, so I had to disable it explicitly
> for bare-metal build.

Sounds like out-of-date documentation.

> 4. sysroot source
>
> So, to build full-fledged toolchain, we need to supply sysroot.
> What should be source of it? Android build service script I started
> from extracts it from an official Android SDK release. Is that good
> enough source? I guess we'd miss some non-released optimizations that
> way (byteswap ARMv6 optimizations come to mind). Otherwise, what should
> be used instead? Obvious choice is to build Android target images, then
> build toolchain on that tree. But that would be too long and expensive.
> Should we prepare and tar sysroot and provide it as extra build
> artifact for Android target builds? Also, can there be any
> machine-specificity, or it's for sure one generic sysroot for specific
> Android version (with arch-specific things handled via #ifdef's)?
>
>
> Of these 4, first 3 are upstream-related bugreports with known
> workarounds. I wanted to write them down, but I'm not sure if more can
> be done about them - if you think it would be useful to submit them as
> bugs at lp/linaro-android (or directly to upstream?), I can do it.
> Sysroot issue of course requires input/discussion - in mail or at some
> LDS session.

I think bug reports would be useful, would you file them? We'll chat at LDS.

>
>
> Thanks,
>  Paul                          mailto:pmis...@gmail.com
>
>
> --
> Best Regards,
> Paul
>

_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to