From 144140d69ea782402faed0df476efb019b18e03f Mon Sep 17 00:00:00 2001 From: Jens Reidel Date: Thu, 13 Nov 2025 17:46:37 +0100 Subject: [PATCH] linux-google-veyron: Build with LLVM See https://postmarketos.org/edge/2025/11/11/kernels-llvm/ for the background behind this change and how we're handling these MRs. Signed-off-by: Jens Reidel Part-of: --- device/community/linux-google-veyron/APKBUILD | 28 ++++++++----- .../config-google-veyron.armv7 | 41 +++++++------------ 2 files changed, 31 insertions(+), 38 deletions(-) diff --git a/device/community/linux-google-veyron/APKBUILD b/device/community/linux-google-veyron/APKBUILD index 925676e7e..f683570e8 100644 --- a/device/community/linux-google-veyron/APKBUILD +++ b/device/community/linux-google-veyron/APKBUILD @@ -3,7 +3,7 @@ # Contributor: Jenneron pkgname=linux-google-veyron pkgver=6.12.54 -pkgrel=0 +pkgrel=1 pkgdesc="Mainline kernel for Google Veyron devices" arch="armv7" _carch="arm" @@ -15,20 +15,19 @@ options="!strip !check !tracedeps pmb:kconfigcheck-community " makedepends=" - bash bison - devicepkg-dev + clang findutils flex installkernel + lld + llvm openssl-dev perl + postmarketos-installkernel rsync gzip xz - gmp-dev - mpc1-dev - mpfr-dev " _config="config-$_flavor.$arch" case $pkgver in @@ -54,23 +53,30 @@ prepare() { build() { unset LDFLAGS - make ARCH="$_carch" \ + make ARCH="$_carch" LLVM=1 \ KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-$_flavor" } package() { - downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor" + mkdir -p "$pkgdir"/boot - make -j1 modules_install dtbs_install \ + make zinstall modules_install dtbs_install \ ARCH="$_carch" \ - INSTALL_MOD_STRIP=1 \ + LLVM=1 \ + INSTALL_PATH="$pkgdir"/boot/ \ INSTALL_MOD_PATH="$pkgdir" \ + INSTALL_MOD_STRIP=1 \ INSTALL_DTBS_PATH="$pkgdir/boot/dtbs" + + rm -f "$pkgdir"/lib/modules/*/build "$pkgdir"/lib/modules/*/source + + install -D "$builddir"/include/config/kernel.release \ + "$pkgdir"/usr/share/kernel/$_flavor/kernel.release } sha512sums=" c093dce468e1dd90599dc35ffa2b689866e2777f2e7f14f52da4192e49cf986c447c50a81a1a2f161859308e68dc790c620470740c16af9a92fe2c99a7bbd16a linux-6.12.54.tar.xz -c2290f0b2116e6280f7dd92bd58a288b4b7c651ab02756c6df1e8b643d74912708d2137cf1570b9ebd0097475c49c28fe0b40241fff0164b91409f88b4189cad config-google-veyron.armv7 +aec5551e6e2075146a131a96a7c7bfc1dc47d27ba375a79064984b839d826cb6e8d2e9794a2cb34f0b4e640dd27339f991bd60d9386853e641fe7dfc41289b1e config-google-veyron.armv7 4f74aa47f8296c03db33ed808c3f7609a87a6109abff6efb47abfaff14d68f57cb05ad5fbb255dc00541b08c0853b241554defc43513f4eb5a4709de952b0e89 veyron.better_clock_selection_logic_and_dts_rate_list.patch cec81f88da19dc928c54780bf1d39efdf23dee481bc1a3a81cb17f506328103221ef47ee020f5e5b393f20fc20242937698cb733aa376e5d79a75b98c486e513 veyron.dts_allow_dedicating_npll_to_vop.patch f4336cc18991a01a7d532610758c640d633d1f7ac05e42c229da418eeed109c67c721d6ed5eea593d36178fb8b420dcbd2c0759876358081c669919192330cec veyron.dts_do_dedicate_npll_to_vop.patch diff --git a/device/community/linux-google-veyron/config-google-veyron.armv7 b/device/community/linux-google-veyron/config-google-veyron.armv7 index 5b32f8c3c..19df6dc62 100644 --- a/device/community/linux-google-veyron/config-google-veyron.armv7 +++ b/device/community/linux-google-veyron/config-google-veyron.armv7 @@ -2,21 +2,20 @@ # Automatically generated file; DO NOT EDIT. # Linux/arm 6.12.54 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="gcc (Alpine 15.2.0) 15.2.0" -CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=150200 -CONFIG_CLANG_VERSION=0 -CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=24500 -CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=24500 -CONFIG_LLD_VERSION=0 +CONFIG_CC_VERSION_TEXT="Alpine clang version 21.1.2" +CONFIG_GCC_VERSION=0 +CONFIG_CC_IS_CLANG=y +CONFIG_CLANG_VERSION=210102 +CONFIG_AS_IS_LLVM=y +CONFIG_AS_VERSION=210102 +CONFIG_LD_VERSION=0 +CONFIG_LD_IS_LLD=y +CONFIG_LLD_VERSION=210102 CONFIG_RUSTC_VERSION=0 CONFIG_RUSTC_LLVM_VERSION=0 -CONFIG_CC_CAN_LINK=y -CONFIG_CC_CAN_LINK_STATIC=y CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y +CONFIG_TOOLS_SUPPORT_RELR=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y CONFIG_CC_HAS_COUNTED_BY=y @@ -159,11 +158,9 @@ CONFIG_UCLAMP_TASK=y CONFIG_UCLAMP_BUCKETS_COUNT=5 # end of Scheduler features -CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough" CONFIG_GCC10_NO_ARRAY_BOUNDS=y -CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_GCC_NO_STRINGOP_OVERFLOW=y -CONFIG_CC_NO_STRINGOP_OVERFLOW=y CONFIG_SLAB_OBJ_EXT=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y @@ -498,7 +495,6 @@ CONFIG_ARM_THUMBEE=y CONFIG_ARM_VIRT_EXT=y CONFIG_SWP_EMULATE=y CONFIG_CPU_LITTLE_ENDIAN=y -# CONFIG_CPU_BIG_ENDIAN is not set # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND is not set # CONFIG_CPU_BPREDICT_DISABLE is not set @@ -599,8 +595,6 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_PARAVIRT is not set # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set # CONFIG_XEN is not set -CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y -CONFIG_STACKPROTECTOR_PER_TASK=y # end of Kernel Features # @@ -783,6 +777,8 @@ CONFIG_STACKPROTECTOR=y CONFIG_STACKPROTECTOR_STRONG=y CONFIG_LTO_NONE=y CONFIG_ARCH_SUPPORTS_CFI_CLANG=y +# CONFIG_CFI_CLANG is not set +CONFIG_HAVE_CFI_ICALL_NORMALIZE_INTEGERS_CLANG=y CONFIG_HAVE_CONTEXT_TRACKING_USER=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y @@ -825,10 +821,7 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # end of GCOV-based kernel profiling CONFIG_HAVE_GCC_PLUGINS=y -CONFIG_GCC_PLUGINS=y -# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set CONFIG_FUNCTION_ALIGNMENT=0 -CONFIG_CC_HAS_MIN_FUNCTION_ALIGNMENT=y CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y # end of General architecture-dependent options @@ -7998,11 +7991,8 @@ CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y CONFIG_INIT_STACK_NONE=y # CONFIG_INIT_STACK_ALL_PATTERN is not set # CONFIG_INIT_STACK_ALL_ZERO is not set -# CONFIG_GCC_PLUGIN_STACKLEAK is not set # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set -CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y -# CONFIG_ZERO_CALL_USED_REGS is not set # end of Memory initialization # @@ -8012,9 +8002,9 @@ CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y # CONFIG_BUG_ON_DATA_CORRUPTION is not set # end of Hardening of kernel data structures +CONFIG_CC_HAS_RANDSTRUCT=y CONFIG_RANDSTRUCT_NONE=y # CONFIG_RANDSTRUCT_FULL is not set -# CONFIG_RANDSTRUCT_PERFORMANCE is not set # end of Kernel hardening options # end of Security options @@ -8452,9 +8442,7 @@ CONFIG_DEBUG_INFO_NONE=y # CONFIG_DEBUG_INFO_DWARF5 is not set CONFIG_FRAME_WARN=1024 # CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_READABLE_ASM is not set # CONFIG_HEADERS_INSTALL is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_SECTION_MISMATCH_WARN_ONLY=y # CONFIG_VMLINUX_MAP is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set @@ -8475,7 +8463,6 @@ CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN=y # CONFIG_UBSAN is not set -CONFIG_HAVE_KCSAN_COMPILER=y # end of Generic Kernel Debugging Instruments #