summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-04-25build_abi.sh: also check for the existence of abidiffMatthias Maennich
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>
2019-04-16build_abi.sh: Ensure valid abigail installationMatthias Maennich
am: 680e80cafd Change-Id: Iad520d89ac695ab6ef7545aaf900367aff8f75ae
2019-04-16abi/bootstrap: install system dependencies without confirmationMatthias Maennich
am: 02963acbce Change-Id: Ic7f815dfeabb83773135041a7e1c9d074afb7f4f
2019-04-16abi/bootstrap: moar complete dependenciesMatthias Maennich
am: 11b3617ebd Change-Id: Ifcda2172700a4d030e981de9be6c352788887ca7
2019-04-16build_abi.sh: Ensure valid abigail installationMatthias Maennich
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>
2019-04-16abi/bootstrap: install system dependencies without confirmationMatthias Maennich
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>
2019-04-16abi/bootstrap: moar complete dependenciesMatthias Maennich
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>
2019-04-15build.sh: avoid unnecessary copies and reduce overall runtimeMatthias Maennich
am: bec886afb9 Change-Id: I9c9116ef6c15f5afa607270edd946e9758db5665
2019-04-15build.sh: avoid unnecessary copies and reduce overall runtimeMatthias Maennich
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>
2019-04-09abi/bootstrap: clarify dependenciesMatthias Maennich
am: 7dcb786869 Change-Id: I74eb66dd89bcffcd2aa65c7079b8428b83b1463d
2019-04-09abi/bootstrap: clarify dependenciesMatthias Maennich
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>
2019-04-02abi/bootstrap: only install packages if missingMatthias Maennich
am: bd5e166237 Change-Id: I9c249bdaba00cce42a2efa69177a82599d56e217
2019-04-02abi/bootstrap: update libabigail 1.5 -> 1.6Matthias Maennich
am: 8ce41bf7b9 Change-Id: I7c14fb6f1da0d5def5c78670f7d699f8269e85e7
2019-04-02abi/bootstrap: only install packages if missingMatthias Maennich
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>
2019-04-02abi/bootstrap: update libabigail 1.5 -> 1.6Matthias Maennich
Change-Id: Icb890ae075c0949362a9707e3f87044f27932dbb Signed-off-by: Matthias Maennich <maennich@google.com>
2019-04-02add build_abi.sh to create ABI dumps from build.sh buildsMatthias Maennich
am: ea2f60b2bc Change-Id: I904482063eb1247321e27f19512b3c9f647a8be8
2019-04-02Initial version of the abi monitoring utilitiesMatthias Maennich
am: cec41ee52f Change-Id: I4a82f52d4820361806d5d3da47fbec9727148556
2019-04-02ABI Monitoring: add bootstrapMatthias Maennich
am: f7d7e4dca2 Change-Id: I500f7c1247b19c052215849edb79a09d9cb662eb
2019-04-02envsetup.sh: take control of defining OUT_DIR and DIST_DIRMatthias Maennich
am: ccb70faeee Change-Id: I34876c5f1d9e45f16693e834091e3b1fb0a63de5
2019-04-02add build_abi.sh to create ABI dumps from build.sh buildsMatthias Maennich
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>
2019-04-02Initial version of the abi monitoring utilitiesMatthias Maennich
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>
2019-04-02ABI Monitoring: add bootstrapMatthias Maennich
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
2019-04-02envsetup.sh: take control of defining OUT_DIR and DIST_DIRMatthias Maennich
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>
2019-03-27build.sh: define TMP_DIR relative to OUT_DIRMatthias Maennich
am: 14f6db72fa Change-Id: I71517536cb734d1b8f76e4ce32e310066f6ec585
2019-03-27build.sh: define TMP_DIR relative to OUT_DIRMatthias Maennich
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>
2019-03-21build.sh: use a gcc with target triplet from PATH if CC=gcc is setMatthias Maennich
am: 0646c8d257 Change-Id: Ic01614a1e2dd336a4582adeccc6f6feed06265e8
2019-03-21build.sh: use a gcc with target triplet from PATH if CC=gcc is setMatthias Maennich
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>
2019-03-20add build.config's for upstream LTS branchesMatthias Maennich
am: 263c177c98 Change-Id: Id0ca6d3d6fe00892cbb59ae4c347e288632f65d0
2019-03-20build.sh: consistently use CC_ARG and LD_ARGMatthias Maennich
am: 151047e2c3 Change-Id: Ie85387bf4492cd31c307dbad649cd766fbdbd50a
2019-03-20add build.config's for upstream LTS branchesMatthias Maennich
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>
2019-03-18build.sh: consistently use CC_ARG and LD_ARGMatthias Maennich
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>
2019-02-23build.sh: doc for PRE_DEFCONFIG_CMDS + POST_KERNEL_BUILD_CMDSMatthias Maennich
am: e4edd6f9ba Change-Id: Ida29685244afa417090c6acca18e0ebbfb8ecc88
2019-02-23Add PRE_DEFCONFIG + POST_KERNEL_BUILD hooksPetri Gynther
am: 0172f35846 Change-Id: Ib7e2e4b7ef021875cf35380df99bc825eb7ad9de
2019-02-13build.sh: doc for PRE_DEFCONFIG_CMDS + POST_KERNEL_BUILD_CMDSMatthias Maennich
Change-Id: I42a138945c61040aa526220f2eb553f09c5c1842 Signed-off-by: Matthias Maennich <maennich@google.com>
2019-02-13Add PRE_DEFCONFIG + POST_KERNEL_BUILD hooksPetri Gynther
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>
2019-02-01initial release of kernel/build in AOSPMatthias Maennich
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
2016-01-22Initial empty repositoryXin Li