CLANG for Android

This page tracks the plan and status of the efforts to enable Android to be built and run using CLANG.

High Level Tasks

  1. Build all of Android for an ARMv7 device using CLANG
  2. Boot to UI, pass existing automated and manual test suites
    1. Patches for compilation and/or bug fixes
    2. Reference Images
  3. Build all of Android for an ARMv8 device using CLANG
  4. Boot to UI, pass existing automated and manual test suites
    1. Patches or compilation and/or bug fixes
    2. Reference Images
  5. Upstream Projects
    1. Forward port patches and successfully build/run using CLANG
    2. Push patches for acceptance to upstream community
  6. Add successful builds to CI loop
  7. Potential reworks based on CLANG changes in M

Timeframe

  • End of December
    • 32 bit L/AOSP is built and runs successfully with all patches pushed upstream
  • End of February
    • 64 bit L/AOSP builds and runs successfully with all patches pushed upstream
  • Until June

Hardware / Toolchain

Hardware for ARMv7 efforts are currently Nexus 7 - 2013 based.

Hardware for ARMv8 efforts will be a Nexus 9 / Juno.

Toolchain will be the CLANG compiler included with the current SDK as well as the 3.6 as it is under development.

Status

List of external packages which have fixes for CLANG for Android and their status

Package

ARMv7

ARMv8

Community

platform/external/aac

(./) patch

platform/external/android-clat

(./) patch

platform/external/chromium

No need to push, Google is the upstream and switching to CLANG

platform/external/chromium_org

(./) patch patch

No need to push, Google is the upstream and switching to CLANG

platforms/external/chromium_org/third_party/WebKit

(./) patch

platform/external/e2fsprogs

(./) patch

(./)

platform/external/iproute2

(./) patch

platform/external/ipsec-tools

(./) patch

platform/external/libunwind

(./) patch

platform/external/skia

(./) patch patch

platform/external/stlport

(./) patch

List of CLANG patches for Android where AOSP is the upstream.

Package

ARMv7

ARMv8

platform/art

(./)

platform/bionic

(./) patch

platform/dalvik

(./)

platform/frameworks/av

(./)

platform/hardware/qcom/display

(./)

platform/hardware/ril

(./)

platform/packages/apps/Gallery2

(./) patch

platform/system/core

(./)

ClangAndroidPort (last modified 2014-11-03 17:23:34)