We've been using -fPIC and -fPIE together in the global cflags all this
time. These options are incompatible. The only reason we haven't been
hit by this before is because of the forced -Bsymbolic in GCC. To fix
this, pass -fpic when compiling objects for shared libraries and -fpie
when compiling objects for executables. For static libraries, also use
-fpic. We have to do this because static libraries might be included in
either a shared library or an executable. Code compiled with -fpie
cannot be included in a shared library, but code compiled with -fpic
may be included in an executable.
We've also been using -fpic and -fPIC together. These are different
options, and only the latter will take effect.
http://stackoverflow.com/a/967010
The final thing this fixes is that we had -f(PIC|PIE) flags being passed
to link commands. These are compile time flags, and don't do anything at
link time.
Bug: 16823325
Change-Id: Ic76f47e63dc2c81b7e1a8058bae1b3dc8565d606
(cherry picked from commit 4803ce2696)
This will allow us to conditionally change the compiler-filter based on other properties.
Bug: 15165413
(cherry picked from commit 4d30e5e260)
Change-Id: I84e8038c6536291e6775f39b33556b8169fdf292
Change DexPreOpt to include patch information of all compiled files so
we can relocate at runtime.
Bug: 15358152
(cherry picked from commit ce090d3f45)
Change-Id: I75a1eec3a38d6bce1f678c510d57849f8dfa04fa
Add mips64r6 target and corresponding mips32r6 target.
Defaults remain as mips64r2 and mips32r2.
Apply -FP64A codegen subsetting to mips32r6 only.
Access FR=0 odd-numbered 32-bit float regs only via
double-prec even-numbered regs, not by single-prec ops.
(cherry picked from commit 6bab974cdc)
Change-Id: I447337ce56c15e86cec505d68a6b45294fc3ba77
Use 4.9 mips64el toolchain for both 64- and 32-bit builds.
Tell ld when 32-bit links are required.
Override 4.9's changed defaults for mips floating point
register use, to get same assembler rules as 4.8 and earlier.
Also: drop unused soft-fp build targets, cleanout redundant
compiler options, and remove extraneous Android.mk file.
(cherry picked from commit 6670e24aed)
Change-Id: I34d2f8fc6113c9d1670e3acff1aff48634b9fe1b
Store sparse images in the target-files, and use those (when they're
available) for building block OTAs.
- New script add_img_to_target_files is added to make the images and
add them to the IMAGES/ subdir in the target-files. It gets run
from the Makefile when building a target-files.
- img_from_target_files becomes mostly vestigial: it creates the
img.zip by just copying the images out of the target-files. (It
still knows how to build images for use on older target-files.)
- ota_from_target_files uses images from the target-files in
preference to rebuilding images from the source files.
- sign_apk_target_files builds images and includes them in its output
target files (even if the input target-files didn't have them).
Bug: 16488065
Change-Id: I444e0d722d636978209467ffc01750a585c6db75
* Explicitly check BUILD_FDO_INSTRUMENT and BUILD_FDO_OPTIMIZE with true
* Remove unnecessary target_libgcov
* Update the profile collection path on device so that most app can have write access
Change-Id: I5c1915a12ea37b2cb3c76a27e7104e47ad636928
We first define TARGET_COPY_OUT_VENDOR as a placeholder. In product
config makefiiles we actually get the placeholders in
PRODUCT_COPY_FILES. A device can set up TARGET_COPY_OUT_VENDOR in its
BoardConfig.mk. We substitute the placeholder with the real
TARGET_COPY_OUT_VENDOR value after loading the BoardConfig.mk.
With this change, we can support building vendor stuff to
system.img (the default) or a separate vendor.img.
Bug: 16515152
Change-Id: I5b601d7a8b34fe032a1bac02aa5c204a3765691d
In prebuilt app module, you can use LOCAL_PACKAGE_SPLITS to specify a
list of prebuilt split apks. The build system will sign and zipalign the
apks and install them with the same file names.
Note that you need to put all the source split apks in the same folder.
Bug: 16319961
Change-Id: Id2b6d743c1edc5e436007ec11acece1748adad45
- Better messaging if the expected split apk isn't generated by the aapt
command in the base apk rule; Remove the built base apk, so make will
rerun aapt after the user changes the splitting parameters.
- Use cleaner static pattern rules instead of running $(foreach) with
$(eval).
Bug: 16319961
Change-Id: If6ae302e1a39d2e0db8f784d4e1cf292ec855281
Support LOCAL_PACKAGE_SPLITS, which accepts a list of resource lables
and generates multiple apks. The build system sets up rules to sign and
zipalign the split apks.
Bug: 16319961
Change-Id: I344b3d1c7eb158c6d0df879093d666a89870aadd
This keeps only the real sources in doc target and fixes some error
messages caused by trying to generate docs of the tests.
(cherry picked from commit 100aba5374)
Change-Id: I39f3ede95ae68777ca5e3db4ab5c6ebeefc86ac6
The vendor build.prop contains the fingerprint for the build, and
timestamps. It allows you to tell if the vendor partition matches
the system partition.
Change-Id: Icf261571e82823928b2562e66e48fbcb0da55801
Signed-off-by: Daniel Rosenberg <drosen@google.com>
A module can declare "LOCAL_SDK_VERSION := system_current" to build
against the android system stubs generated from source.
For now this is only supported in platform build.
Change-Id: I1e9bbd159886bc0ea3a02b1dc4cbcb1a56e9cb15
Apk's path is changed to <parent_dir>/MyApp/MyApp.apk;
JNI path is changed to <parent_dir>/MyApp/lib/<arch_name>/libfoo.so.
Symlinks of JNIs are changed accordingly.
Bug: 16319961
Change-Id: Ib3b2309c95fa9aea27837fcc29e28d990b04747b
The image Xmx is already fixed at 64m. The issue is in the non boot image case.
(cherry picked from commit 87f0d006f2)
Change-Id: Id4a6d9e8edf00505198c3f3dd599cb7b7f06363a
Use an override for the dex2oat Xmx value when cross-compiling.
Bug: 16221224
(cherry picked from commit 7d70f830bc)
Change-Id: Ic13b471c74325e8145a0a9c93a417355505e484a