commit | 0e53d887d6cf33adf4051d1e6c6e6476eb81d19c | [log] [tgz] |
---|---|---|
author | Logan Chien <loganchien@google.com> | Tue Nov 06 17:32:40 2018 +0800 |
committer | Logan Chien <loganchien@google.com> | Mon Jan 21 21:35:01 2019 +0800 |
tree | 6a0a3647458252927a0c15b8e9c3e5d586650ac4 | |
parent | 241d7cdba0650f1c0972f8d5e991df818e26dbcb [diff] |
Add prebuilt ELF binaries checker This commit introduces a prebuilt ELF binaries checker. The checker will check: 1. Whether all DT_NEEDED shared libraries are specified in `shared_libs` (Android.bp) or `LOCAL_SHARED_LIBRARIES` (Android.mk). 2. Whether all undefined symbols in the prebuilt binary can be resolved to defined symbols exported by its dependencies. This ensures that prebuilt binaries won't silently become ABI incompatible. To check the prebuilt binaries, all of the dependencies must be specified in `shared_libs` (Android.bp) or `LOCAL_SHARED_LIBRARIES` (Android.mk). If your prebuilt binaries cannot be checked for some reason, you may add the following property to Android.bp: check_elf_files: false, Or, add the following setting to Android.mk: LOCAL_CHECK_ELF_FILES := false Bug: 119084334 Test: CHECK_ELF_FILES=true make check-elf-files Change-Id: I523d3083f22fd4053c096d26f61f8375800281c8
This is the Makefile-based portion of the Android Build System.
For documentation on how to run a build, see Usage.txt
For a list of behavioral changes useful for Android.mk writers see Changes.md
For an outdated reference on Android.mk files, see build-system.html. Our Android.mk files look similar, but are entirely different from the Android.mk files used by the NDK build system. When searching for documentation elsewhere, ensure that it is for the platform build system -- most are not.
This Makefile-based system is in the process of being replaced with Soong, a new build system written in Go. During the transition, all of these makefiles are read by Kati, and generate a ninja file instead of being executed directly. That's combined with a ninja file read by Soong so that the build graph of the two systems can be combined and run as one.