[v2,1/3] arm-toolchain: Fetch prebuilt Android Clang, version r416183b

Message ID 20220118170350.23361-1-anders.dellien@arm.com
State New
Headers show
Series [v2,1/3] arm-toolchain: Fetch prebuilt Android Clang, version r416183b | expand

Commit Message

Anders Dellien Jan. 18, 2022, 5:03 p.m. UTC
From: Usama Arif <usama.arif@arm.com>

This Clang version is present in Android master
(as of October 8, 2021)

Signed-off-by: Usama Arif <usama.arif@arm.com>
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Change-Id: I957742ee943ef68119fd7c7e2bd8ee62b717b31c
---
 ci/toolchains.yml                             |  1 +
 .../androidclang_r416183b.bb                  | 52 +++++++++++++++++++
 2 files changed, 53 insertions(+)
 create mode 100644 meta-arm-toolchain/recipes-devtools/external-arm-toolchain/androidclang_r416183b.bb

Comments

Jon Mason Jan. 18, 2022, 7:39 p.m. UTC | #1
On Tue, 18 Jan 2022 17:03:48 +0000, Anders Dellien wrote:
> This Clang version is present in Android master
> (as of October 8, 2021)

Applied, thanks!

[1/3] arm-toolchain: Fetch prebuilt Android Clang, version r416183b
      commit: c4fb4f53cb3fcf87d08e93ae30f4a6734bd16c7b
[2/3] arm-toolchain: Support linux-arm64-ack build with Android Clang
      commit: db56f59865383eb91273570645b7063bbf391716
[3/3] arm: update Android common kernel and config
      commit: daa8388dadb4ebc24e3884ceb596cdb9f166ea25

Best regards,

Patch

diff --git a/ci/toolchains.yml b/ci/toolchains.yml
index d99b1314..d2dc2961 100644
--- a/ci/toolchains.yml
+++ b/ci/toolchains.yml
@@ -18,3 +18,4 @@  target:
   - nativesdk-gcc-aarch64-none-elf
   - gcc-arm-none-eabi
   - nativesdk-gcc-arm-none-eabi
+  - nativesdk-androidclang
diff --git a/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/androidclang_r416183b.bb b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/androidclang_r416183b.bb
new file mode 100644
index 00000000..d28d6b1b
--- /dev/null
+++ b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/androidclang_r416183b.bb
@@ -0,0 +1,52 @@ 
+# SPDX-License-Identifier: MIT
+#
+# Copyright (c) 2021 Arm Limited
+#
+
+SUMMARY = "Android Clang compiler"
+DESCRIPTION = "Android Clang compiler, version r416183b. This is based on Clang 12.0.5 \
+Intended usage is to build kernel images that match the output of the Android (hermetic) \
+build system"
+
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://MODULE_LICENSE_MIT;md5=d41d8cd98f00b204e9800998ecf8427e"
+
+ANDROID_CLANG_VERSION = "clang-r416183b"
+ANDROID_CLANG_HASH = "bd96dfe349c962681f0e5388af874c771ef96670"
+
+COMPATIBLE_HOST = "x86_64.*-linux"
+
+SRC_URI = "https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/${ANDROID_CLANG_HASH}/${ANDROID_CLANG_VERSION}.tar.gz;subdir=${ANDROID_CLANG_VERSION}"
+
+# We need to set the checksum to "ignore" because the tarball is dynamically generated and has a new checksum every time
+# (the contents are the same, but the time stamp differs)
+BB_STRICT_CHECKSUM = "ignore"
+
+S = "${WORKDIR}/${ANDROID_CLANG_VERSION}"
+
+FILES:${PN} = "${datadir} ${bindir}"
+
+do_install() {
+    # We should really use ${libexecdir} here, but that as some files have invalid RPATH
+    # this results in lots of warning. So using ${datadir} for now
+    install -d ${D}${datadir}/${ANDROID_CLANG_VERSION}/
+
+    cp --no-preserve=ownership -r ${S}/. ${D}${datadir}/${ANDROID_CLANG_VERSION}/
+
+    install -d ${D}${bindir}
+    # Symlink all executables into bindir
+    for f in ${D}${datadir}/${ANDROID_CLANG_VERSION}/bin/*; do
+        ln -rs $f ${D}${bindir}/$(basename $f)
+    done
+}
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+INSANE_SKIP:${PN} = "already-stripped libdir staticdev file-rdeps arch dev-so"
+
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+BBCLASSEXTEND = "native nativesdk"