No description
Find a file
Pirama Arumuga Nainar b8f898ef88 Add libprofile-extras to all link steps when NATIVE_COVERAGE is enabled.
libprofile-extras has a wrapper to getenv() that appends the effective
userid (euid) of the current process to GCOV_PREFIX.  This avoids
conflicts and permissions issues when multiple processes try to
create/access the same directories and files under /data/misc/trace.

This library needs to be added and the -Wl,--wrap,getenv flag needs to
be passed to all link steps.  Since Android.mk does not propagate flags
and libraries across dependencies, this change just adds the library and
flag to all non-static-library Android.mk modules.  As a consequence,
*ALL* binaries created via Android.mk will have the signal handler and
property watcher thread in libprofile-extras but they are no-ops in
non-coverage-enabled binaries.

The dependency is added early enough in core/binary.mk so that the
LOCAL_SOONG_LINK_TYPE resolutions occur correctly.

Test: Verify that coverage files are written to
/data/misc/trace/<euid>/proc/... instead of /data/misc/trace/proc/...

Change-Id: I4d5f849c15e9a278253f2148185ddf3ab2878e2f
2019-07-08 15:13:31 -07:00
common Move dexpreopting to Soong 2018-12-17 13:46:17 -08:00
core Add libprofile-extras to all link steps when NATIVE_COVERAGE is enabled. 2019-07-08 15:13:31 -07:00
packaging Fix creating _dist_<goal> targets under !dist 2018-10-21 08:56:27 -07:00
target Merge "Modify build to put dumpcoverage agent into /system/lib" 2019-06-28 22:41:14 +00:00
tests Only set TARGET_PLATFORM version in lunch when explicitly requested 2017-05-01 14:26:40 -07:00
tools Change the condition for building super_empty.img. 2019-06-28 14:23:53 -07:00
.gitignore Add build subprojects to .gitignore 2015-07-23 13:18:47 -07:00
buildspec.mk.default Add TARGET_PLATFORM_VERSION to lunch 2017-03-23 09:44:08 -07:00
Changes.md Changes.md: Change OUT_DIR to PRODUCT_OUT 2019-06-04 20:49:51 +09:00
CleanSpec.mk Moving /odm/build.prop to /odm/etc/buid.prop 2019-05-22 14:04:39 +08:00
Deprecation.md Start the deprecation of BUILD_HOST_STATIC_LIBRARY 2019-06-14 09:37:42 -07:00
envsetup.sh Revert "Revert "Deprecate bash m* commands and use the soong's modules-in* build commands instead."" 2019-06-20 23:40:33 +00:00
help.sh s/product-services/product_services/g 2018-08-20 10:44:59 -07:00
navbar.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
OWNERS Add more OWNERS 2019-06-17 15:22:33 -07:00
README.md Mark envsetup.sh vars as deprecated in makefiles 2017-11-28 14:19:50 -08:00
tapasHelp.sh Remove armv5te 2018-01-08 15:26:16 -08:00
Usage.txt Remove showcommands from docs 2018-07-14 09:32:13 -07:00

Android Make Build System

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.