SlideShare a Scribd company logo
Presented by
Date
Event
AOSP Toolchain Evolution
and Experimental
Languages in AOSP
Bernhard “Bero” Rosenkränzer
BKK16-407 March 10, 2016
Linaro Connect BKK16
Big toolchain changes ahead...
AOSP is moving towards clang based
toolchains rather than gcc.
Current AOSP master already builds
completely with clang 3.8 by default.
Kernels and some HAL layers for old
devices remain on gcc for now.
What is Linaro doing to help?
● Initial “make it build with clang”
patches came from Linaro
● Fix up assembly code so we don’t
have to use -no-integrated-as
with clang (for ARMv7 and ARMv8)
● Test newer clang builds
● Make sure building with newer gcc
versions keeps working as well
Other related changes in AOSP
● Build system changes: OpenJDK 8
required, javac being replaced with
jack, ninja replacing GNU make
● Currently, kati converts Makefiles
to Ninja files
● Future: Android.mk files being
replaced with JSON-like files for a
new tool, Soong
Soong
● Soong is a Makefile generator
replacement written in go - it
handles simple stuff by itself,
complex functionality can be added
by writing a go module…
Go
● Yet, there are no signs of any
official support for Android
applications written in Go
● That may be worth fixing,
especially if we want to…
Make AOSP self-hosting
● Step 1: Get toolchain and build
tools to work on aarch64 Linux (in
progress)
● Step 2: Get it to run on AOSP -
adding missing command line tools
as we go
Let’s make
devices like
this one as
useful as
they could be…
Other languages that could be
useful
SWIFT - recently Open Sourced,
already running on ARM Linux. Based
on clang, which already has Android
support and ARM support. Android
port in progress...
Useful for people porting code from
that other mobile OS?
Other languages that could be
useful - Swift
Are we trading away freedom?
● Improvements and Extensions to
the language is in the open
● Projects roles open to anyone
(even commit and lead!)
Other languages that could be
useful - SWIFT
Challenges:
● Need to port/implement the UI
libraries to be really useful for
cross-platform mobile applications.
Other languages that could be
useful
Objective-C/Objective-C++
The next thing from that other mobile
OS that comes to mind…tho it’s use
is falling...
And it already works.
Other languages that could be
useful
Rust (http://rust-lang.org/)
● In many ways similar to swift
● Based on clang - AOSP support is
easy to get.
Other languages that could be
useful
C/C++
● Already possible - but there’s room
for improvements.
○ Libraries doing the JNI wrapping for
talking to AOSP components written in
Java would be useful
○ Qt for Android (esp. Qt Creator) may
need some changes to work well after
Questions? Comments?
Talk to us... Or email:
bero@linaro.org

More Related Content

PDF
BKK16-310 The HiKey AOSP collaborative experience
PDF
BKK16-307 LHG OE Initiative
PDF
BKK16-507 AOSP builds of Linaro with CI v2
PDF
BKK16-411 Devicetree Specification
PDF
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
PDF
BKK16-315 Graphics Stack Update
PDF
BKK16-215 kernelci.org: beyond boot testing
PDF
BKK16-210 Migrating to the new dispatcher
BKK16-310 The HiKey AOSP collaborative experience
BKK16-307 LHG OE Initiative
BKK16-507 AOSP builds of Linaro with CI v2
BKK16-411 Devicetree Specification
BKK16-100K1 George Grey, Linaro CEO Opening Keynote
BKK16-315 Graphics Stack Update
BKK16-215 kernelci.org: beyond boot testing
BKK16-210 Migrating to the new dispatcher

What's hot (20)

PDF
BKK16-207 VLANd in LAVA
PDF
LAS16-507: LXC support in LAVA
PDF
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
PDF
BKK16-102 Creating new workload for Workload Automation & using WA with LAVA
PDF
kpatch.kgraft
PPTX
Kubernetes CRI containerd integration by Lantao Liu (Google)
PDF
SFO15-203: Linaro CI - git driven workflow & Jenkins advanced usage
PPTX
Comparison of existing cni plugins for kubernetes
PDF
BKK16-209 Chromium with V4L2 playback - is it ready today?
PDF
JerryScript on RIOT
PDF
OpenDataPlane Testing in Travis
ODP
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
PDF
Clang: More than just a C/C++ Compiler
PPTX
Notary - container signing
PDF
Introduction to Linux-wpan and Potential Collaboration
PDF
BKK16-301A Expanding the Enterprise Landscape in Centos
PDF
Introduction to IoT.JS
PDF
Delivering a bleeding edge community-led openstack distribution: RDO
PDF
Kernel Recipes 2016 - Control Group Status Update
PDF
BKK16-306 ART ii
BKK16-207 VLANd in LAVA
LAS16-507: LXC support in LAVA
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
BKK16-102 Creating new workload for Workload Automation & using WA with LAVA
kpatch.kgraft
Kubernetes CRI containerd integration by Lantao Liu (Google)
SFO15-203: Linaro CI - git driven workflow & Jenkins advanced usage
Comparison of existing cni plugins for kubernetes
BKK16-209 Chromium with V4L2 playback - is it ready today?
JerryScript on RIOT
OpenDataPlane Testing in Travis
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Clang: More than just a C/C++ Compiler
Notary - container signing
Introduction to Linux-wpan and Potential Collaboration
BKK16-301A Expanding the Enterprise Landscape in Centos
Introduction to IoT.JS
Delivering a bleeding edge community-led openstack distribution: RDO
Kernel Recipes 2016 - Control Group Status Update
BKK16-306 ART ii
Ad

Similar to BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP (20)

PDF
AddisDev Meetup ii: Golang and Flow-based Programming
PPT
Linux and Localization Tutorial Paras pradhan Senior Linux ...
ODP
Some wonderful Linux softwares for daily use
PPTX
Evolution or stagnation programming languages
PPTX
A Tour of Open Source on the Mainframe
PPTX
Autotools pratical training
PDF
Opensource Software usability
PDF
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
PDF
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
PDF
The Ring programming language version 1.9 book - Part 6 of 210
PDF
Lets Go - An introduction to Google's Go Programming Language
PDF
Let's Go: Introduction to Google's Go Programming Language
PPTX
用Flutter 開發Linux Desktop Application
PDF
The Ring programming language version 1.5.2 book - Part 5 of 181
PDF
The Ring programming language version 1.5.1 book - Part 4 of 180
PDF
The Ring programming language version 1.5.3 book - Part 5 of 184
PDF
Building Command Line Tools with Golang
PDF
The Ring programming language version 1.7 book - Part 6 of 196
PPTX
Top Programming Languages of 2020
PDF
The Ring programming language version 1.5.4 book - Part 5 of 185
AddisDev Meetup ii: Golang and Flow-based Programming
Linux and Localization Tutorial Paras pradhan Senior Linux ...
Some wonderful Linux softwares for daily use
Evolution or stagnation programming languages
A Tour of Open Source on the Mainframe
Autotools pratical training
Opensource Software usability
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
Daniele Esposti - Evolution or stagnation programming languages - Codemotion ...
The Ring programming language version 1.9 book - Part 6 of 210
Lets Go - An introduction to Google's Go Programming Language
Let's Go: Introduction to Google's Go Programming Language
用Flutter 開發Linux Desktop Application
The Ring programming language version 1.5.2 book - Part 5 of 181
The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.3 book - Part 5 of 184
Building Command Line Tools with Golang
The Ring programming language version 1.7 book - Part 6 of 196
Top Programming Languages of 2020
The Ring programming language version 1.5.4 book - Part 5 of 185
Ad

More from Linaro (20)

PDF
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
PDF
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
PDF
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
PDF
Bud17 113: distribution ci using qemu and open qa
PDF
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
PDF
HPC network stack on ARM - Linaro HPC Workshop 2018
PDF
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
PDF
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
PDF
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
PDF
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
PDF
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
PDF
HKG18-100K1 - George Grey: Opening Keynote
PDF
HKG18-318 - OpenAMP Workshop
PDF
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
PDF
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
PDF
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
PDF
HKG18-TR08 - Upstreaming SVE in QEMU
PDF
HKG18-113- Secure Data Path work with i.MX8M
PPTX
HKG18-120 - Devicetree Schema Documentation and Validation
PPTX
HKG18-223 - Trusted FirmwareM: Trusted boot
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Bud17 113: distribution ci using qemu and open qa
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-100K1 - George Grey: Opening Keynote
HKG18-318 - OpenAMP Workshop
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-113- Secure Data Path work with i.MX8M
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-223 - Trusted FirmwareM: Trusted boot

Recently uploaded (20)

PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Approach and Philosophy of On baking technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
KodekX | Application Modernization Development
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Spectroscopy.pptx food analysis technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPT
Teaching material agriculture food technology
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
Unlocking AI with Model Context Protocol (MCP)
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
MYSQL Presentation for SQL database connectivity
Approach and Philosophy of On baking technology
Dropbox Q2 2025 Financial Results & Investor Presentation
Per capita expenditure prediction using model stacking based on satellite ima...
sap open course for s4hana steps from ECC to s4
Agricultural_Statistics_at_a_Glance_2022_0.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
KodekX | Application Modernization Development
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Spectroscopy.pptx food analysis technology
Chapter 3 Spatial Domain Image Processing.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Teaching material agriculture food technology
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
20250228 LYD VKU AI Blended-Learning.pptx

BKK16-407 AOSP Toolchain Evolution and experimental languages on AOSP

  • 1. Presented by Date Event AOSP Toolchain Evolution and Experimental Languages in AOSP Bernhard “Bero” Rosenkränzer BKK16-407 March 10, 2016 Linaro Connect BKK16
  • 2. Big toolchain changes ahead... AOSP is moving towards clang based toolchains rather than gcc. Current AOSP master already builds completely with clang 3.8 by default. Kernels and some HAL layers for old devices remain on gcc for now.
  • 3. What is Linaro doing to help? ● Initial “make it build with clang” patches came from Linaro ● Fix up assembly code so we don’t have to use -no-integrated-as with clang (for ARMv7 and ARMv8) ● Test newer clang builds ● Make sure building with newer gcc versions keeps working as well
  • 4. Other related changes in AOSP ● Build system changes: OpenJDK 8 required, javac being replaced with jack, ninja replacing GNU make ● Currently, kati converts Makefiles to Ninja files ● Future: Android.mk files being replaced with JSON-like files for a new tool, Soong
  • 5. Soong ● Soong is a Makefile generator replacement written in go - it handles simple stuff by itself, complex functionality can be added by writing a go module…
  • 6. Go ● Yet, there are no signs of any official support for Android applications written in Go ● That may be worth fixing, especially if we want to…
  • 7. Make AOSP self-hosting ● Step 1: Get toolchain and build tools to work on aarch64 Linux (in progress) ● Step 2: Get it to run on AOSP - adding missing command line tools as we go
  • 8. Let’s make devices like this one as useful as they could be…
  • 9. Other languages that could be useful SWIFT - recently Open Sourced, already running on ARM Linux. Based on clang, which already has Android support and ARM support. Android port in progress... Useful for people porting code from that other mobile OS?
  • 10. Other languages that could be useful - Swift Are we trading away freedom? ● Improvements and Extensions to the language is in the open ● Projects roles open to anyone (even commit and lead!)
  • 11. Other languages that could be useful - SWIFT Challenges: ● Need to port/implement the UI libraries to be really useful for cross-platform mobile applications.
  • 12. Other languages that could be useful Objective-C/Objective-C++ The next thing from that other mobile OS that comes to mind…tho it’s use is falling... And it already works.
  • 13. Other languages that could be useful Rust (http://rust-lang.org/) ● In many ways similar to swift ● Based on clang - AOSP support is easy to get.
  • 14. Other languages that could be useful C/C++ ● Already possible - but there’s room for improvements. ○ Libraries doing the JNI wrapping for talking to AOSP components written in Java would be useful ○ Qt for Android (esp. Qt Creator) may need some changes to work well after
  • 15. Questions? Comments? Talk to us... Or email: bero@linaro.org