Generate version 2 of the block_image_update transfer list format.
This improves patch size by a different strategy for dealing with
out-of-order transfers. If transfer A must be done before transfer B
due to B overwriting A's source but we want to do B before A, we
resolve the conflict by:
- before B is executed, we save ("stash") the overlapping region (ie
the blocks B will overwrite that A wants to read)
- when A is executed, it will read those parts of source data from
the stash rather than from the image.
This reverses the ordering constraint; with these additions now B
*must* go before A. The implementation of the stash is left up to the
code that executes the transfer list to apply the patch; it could hold
stashed data in RAM or on a scratch disk such as /cache, if available.
The code retains the ability to build a version 1 block image patch;
it's needed for processing older target-files.
Change-Id: Ia9aa0bd45d5dc3ef7c5835e483b1b2ead10135fe
To enable building with coverage, the environment variable
NATIVE_COVERAGE must be set to true.
Set `LOCAL_NATIVE_COVERAGE := true` to generate coverage information for
a given component.
This is currently not supported for clang (b/17574078, b/17583330).
If static library A is included in a binary B (dynamic or static
executable, or shared library), and A is built with coverage
information, B is required to link with libgcov.a. Since the make does
not offer a good way to track this dependency, link libgcov.a even if
LOCAL_NATIVE_COVERAGE is not set (but still guarded by NATIVE_COVERAGE).
This ensures that all of the libgcov dependencies will always be
resolved, and causes no change in the resulting binary if coverage is
not used.
Bug: 10134489
Change-Id: Id5a19f2c215e4be80e6eae27ecc19b582f2f6813
The code name looked at 5.0 despondently. "Won't anyone care about
me? Why does everyone pretend like I don't even exist!" And it
was true -- for all of its life, nobody had ever whispered L's
true name, at least not in the same breath as many other names that
were not L's at all.
But 5.0 knew better. "L," the number said, "don't you fear. Some
day, I am sure, your name will go up in lights. Your name will shine
brighter than even my own. And everyone who is anyone will know
your name, write pages and pages all about your name, and debate
endlessly about everything you are."
L could only hope this would be true. But not today. Today, L
is still nobody.
Change-Id: I2523dd34ff7486badf8c9cd40e43833a5ef448b8
This fixes mmma broken due to quotes stripped in the argument passing.
(cherry picked from commit dcc8b3729d)
Change-Id: Ic8c4bb8e7cb347c1f80b5bc1648f63e58a010e8d
LOCAL_ASSET_DIR may point to a dir generated during the build process.
We have done similiar things to LOCAL_RESOURCE_DIR.
(cherry picked from commit bfcdf060ba)
Bug: 16563899
Change-Id: Iaa72196e1e6350ae0720f8a4e0abc68d8d7ed642