With these adjustments, cached object files can now be shared across
multiple Android trees on a single workstation:
* Compiler binary modification time no longer causes cache misses,
as a hash of the compiler binary is taken rather than looking
at the mtime and size
* Header file modification time no longer causes cache misses,
the headers are now always hashed
* Macros such as __DATE__ and __TIME__ no longer cause cache misses
* All paths in preprocessed source (due to use of -g) are now relative
These options require ccache 3.1 or later to be used; ccache 2.4 will
ignore these.
Change-Id: I7839637e9dacf7240bd9b7bfaa6406b1db423560
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
We are now unifying the NDK versions of unbundled native code to always
use the latest NDK.
We don't need the variable LOCAL_NDK_VERSION now.
To build native code with NDK, you need set just LOCAL_SDK_VERSION.
Bug: 6932421
Change-Id: I86f05a264249cda6bae97b4b1616f03700cd9dfa
The module names are phony targets and we should avoid having file targets
depend on phony targets.
Instead the build system makes sure to use the file dependency with
PRODUCT_PACKAGES.
Change-Id: I8dc59d8f9ed92c146b8827d71278e27214e60f3a
Emit a warning when the static linker detects a shared library
has text relocations. Text relocations make it harder to
share pages across processes, and make it harder to use
certain memory protection features in, for example, SELinux.
This warning will turn into an error in a future change
(via --fatal-warnings)
References: http://www.akkadia.org/drepper/textrelocs.html
Change-Id: I3bc818e3ecdb8a4338668a9e816b6dc1081b7557
Based on existing setup, when EMMA_INSTRUMENT is used on a full
build, all Java modules will be processed with emma instrument
unless otherwise marked in their own Makefiles.
For the purpose of collecting code coverage, emma-instrument
all Java modules aren't that useful, instead, instrumenting all
the app packages is more useful. This change adds a new flag
EMMA_FULL_APP_INSTRUMENT, which can be used with a full build
to instrument all app packages.
Change-Id: Ie143fed49c23402b21f6cccac2ef25741726be45
init used to automatically execute hardware specific init.rc files from
init.<hardware>.rc. If the hardware specific init.rc file was installed
in recovery.img, various unwanted services would try to start, so init*.rc
was deleted when creating the recovery root directory.
init was recently modified to explicitly import init.${ro.hardware}.rc
from the default init.rc, rather than always trying to load it. Since
recovery replaces the default init.rc with a custom one, it will never
try to load hardware specific init files.
In addition, there are cases where we need to start hardware specific
services, for example watchdogd, so we need
init.recovery.${ro.hardware}.rc to be installed.
Modify the build rule to delete the default init.rc from the recovery
root directory so it can be replaced with the custom recovery init.rc,
but leave all the hardware specific init files in place.
Bug: 6953625
Change-Id: I5d9555e3d54d2f1d9f49fb981bd412c53741337e