Commit Graph

36 Commits

Author SHA1 Message Date
Aaron Kling 585c983a4c kernel: Default to no gcc on kernel 6.x
Current logic defaults to no gcc if kernel major version is greater than
or equal to 5 and kernel minor version is greater than or equal to 10.
Meaning kernel version 6.1 does not qualify because 1 is less than 10.
So additionally check if kernel major version is greater than or equal
to 6 and ignore minor version for that case.

Change-Id: Id72cb9e100c6fed014d696f4a3a88f6cafcd3932
2024-09-07 15:45:39 +02:00
basamaryan eb3e2bbbd4 config: Update clang version to clang-r487747c
* This is the default clang version for Android U release

Change-Id: I6a44012250470eeeb2e0f6993eb4e98308eec390
2024-09-07 15:45:39 +02:00
LuK1337 f05a3b293c kernel: Use lz4 from Google prebuilts
Fixes: "lz4" is not allowed to be used.

Test: breakfast tangorpro && m bootimage
Change-Id: I62cfe131f457117cb3745b91f5e43c085e87b611
2024-09-07 15:45:39 +02:00
Bruno Martins e19a2dacb9 kernel: Use pahole from Google prebuilts
This fixes the following warnings:

  13:04:54 Disallowed PATH tool "pahole" used: []string{"pahole", "--version"}
  13:04:54 See https://android.googlesource.com/platform/build/+/master/Changes.md#PATH_Tools for more information.
  "pahole" is not allowed to be used. See https://android.googlesource.com/platform/build/+/master/Changes.md#PATH_Tools for more information.
  /home/bgcngm/android/lineage/kernel/oneplus/sm8550/scripts/pahole-flags.sh: 12: [: Illegal number:
  /home/bgcngm/android/lineage/kernel/oneplus/sm8550/scripts/pahole-flags.sh: 16: [: Illegal number:
  /home/bgcngm/android/lineage/kernel/oneplus/sm8550/scripts/pahole-flags.sh: 20: [: Illegal number:

Change-Id: Ice2a3753301a7b7782037fd35544e2831b258650
2024-09-07 15:45:39 +02:00
LuK1337 e1b044621a kernel: Don't try to do math on empty kernel version
Fixes the following error message when compiling target w/o kernel src:
expr: syntax error: unexpected argument ‘5’

Test: lunch lineage_sdk_phone_x86_64-eng
Change-Id: Ib3ec41d9dc2b59ddc9ee3c0c8e3813c4defcfc3e
2024-09-07 15:45:38 +02:00
Michael Bestas 166dc20c27 kernel: Restore TARGET_KERNEL_VERSION
This is used in a bunch of QCOM HALs

Change-Id: I5bb76c47ad33e9fb1b81d1d23f78b2dbf390473a
2024-09-07 15:45:38 +02:00
Bruno Martins 7645a8cf8d kernel: Go full LLVM build on 5.10+ kernels
Make the conditions accurately reflect the comment:
"5.10+ can fully compile without GCC by default".

Change-Id: Ia9070871c23a710ba5b461ad522db241183e34d1
2024-09-07 15:45:38 +02:00
Michael Bestas 2f387ee962 kernel: Allow devices to opt-in for full LLVM build
android11-5.4 kernel can fully compile with LLVM with a few cherrypicks
from android12-5.4 and android12-5.10

Change-Id: Ib71935d284ad78f1c23d039c15bfc5e0314a19eb
2024-09-07 15:45:38 +02:00
Michael Bestas c81f10f431 kernel: Remove darwin support
Darwin kernel build is not supported for >=5.10
and non-standard clang versions.
Another side effect is that it causes LD_LIBRARY_PATH
to get overwritten, which breaks certain configurations.
Let's just get rid of it since AOSP darwin build is no longer supported.

Change-Id: I9ac642996b90937bd9c52138fb06bf1eff901c8b
2024-09-07 15:45:38 +02:00
Michael Bestas 098b7802d5 kernel: Fix clang version override
Change-Id: I18fceeeeab5426f55a73d0cb8d72abd5f40c67ec
2024-09-07 15:45:38 +02:00
Alexander Koskovich 932a6a5228 lineage: kernel: Use getconf instead of nproc
Change-Id: Id8215f290a88ddf3a6bc1764d9ef9a09f6aa810d
2024-09-07 15:45:38 +02:00
Michael Bestas a1e8ccc1ba kernel: Changes for 5.10 build without GCC
Change-Id: Id6e09467937e60e6b00a30a246ba0a4a8d71687b
2024-09-07 15:45:38 +02:00
Michael Bestas 54e57bf5e9 kernel: Slightly reorder config
Prepare for 5.10 kernel build changes

Change-Id: I79ecf0655f9adc894091c4f26de337ebe03e3ca2
2024-09-07 15:45:38 +02:00
Michael Bestas 5763ae8b1e kernel: Use consistent spacing
Change-Id: Ia01336f14599ec8d767d88ad3b76f7bb97153848
2024-09-07 15:45:38 +02:00
LibXZR 064a2f68b5 kernel: Fix vdso32 building for 4.19+ kernels
This flag has been renamed in 4.19 kernels
https://android.googlesource.com/kernel/common/+/refs/heads/android-4.19-stable/arch/arm64/kernel/vdso32/Makefile#13

Change-Id: I92db29aa124da7c9fc63454d9443373bdc2e16e7
2024-09-07 15:45:38 +02:00
Michael Bestas a0edf779b2 kernel: Use LLVM binutils by default
* GCC has been completely removed in AOSP but we keep it
  for compatibility reasons with older kernels until they
  are adapted to remove all the dependencies to GCC.
* Most updated 4.19+ kernels should be able to use LLVM
  binutils out of the box. 4.14 is possible with a few patches
  and 4.9 with even more patches.
* Make this the default and allow devices opting out by using
  TARGET_KERNEL_LLVM_BINUTILS := false

Change-Id: I569cf290b41aaf2dc16ff9cc4cc6dc461f0d504e
2024-09-07 15:45:38 +02:00
Alexander Koskovich c3d36d8a0d kernel: Drop -fuse-ld=lld from CFLAGS
clang-14: error: argument unused during compilation:
'-fuse-ld=lld' [-Werror,-Wunused-command-line-argument]

Change-Id: Ic863e8707e4c57c7d03183b6cb6d3cd38e919bcb
2024-09-07 15:45:38 +02:00
Michael Bestas b31b260fe4 kernel: Changes for LLVM binutils
* Remove KERNEL_LD from kernel.mk, we simply set LD in BoardConfigKernel
* Add llvm-ar in path allowlist (used by LTO)

Change-Id: I76addb6f9d8d413edb1832dba23082ffb6d5ebc3
2024-09-07 15:45:38 +02:00
Arian f9be69fba7 config: Update clang version to clang-r450784d
This is the default clang version on android-13.0.0_r1

Change-Id: Iaecec88ce0a462403d0a3cf705ce794c230e6bd9
2024-09-07 15:45:38 +02:00
Neel Chauhan f5a42b67f9 kernel.mk: Allow building external kernel modules
Here, we introduce the TARGET_EXTERNAL_KERNEL_MODULES variable
for the list of external modules.

Change-Id: I1f8b7a48e66bb0c9efbc396692e5a7159f0b835c
2024-09-07 15:45:38 +02:00
Michael Bestas 80bd054cf2 kernel: Allow overriding dtb target
On some devices we might want to build just the *.dtb files
that we actually need instead of the every dtb that exists.

Change-Id: Id7a152499d4ee1dd08f79d34cc34bfe959313515
2024-09-07 15:45:38 +02:00
Michael Bestas 1e0d2d457e kernel: Allow setting dtbo target path prefix
gs101 uses DTBO_OBJ/arch/arm64/boot/dts/google/dtbo.img
vs DTBO_OBJ/arch/arm/boot/dtbo.img on previous devices.

Change-Id: I945d31cb093fae97385cf84c273088ee7a4edf0b
2024-09-07 15:45:38 +02:00
Michael Bestas be10f65fc4 kernel: Allow overriding dtbo target name
gs101 kernel uses google/dtbo.img target for dtbo.img

Change-Id: Ib03f35c0035f56d303771de9399bcce3d02c0775
2024-09-07 15:45:38 +02:00
Michael Bestas 97bacc9928 config: Use LLVM binutils for 5.10 as well
Change-Id: I14afa17d710778403cd7fecf842c952c569c0c35
2024-09-07 15:45:38 +02:00
Jason Wojcik 4e7956cca3 lineage: config: Use $(abspath .) instead of $(shell pwd)
Change-Id: I7fec28b7cb507918b1b55dd368a74c927a8fc1d2
2024-09-07 15:45:38 +02:00
Chirayu Desai d00f738806 kernel: Don't print grep error messages when checking version
Avoids:
$ lunch lineage_sdk_phone_x86
grep: build/make/target/board/emulator_x86/Makefile: No such file or directory (x4)

Change-Id: Ie803d5ca93e6e7ae94625e7ee3ab0bf337e0515d
2024-09-07 15:45:38 +02:00
Alexander Koskovich fdf7a64db0 kernel: Move TARGET_KERNEL_ADDITIONAL_FLAGS to kernel task
* Currently, because DTC_EXT make flag is in the
   kernel task the only way to override it is to
   have TARGET_KERNEL_ADDITIONAL_FLAGS come after.

Change-Id: If62ed979581dc07eafd4628ce2b2d799388d3704
2024-09-07 15:45:38 +02:00
Alexander Koskovich e46c8a35da lineage: config: Don't pass CFLAGS_MODULE="-fno-pic" if using LLVM
* Seemingly not an issue for kernels compiled with
   LLVM, tested with kernel versions 4.4 -> 5.4.

Change-Id: I00adee2e10e99a540099b5e1a6a1ab9be0b99050
2024-09-07 15:45:38 +02:00
Alexander Koskovich 623015e96b kernel: Use LLVM's substitutes for GNU binutils if possible
Co-authored-by: LuK1337 <priv.luk@gmail.com>
Change-Id: I06884fb774b6548aad68942f1ce659384521c62a
2024-09-07 15:45:37 +02:00
Sebastiano Barezzi 9d4bb8e43c kernel: Add TARGET_FORCE_PREBUILT_KERNEL flag
* TARGET_FORCE_PREBUILT_KERNEL should be useful when you don't have ready kernel sources (OEM releasing broken sources or releasing them lately)
* It lets you use kernel sources for userspace generated headers (generated_kernel_headers) while keeping using prebuilt kernel
* Keep in mind that generated kernel headers may not align with the ABI of kernel you're including
* This commit also partially revert commit a836d79, where TARGET_KERNEL_SOURCE would have been unset if TARGET_PREBUILT_KERNEL was defined (we already check in kernel.mk if kernel sources are present anyway)

Change-Id: I84acae890dabb5b9dbd48143ad58f6420c0cef75
2022-07-30 14:24:30 +00:00
Alessandro Astone c84395eada Revert "Revert "kernel: fix KERNEL_TOOLCHAIN_PATH_gcc and usage""
The fix was correct...

This reverts commit 168fd231b65f3bd575529984f552354f4c5e3e8b.

Change-Id: If550fd44f32b801553b8ac23cb2a91d3f29df557
2022-07-30 14:24:09 +00:00
Alexander Koskovich ea442ffb45 lineage: config: Make LLVM kernel compile the default
* GCC was deprecated awhile ago, the large majority
   of devices should now be using this. Clang should
   be opt out as opposed to opt in.

Change-Id: Ie388aff8eca189663f2f615f7d059e47eaf2dce3
2022-07-30 14:23:42 +00:00
XiNGRZ 56e71a1ca7 build: Add support of generating kernel includes for prebuilt kernels
For prebuilt kernels, point TARGET_KERNEL_HEADERS_SOURCE to the dummy
kernel source used to generate headers for HALs.

Change-Id: I95a1050a7e0650faac112724b7bd6a300cdb6e4a
2021-11-29 13:05:55 +01:00
LuK1337 1987a27dca kernel: Add 32-bit GCC to PATH for vdso32
Change-Id: Ifff495069ab33d9b1346971a21f380f0c23ebf48
2021-11-14 18:47:26 +00:00
Arian e83210c38d config: Update clang version to clang-r416183b1
* That's the default clang version on android-12.0.0_r1

Change-Id: I528d9a6aa497f7c9a0f53b0e778d0eeefaac0e9d
2021-11-14 18:47:03 +00:00
Captain Throwback 6e472d3adc twrp: setup custom vendor for TWRP-only tree
- Based on vendor_omni, renamed & cleaned up

Change-Id: I4661f7cca770a4c55cfd428e60d29f994725033e
2021-05-01 18:06:03 +02:00