Our build/make changes break incremenetal builds with prebuilt dtb dir
(see discussion here: https://android-review.googlesource.com/c/platform/build/+/1134337/1/core/Makefile )
Instead of using the AOSP recipe, just define our own and use it by not defining
BOARD_PREBUILT_DTBIMAGE_DIR
Change-Id: If579b1670db447557b6f76ca79ecec22661c4080
* OpenSSL cannot be statically linked because of
getaddrinfo and gethostbyname calls.
* Also according to soong it's whitelisted:
33f9529962/ui/build/paths/config.go (L98)
Change-Id: I1718bd98e7ac30d31de38c2cd3bc3e51b7100ce4
Previously, this would be a full compile prefix
(e.g. prebuilts/gcc/.../bin/aarch64-linux-gnu-). Since we're adding
this to PATH, it only needs to be prebuilts/gcc/.../bin.
Also remove the extra /bin/ added by kernel.mk.
Change-Id: If2490729128c0243c61de646f6c8e19a15c8dc1c
The kernel make command is executed in the build root. Without absolute
out paths, kernel out start with "out/" meaning it would be created in
the kernel source. Add BUILD_ROOT to the argument to ensure it's always
made in the actual out/ dir.
Change-Id: I425134a893d4d5c9f31efccaf75e153b5462b76c
The GCC toolchains are no longer added to the path by default, so
we need to hardcode the full paths for these. Also set variables
for every arch, and then set the toolchain to the arch specific var.
This is so we can set the ARM32 cross compile flag for vDSO32
enabled kernels.
Change-Id: I7e099a26a17f4a3cc9be6232a26c671e8fcfbdef
* -androidkernel ones became symlinks to -android ones long time ago, use
-android executables directly to simplify the logic on these platforms.
* Keep arm on -androidkernel because it doesn't boot for some reason.
Change-Id: I97dd93121fc0e805a965e3f8b84466dd7bd686c0
Using preinstalled system headers and libraries is no longer allowed.
So we're gonna make our own prebuilts/openssl so we can build kernels.
Change-Id: Ic5bc3b14c37b3bca352932c6f19a592377dbaf27
The built ccache command is now deprecated and spits out errors. ccache is
also no longer used for the full build unless CCACHE_EXEC is defined. Move
the kernel to the same logic in order to actually use ccache and silence
the warnings.
Change-Id: Iccedd9d5868d31060677667cc18810aae0149a26
* Instead of nesting ifeq/else/ifeq/else/endif/endif construction, make
allows the more readable ifeq/else ifeq/else/endif construction. Use it
instead.
Change-Id: Ifd2635929799db593e04a13827f05c97e95487e4
These configuration options are set based on the Google configurations
located in kernels
(ex. https://github.com/LineageOS/android_kernel_google_wahoo/blob/lineage-16.0/build.config)
This is composed of 2 parts:
Revert "kernel: Correct CROSS_COMPILE_ARM32 toolchain"
This reverts commit c77bb3a5ba.
This breaks builds when building with upstream commit
ad15006cc78459d059af56729c4d9bed7c7fd860. That commit fixes LD being
used from outside the path, however androidkernel toolchains don't
have elfedit. Google specifically doesn't use androidkernel, so we
need to follow them on this.
Set CROSS_COMPILE_PREFIX to aarch64-linux-android- for clang builds
Upstream commit ad15006cc78459d059af56729c4d9bed7c7fd860 makes the
kernel build system use GCC toolchains for elfedit, so we have to
actually use a real GCC toolchain, not the androidkernel one.
Change-Id: I79ac4ac47d3ba6c2abbc5ce40e56ed5c707295b4
Currently we handle the DTBO images from start to finish, including
AVB footers, and just drop them in $(PRODUCT_OUT)/dtbo.img when done.
While this works for the most part, we are limited in what we can do
with the DTBO images. For example non-A/B device recovery images must
have a copy of the DTBO image appended to recovery (see AOSP docs:
https://source.android.com/devices/bootloader/recovery-image ). This
means that we need to pass the pre-AVB dtbo image into
BOARD_PREBUILT_DTBOIMAGE in order to let the AOSP build system handle it.
This commit reworks the way the DTBO images are built, placing them at
$(PRODUCT_OUT)/dtbo-pre.img instead and setting BOARD_PREBUILT_DTBOIMAGE
to that path so the AOSP build system can pick the images up and sign
them and append to recovery (for applicable devices).
Change-Id: I8819d7cd92ba298de67dbc7f6b321917ba8524f1
Kernel source settings should always come at BoardConfig population
time so things that use the variable later don't end up pointing to
an empty or wrong variable.
The following is also squashed in:
Author: Christopher N. Hesse <raymanfx@gmail.com>
Date: Fri Aug 10 00:23:54 2018 +0200
tasks: kernel: Honor prebuilt kernel flag
For devices that want to use a prebuilt kernel, TARGET_KERNEL_SOURCE
would still be set to TARGET_AUTO_KDIR, meaning the build system would
still try to build the kernel if TARGET_AUTO_KDIR was present.
Setting TARGET_PREBUILT_KERNEL indicates this is not wanted, so don't
attempt to do it.
Change-Id: Ic79b3ac1b9c946fd258ada43dce2b08bb74ea0d9
Change-Id: If046b86ff0d18c76898e90295be873a8379f678a