Skip to content

[CFP] Android's Dream of a Stable Toolchain #9

@pirama-arumuga-nainar

Description

@pirama-arumuga-nainar

Title

Android's Dream of a Stable Toolchain

Author

Pirama Arumuga Nainar, [email protected], Google
Stephen Hines, [email protected], Google (@stephenhines)

Distribution

AOSP LLVM toolchain is used to build the Android platform, the Android kernel and host tools (LLDB server, OpenJDK, adb etc). It also ships with Android Studio and NDK to build native applications.

Abstract (optional)

Our distribution of LLVM supports Linux, MacOS and Windows and uses tools from LLVM ecosystem (lld, compiler-rt builtins, libc++) whenever possible.

In this talk, we'll briefly discuss the distribution (components, build options etc) first and then focus on some operational challenges we face:

  • first-party feature development
  • continuous, nightly, testing
  • managing reverts and cherry-picks
  • cross-testing for Windows

What's unique about the environment you package LLVM for? (optional)

  • Linux, MacOS and Windows toolchains using primarily tools from the LLVM ecosystem.
  • Cross-runtimes (compiler-rt, libunwind, openmp) for Android-supported architectures.
  • Multitude of users (Android platform, kernel, NDK) with varied adoption and support time frames.

What makes your distribution of LLVM unique? (optional)

We don't track an LLVM release but follow LLVM ToT closely. (This also applies to other toolchain maintainers within Google).

What might others learn from your experience? (optional)

What could be improved in upstream LLVM to make working with it easier as a downstream packager? (optional)


Reminder that this is meant to be a 15 minute lightning talk; enough to pique
interests but follow up should be done after. Slides can always include links
to more info; we will ask that you send a PR to this repo with your slides when
they are ready.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions