We can save some space for platform build with this.
Previously an extra libgcc.a was put before libc.so so libraries built
against new platform can run on old platforms. This is needed only for
unbundled build.
Bug: 8805022
Bug: 8247455
Change-Id: I3c3e0092b06ec3804659d5cae048d29e0d2bf7ad
When the NOTICE file for a module changed, the new NOTICE was being
concatenated onto the end of the old one in non-clean builds, taking up
more and more space and presumably duplicating most of the content. Only
one set of rules for a given file can exist in make, so there cannot be
a case where more than one $(notice_file) was intentionally being
concatenated together as this would be an error.
Change-Id: I0f5fae498225eaee5cc75d854223b5ba790fcebe
Enable _FORTIFY_SOURCE=2 for x86 and MIPS.
Currently, this change is a no-op, as Android's libc doesn't
support _FORTIFY_SOURCE > 1, yet.
The ARM change was made in 316f720b91
Change-Id: Iafe90beadf9b6a41ea294b7107cf4f18141acf3a
This is necessary to ensure that we correctly generate
documentation for these packages.
Bug: 8175766
Change-Id: Ia1c359c744d68f9b9423fd0e9df5516890792936
Enable _FORTIFY_SOURCE=2 for ARM.
Currently, this change is a no-op, as Android's libc doesn't
support _FORTIFY_SOURCE > 1, yet.
Change-Id: Ib4c8e44e6949a37352c153e3c52a4fa001f18738
DBUS had been needed by bluetooth bluz stack. It is not needed after
we replaced bluez stack with bluedroid stack.
bug 6872904
Change-Id: I952624e61c1e570c7e8d5a23937ab93a173d135c
$(built_odex) depends on $(LOCAL_BUILT_MODULE) but doesn't have any build
recipe. It is built by the rules of $(LOCAL_BUILT_MODULE) that results in
a subtle bug: $(built_odex) is always newer than $(LOCAL_BUILT_MODULE)
if $(LOCAL_BUILT_MODULE) rebuilt. Therefore 'make' thinks the targets
(/system/app/$app.odex) depending on $(built_odex) don't need to be updated.
It seems an allegedly optimization bug of 'make'.
The simple fix is to explicitly add $(LOCAL_BUILT_MODULE) as a dependency
of $(installed_odex).
Since commit 6c86a1 we have split LOCAL_SHARED_LIBRARIES out of
LOCAL_REQUIRED_MODULES and the vendor check does no longer cover the
installed modules introduced by LOCAL_SHARED_LIBRARIES.
This change brings back the coverage.
Change-Id: Ie78692e48f173a3350792eb2fee8127ff9433caa
Usage:
LOCAL_DIST_BUNDLED_BINARIES := true
The dist files will include the jni shared libraries and the apk with
jni libraries stripped.
Bug: 8181626
Change-Id: I4a047d786ad35b948b4ad7a51adf37321dbe395c
It is safe for a class to become final if it was not previously
instantiable since applications could not declare subclasses
of their own.
Likewise it is always safe to remove final.
Change-Id: I9a72fee7b25ccceca2024112812b97872ba2ec6b
This is related to commit a1712e.
Some PDKs need the factory build under PDK. If you want to disable the factory
build under PDK, use TARGET_NO_FACTORY in your device's BoardConfig.mk
Change-Id: I5e208836918ffd737951d3fb1f54c560d2b93641
If we don't do "-lc", we end up missing symbols like "memset" on our non-NEON
builds. It also makes more sense to have bcc_compat as a standard dependency
for now, since it occasionally changes the way we compile/link our source
files.
Change-Id: I4b0ead66caa7c72fb7733db8804a33faa5350930
The host java files weren't being compiled with -g.
(cherry-picked from 3a971f734060d19fc023ccf82e39d956a31b7cfb)
Change-Id: I4274910c64ebf52ec955e30e800b34fc309db27b
Remove the output files for SELinux policy
and mac_permissions.xml mapping for changes
between user and eng build.
Change-Id: Ie27dcedde0c22ce917d90466a763698c86919530
1. Let aapt output the proguard_options file
2. If proguard is enabled, switch the dependency from
$(full_classes_jar) to $(full_classes_proguard_jar).
Change-Id: Idc641a1515b8899a4623a2aeec5cd494f6c1c1c5
If we use +=, the right side may be deferred to evaluate,
if that target-specific variable is not defined yet.
That's a mistke.
Change-Id: I1635ee4791473f407866e010d612948c02cdebf6
And retire BOARD_DONT_BUILD_USERDATA_IMG.
This unifies the logic in build/core/Makefile and
build/tools/releasetools/img_from_target_files.
Change-Id: Ib6b4e8e0d8279ed7deaf047e9dc30eb65aba013f
Cleans up some unused/renamed files:
- sdk_only_whitelist is better named windows_sdk_whitelist.
- a few product.mk dependencies should not be listed here
any more but in the sdk/product.mk instead (which they were.)
Change-Id: Ifad3049321c8ec4edd8b94b83e570eebba442e7d
Given the following function signature:
void rsDebug(const char *s, float2 f2);
Under the regular ARM ABI, the arguments would be passed as follows:
r0 <- s
r1 <- f2.x
r2 <- f2.y
Under the ARM EABI, the arguments would be passed as follows:
r0 <- s
r1 <- UNUSED due to alignment padding for vector operation
r2 <- f2.x
r3 <- f2.y
Change-Id: I2332c8555c00003ae900f299fa3aee1b3ccac439
This allows you to build apks that link against other
apks using the framework's new shared library apk feature.
Also if you are using LOCAL_APK_LIBRARIES, then LOCAL_DEX_PREOPT
will not be allowed. This is because using preopt means the
apk is stripped of its dex file, so the pre-installed apk can't
be redexed if its associated library changes. (Even if the build
system didn't strip the dex, Dalvik still has issues because it
assumes a pre-odex file is always valid.)
Change-Id: I952c0d24f8975f75aff67f78b5faeec91144c3e7
Mac's linker doesn't support --start-group and --end-group; it scans
libraries repeatedly even without these options, so it's not necessary.
Change-Id: If22527e75470f7fa9452dc33efe4d40a60d0919a
Instead we should explicitly set up the dependency, if the module will
be used in the build process; Use LOCAL_MODULE_TAGS with eng, debug or
tests if the module is for testing; or add to PRODUCT_PACKAGES if it's
required by a product.
Change-Id: Ic26319c26c1166bc1062dfbcfb4e006af185249a
webviewchromium has some build rules which use a custom tool to create
.o files from other input (i.e. they are not prebuilt and so can't be
included in LOCAL_PREBUILT_OBJ_FILES). Support adding .o files to
LOCAL_GENERATED_SOURCES and doing the right thing with them (including
them in the static/dynamic library or executable being built).
Bug: 7714333
Change-Id: I3b1d29eeff30aebeafe33398f9bef2eb6972d997
You can dist the same file for multiple goals in multiple calls to
dist-for-goals. The first call will establish the real copy rule, while
the rest call just establishes the goals' dependency on the dest file.
This enable uss to remove the bizarre $(if ..) enclosing the droid and
sdk dist while avoiding make's multiple rules warning.
Change-Id: I76475db76a9e6167e0e606dd582b54e80dfcdd22
Trying to use reflection on classes loaded from a different ClassLoader
than the system one caused SecurityException since you can't load
certain packages.
Adding them to the boot classpath forces them to be in the same
ClassLoader.
Change-Id: Id518ab0a99da6defac525c0ad430a63f600ce85f
With this change, e2fsck is run only when you build the update.zip file,
which is built when "dist" is among the make command.
Bug: 7591683
Change-Id: I446b71d5aa9295aff3af622f115175f769746615
Previously, any target Java code that depends on framework.jar has to
wait for the library's javalib.jar.
To build javalib.jar we have to run dx, which is quite slow.
Actually when code links against framework.jar, only classes.jar is
needed.
This improves the potential parallelism of the build system.
Change-Id: I82c5926ef282a3a6096bbf49b54ef4f2a0c2c0e7
Make the host and the target x86 build more uniform by using the same machine flags.
Its unlikely Android has ever been built on a machine without SSE3 support.
Bug: 8068608
Change-Id: I19635528b61bf2c6faf02c2e575b1d9bf8025d3a
Output a meaningful error message, when OpenJDK is detected
instead of giving the "wrong java version" output.
That output confused several users (from experiences in IRC)
since it gives you an output like "You are using java
version 1.6.0, right version would be Java SE 1.6".
Change-Id: I31ceeb03f1f98524b2b7de9b8be45231985fdb9e
Signed-off-by: Tim Roes <tim.roes88@googlemail.com>
There is lurky bug in the previous logic I believe:
in rare cases, people saw almost all cleansteps rerun.
Anyway, it's very rare that you need to run cleansteps when you run mm/mmm.
Change-Id: I42e84b3bf01590712ba1b167fe9a500f4ae1ddde
Before this, if there are duplicate module names in both the host and
target spaces, LOCAL_SHARED_LIBRARIES results in mixed dependencies.
Bug: 7026946
Change-Id: I5407e3d078a8903c94978cc6d3e256851c52340f
Set ANDROID_BUILD_EVERYTHING_BY_DEFAULT to true to build everything by
default. You can set it in your .bashrc or buildspec.mk.
Change-Id: I0bc2461d0e17c63a6f1c439cdfaaa94e36483a02
Add -D_FORTIFY_SOURCE=1 to the default cflags
Update build rule for executable with PRIVATE_ALL_WHOLE_STATIC_LIBRARIES
Use single dash version of -print-whatever
compile everything with relro / bind_now
Enable NX protections
Some other cleanups to reduce differences between ARM and MIPS config files
Change-Id: I30b4de449e6353b581ef7f9437a3bb9be53d5bbf
Signed-off-by: Chris Dearman <chris@mips.com>
* commit '7ce7473f866fc5356291f38a3437a071ea5fd00d':
For the current MIPS compiler __builtin___clear_cache() generates synci instruction only with -msynci option So, add -msynci to all mips32r2 makefiles. Also add msynci to the list flags not recognized by clang.
If this is mm/mmm and there is no pre-existing clean_steps.mk.
Otherwise, the build system will run almost all the clean steps in the
sourcet tree if you do a full build next.
Change-Id: I5fe1e99c4f09629e4455319ea664cfba4ac634ea