Age | Commit message (Collapse) | Author |
|
Before we were only checking whether the correct version of abidiff was
in PATH. In case there was no abidiff at all, we failed rather loud with
a lot of noise from dpkg. Hence do a quick check for abidiff before
comparing versions.
Change-Id: I056a292556fb519b8ca6880746ee034528750724
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
am: 680e80cafd
Change-Id: Iad520d89ac695ab6ef7545aaf900367aff8f75ae
|
|
am: 02963acbce
Change-Id: Ic7f815dfeabb83773135041a7e1c9d074afb7f4f
|
|
am: 11b3617ebd
Change-Id: Ifcda2172700a4d030e981de9be6c352788887ca7
|
|
As of now, build_abi.sh (indirectly) relies on libabigail while creating
the abi dump. In case abigail is not installed or not in PATH, this
script will do all the (time consuming) kernel building before failing
at its most essential step. Avoid that by ensuring a valid abigail
before building the kernel.
Change-Id: I979b61de00473f4cfd6537f7151add454a02c1c9
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
As the README contains a full list of dependencies and the user of this
script is required to have administrator privileges, do not ask for any
further confirmation when installing system packages. That also allows
unattended runs of this script (called with privileges).
Change-Id: Icb7a0c30ac188e3701f7096e50ebb71b3c9d3dc6
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
Add more packages that are required to run the scripts. Also update the
README accordingly.
Change-Id: Ie7251737e10751a23992ab93e521762de11a0711
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
am: bec886afb9
Change-Id: I9c9116ef6c15f5afa607270edd946e9758db5665
|
|
build.sh was staging the headers to be included in a temporary
directory. Not only did this lead to a huge amount of cp commands, in
general that approach did not scale very well. In addition, the tmp
directory used might have ended up repeatedly in the archive under
certain circumstances.
Therefore, teach build.sh to collect all header files to be archived in
one single `find` command and to create the final archive on the fly.
On my machine that reduced the runtime for this step from ~60s to ~2s.
That is just a rough measurement by observation.
Change-Id: Ib65aa7c5a76050e92d4f8dcb13d110886181cc53
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
am: 7dcb786869
Change-Id: I74eb66dd89bcffcd2aa65c7079b8428b83b1463d
|
|
libabigail requires libdw-dev at least in version 0.165 and autoconf to
run autoreconf.
Change-Id: Id882bcf5c57de6f14fe5e61cf2ed0e3a8553f4b4
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
am: bd5e166237
Change-Id: I9c249bdaba00cce42a2efa69177a82599d56e217
|
|
am: 8ce41bf7b9
Change-Id: I7c14fb6f1da0d5def5c78670f7d699f8269e85e7
|
|
As the installation requires administrator privileges, only attempt
installation if the packages are known to be missing.
Change-Id: Ia81157ed100bff28047ed727035560d0ae8b8680
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
Change-Id: Icb890ae075c0949362a9707e3f87044f27932dbb
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
am: ea2f60b2bc
Change-Id: I904482063eb1247321e27f19512b3c9f647a8be8
|
|
am: cec41ee52f
Change-Id: I4a82f52d4820361806d5d3da47fbec9727148556
|
|
am: f7d7e4dca2
Change-Id: I500f7c1247b19c052215849edb79a09d9cb662eb
|
|
am: ccb70faeee
Change-Id: I34876c5f1d9e45f16693e834091e3b1fb0a63de5
|
|
Add build_abi.sh as a wrapper script to build with build.sh and create
an ABI dump using abi/dump_abi.
Bug: 111449103
Change-Id: Iea773cf2ed6f3fdc577a99f42284992e0a871d25
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
Add a generic abitool implementation that is capable of translating
common abi operations like dumping and diffing to concrete tool
implementation.
Also add the cmd line utilities `diff_abi` and `dump_abi`.
Bug: 111449103
Co-authored-by: Jayant Chowdhary <jchowdhary@google.com>
Change-Id: I1c4dedb96f4806ea58cf11786d0e7464e26f3059
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
Add the `bootstrap` script that is installing all the prerequisites that
are necessary to run the ABI utilities. In particular, the script takes
care of installing GitPython and all required dependencies for building
libabigail. It finally builds the abigail tools from source and
provides instructions to make them available in PATH.
Bug: 111449103
Co-authored-by: Jayant Chowdhary <jchowdhary@google.com>
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: Id44efe6874f7b51bc64abca9ac3d879612180f85
|
|
Delegate calculation of OUT_DIR and DIST_DIR to envsetup.sh. That way it
can be reused for other scripts like build.sh.
Also ensure that envsetup.sh is only included once.
Change-Id: Ie61b8b6bc2ac10d31302a0e161748899c7463496
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
am: 14f6db72fa
Change-Id: I71517536cb734d1b8f76e4ce32e310066f6ec585
|
|
Using /tmp breaks concurrent builds trying to use /tmp/kernel-headers.
Isolate builds and make them self-contained by using a tmp directory
relative to OUT_DIR.
Change-Id: I4a435bbc9a5532c5890278b0d742b5bd1d837513
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
am: 0646c8d257
Change-Id: Ic01614a1e2dd336a4582adeccc6f6feed06265e8
|
|
The motivation of this change is to be able to use the gcc version from
PATH (e.g. the bundled prebuilt) even in case CC=clang has been set
as default by the build.config:
-- Build with Clang from $PATH
$ ./build/build.sh
-- Build with GCC from $PATH
$ CC=gcc ./build/build.sh
In case of build/build.sh, $PATH is usually setup for a prebuilt
cross-compiler toolchain.
In order to accomodate any cross compiler settings when falling back to
gcc, simply unset CC to let kbuild figure out the correct compiler from
PATH.
It appears a bit hacky, but only breaks backward compatibility for the
case that somebody uses CC=gcc and expects the gcc from PATH to be used.
That case is still supported by passing an absolute path.
Change-Id: I537192168a27bdda9b288443de88ed45d7c4ec68
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
am: 263c177c98
Change-Id: Id0ca6d3d6fe00892cbb59ae4c347e288632f65d0
|
|
am: 151047e2c3
Change-Id: Ie85387bf4492cd31c307dbad649cd766fbdbd50a
|
|
As we cannot store build.config files (used for build/build.sh) within
the upstream repositories (they are plain upstream mirrors), provide a
configuration hierarchy here and refer to them from the kernel/manifest
for the branch.
The build.config files can be used to build upstream kernel branches
with build/build.sh after acquiring sources (and toolchain!) with repo.
The background behind this change is to ensure stable toolchains and
configurations when building kernels. That is useful for ABI-checked
builds.
Change-Id: I44a82140713614bfa870ecf1b48c8a1f87305a48
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
All make calls (especially `make defconfig`) might rely on the correct
compiler to be used. In order to use the same compiler consistently,
determine the CC_ARG and LD_ARG before the first call. Also combine them
to ensure they are used as a pair consistently.
The issue was discovered when building upstream-linux-4.19.y with
CC=clang and the deprecation warning got triggered during make mrproper
and make defconfig.
Change-Id: Ia1905adfda28d78f37f56724fe5fbfd13852f2c7
Cc: Alistair Strachan <astrachan@google.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
am: e4edd6f9ba
Change-Id: Ida29685244afa417090c6acca18e0ebbfb8ecc88
|
|
am: 0172f35846
Change-Id: Ib7e2e4b7ef021875cf35380df99bc825eb7ad9de
|
|
Change-Id: I42a138945c61040aa526220f2eb553f09c5c1842
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
Kernel LTS merge builds need to watch the entire kernel directory
with inotifywait in order to determine which files were used during
compilation. This file list is then used to build an annotated commit
message for the merge by marking those commits that actually affected
the build.
Add PRE_DEFCONFIG hook for starting inotifywait.
Add POST_KERNEL_BUILD hook for terminating inotifywait and creating
the annotated commit message.
build.config.lts will be created to utilize these hooks.
Change-Id: If65f59817cf8c3455b7d2fc6c3931da950ef3d9f
Signed-off-by: Matthias Maennich <maennich@google.com>
|
|
Publish build scripts to build Android Kernels in AOSP. They include the
actual build script build/build.sh, helper scripts to run the
kernel/tests as well as common utilities for validating patches.
Refer to build.sh for documentation on how to invoke the kernel build.
Bug: 120282827
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: Id860c320ced4e9a2fd5e32b4730c7b86ac843294
|
|
|