On 25 August 2016 at 19:27, Stephen Hines <
srh...@google.com> wrote:
> Agreed, but this is the part that requires more work upstream, which we
> haven't prioritized right now. If this is something that Linaro can fix,
> that would be great.
Last time, we "agreed" Google would look into that and we'd look for
other issues. You sent me the build instructions from your progress.
If this is the last big thing, and you can't prioritise it right now,
then we should definitely have a look.
> It did sound like you wanted to qualify upstream builds (or build numbers)
> for use in compiling aosp/master. That is the part that I want to make sure
> comes with giant red warning flags right now. We (Google Android) aren't
> ready for that just yet, but we will get there.
Absolutely.
We (Linaro) deal upstream, so everything is "as is", no promises. I
definitely don't expect Google to promise anything, nor I want to
encourage people to report bugs in upstream LLVM to Google.
Actually, I'd be very happy if people started reporting the bugs
upstream (LLVM bugzilla), but for that, as you said, it needs to not
only be an upstream version, but built using upstream CMake files,
like everyone else.
> We aren't doing that, but we also aren't facilitating the use of other
> toolchains either. For instance, we are removing GCC-specific workarounds in
> Android-owned code, because we are turning down all of our GCC builds now
> that everything can be built with clang (modulo Valgrind, which is being
> fixed).
Right, I don't expect Google to prioritise everything at the same
time, and we agreed earlier that this is a multiple step process. By
no means I'm trying to force you to prioritise anything, I'm just
trying to figure out what you are not prioritising, so Linaro can work
on it. No promises, no support needed.
> As far as "can only be compiled", I think that this is an extremely
> harsh phrasing.
Apologies, I didn't intend it that way. I was merely expressing my
long term goals for any open source projects.
My point is that AOSP should be like *any* other open source product,
including the Linux kernel, all Linux distributions, FreeBSD kernel
and userland, etc. in that it should "just build" with an upstream
compiler with minimal modifications.
This is not about Android, nor about Google's priorities or support
contracts. This is just about AOSP and LLVM.
I constantly receive bug reports about Android, OpenEmbedded, FreeBSD
and Linux distributions that are hard to demonstrate upstream. Of all
groups, Android is the hardest to reproduce because of how LLVM is
built. So, this is not just a personal opinion or crusade, this is
about doing my job correctly.
With all the others, I can always get to the bottom of things. With
Android, most of the time, I reach dead ends, because it is impossible
to reproduce a problem, that could very well be in LLVM, but doesn't
happen upstream at all.
I know you are doing your best, and I also appreciate how priorities
change, and that's precisely why I'm asking for your input, so we can
help you achieve that goal, at least for AOSP.
> On the contrary, I actually think that a vanilla toolchain has been able to
> compile Android for a long time.
I think we use different meanings of the word "vanilla". Can AOSP be
entirely compiled (except the kernel) by the binaries from
http://llvm.org/releases/?
> I just hesitate to recommend that path, as
> we haven't had the time to validate that configuration. If I say it is
> officially supported, I will start seeing a flood of bugs whenever something
> breaks. I would rather be able to set up infrastructure to catch these cases
> before officially declaring success.
This is probably your misunderstanding. I have said before, but I want
to make it clear again.
Linaro will not ask for Google's support in any way, shape or form.
We're here to help. If you can tell us what's missing from the vanilla
LLVM build, even if that's validation, then we can maybe work on it.
If I don't know what's missing, I can't help you.
You say AOSP builds with vanilla LLVM, but I know RT can't cross
build, and we're missing some additions to RT (128-bit rounding, for
instance), so that's not working for ARM and AArch64 upstream.
You say LLVM's libunwind can't completely replace the old one, but I
don't know what's missing. Unless bugs are filled, there's no way for
us (LLVM developers) to know what to do to complete AOSP support.
I'm guessing from your response that Clang+LLVM+libcxx is ok, so Min
can start there.
> I mean that Android has an internal aosp/master buildbot that builds
> everything using clang-tidy (in addition to clang). It only adds (a ton of)
> warnings to the build, so there are engineers trying to fix a good chunk of
> those issues too (in addition to other warning cleanup work that has been
> ongoing for aosp/master). We most certainly aren't at 0 warnings yet for
> either regular builds or clang-tidy, but that is eventually going to be a
> goal for Android.
Ah, excellent! Ok, good to know these tools are helping. :)
Still, for Min's work, it's irrelevant. I use the term in the loose
sense, as in "he shouldn't worry about it", not as in "no one cares
about it".
Hope that makes sense.
cheers,
--renato