Commit graph

8377 commits

Author SHA1 Message Date
Colin Cross
615d66e2c2 Merge "Make export_includes a restat rule" 2015-12-01 01:42:26 +00:00
Colin Cross
6b9bddde6f Make export_includes a restat rule
There is currently an intentional incremental rebuild issue with
import_includes.  export_includes might get updated with an identical
version, but we don't want to force everything downstream of it to
rebuild.

When BUILDING_WITH_NINJA==true, only update export_includes if it
changes, and use .KATI_RESTAT to only run downstream rules if it
changes.  import_includes will only be updated if one of the
export_includes files is updated, so object files can have a normal
dependency on import_includes instead of an order-only dependency.
All downstream object files will now be recompiled if their imported
include paths change.

Bug: 25910568
Change-Id: I626f3b24ac02ac1309049cf1ce66cfe8ec816513
2015-11-30 17:33:26 -08:00
Shinichiro Hamaji
89b255ab71 Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files
The same optimization was done for binaries in

https://android-review.googlesource.com/#/c/175250/

To create a TOC file from .jar files, this change introduces
ijar, which is designed for this purpose. Only #include lines
were modified from the original version.

https://github.com/bazelbuild/bazel/tree/master/third_party/ijar

Performance:

$ m && touch
frameworks/base/core/java/com/google/android/util/Procedure.java && time
m
Before: 4m30s (1580 targets)
After: 3m57s (772 targets)

Unfortunately, the improvement is small yet, but local
experiments showed we can cut ~2 more minutes if the similar
optimization is done for .dex files.

(cherry picked from commit c1f5d9c203)

Bug: 24597504
Change-Id: Iec3b2b0b0e674bee5d80cce3c300dc8fad6e7c13
2015-11-30 11:16:23 -08:00
Shinichiro Hamaji
2ff3ad9045 Merge "Revert "Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files"" 2015-11-27 03:59:30 +00:00
Shinichiro Hamaji
3ae7f66bab Revert "Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files"
This reverts commit c1f5d9c203.

Change-Id: I7e9969a060e3f1380154da65e76134168aee15d8
2015-11-27 03:58:51 +00:00
Paul Duffin
623799d3e0 Merge "Fix generated-sources-dir-for for COMMON" 2015-11-26 11:39:30 +00:00
Shinichiro Hamaji
c9a1b27845 Merge "Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files" 2015-11-26 05:25:58 +00:00
Paul Duffin
699a32217a Fix generated-sources-dir-for for COMMON
When the 4th argument specified is non-empty then it attempts to
use either HOST_OUT_GEN_COMMON or TARGET_OUT_GEN_COMMON
depending on whether the 3rd argument is non-empty or not
respectively. Unfortunately, those two variables do not exist,
the correct names for those variables is HOST_OUT_COMMON_GEN and
TARGET_OUT_COMMON_GET.

Change-Id: I66edb02824c06e0f504ebe04ff80ddbd77a16c95
2015-11-25 13:14:23 +00:00
Ying Wang
deeb2d2453 Merge "Fix typo." 2015-11-24 22:09:49 +00:00
Ying Wang
6cce4026ff Fix typo.
Change-Id: I299076791c620968fa7a5c420b5ca21ea4d30b51
2015-11-24 14:09:11 -08:00
Ying Wang
81bbac6a0f Merge "Don't delete META-INF in jack-java-to-dex when packing resources." 2015-11-24 21:58:06 +00:00
Ying Wang
3be52e6692 Don't delete META-INF in jack-java-to-dex when packing resources.
LOCAL_DONT_DELETE_JAR_META_INF is meant for deleting resources carried
by static Java libraries, see comment in clear_vars.mk.
For a module's own resources, we should pick up whatever in
LOCAL_JAVA_RESOURCE_DIRS.
The same applies  when building .jack from a  prebult jar in
transform-jar-to-jack.

Bug: 25860887
Change-Id: I20c120e039342a1124362c5f8747eace94b03931
(cherry-pick from commit 996ae38ffd)
2015-11-24 13:57:10 -08:00
Shinichiro Hamaji
84639d127b Merge "Prevent findleaves.py from traversing copies of $(OUT_DIR)" 2015-11-24 04:54:02 +00:00
Ying Wang
02bcb27b4a Increase droiddoc -J-Xmx to 1600MB.
As we occasionally see  java.lang.OutOfMemoryError when running
doc-comment-check-docs.

Bug: 25787786
Change-Id: I6c505c96ec36d09d28d400e03027b169870c49bb
2015-11-19 18:31:01 -08:00
Christopher Wiley
b2055df782 Merge "Fix race in C++ AIDL file generation" 2015-11-19 22:01:27 +00:00
Christopher Wiley
2d91c61ef0 Fix race in C++ AIDL file generation
The export_includes file for a library needs to express a dependency on
all generated exported headers.  For aidl generated headers, express a
dependency on the .cpp file instead, since the generator promises to
generate this file last.  Unfortunately, the C++ headers generated from
a .aidl file depend on the contents of the file.

Change-Id: I9402b364e4538b502c0958ac8c7bd72cb0add724
2015-11-19 13:52:15 -08:00
Colin Cross
7926e42209 Merge "Switch to using kati env script" 2015-11-19 21:11:01 +00:00
Christopher Wiley
0c595d4730 Merge "Export generated AIDL headers" 2015-11-19 19:17:47 +00:00
Christopher Wiley
c7e936f530 Export generated AIDL headers
It is common for developers to generate/compile AIDL in a static
library, then link that library into an executable.  When doing this,
developers need to export the generated headers.

Bug: 25779424
Test: a refactoring of the aidl Android.mk shows this works

Change-Id: I4f7d471a601d2a683cb5a9da5e02e3fab576c26a
2015-11-19 11:04:18 -08:00
Stephen Hines
af9e29d040 Merge "Rename AArch64 ASan target runtime library to match upstream convention." 2015-11-19 16:14:08 +00:00
Shinichiro Hamaji
6a378a3a7a Prevent findleaves.py from traversing copies of $(OUT_DIR)
by putting blank Android.mk and CleanSpec.mk in $(OUT_DIR).

Bug: 25732342
Change-Id: I3fcc4efddb9ee5ce309502e978f0589335af8371
2015-11-19 18:31:29 +09:00
Shinichiro Hamaji
c1f5d9c203 Use .KATI_RESTAT to reduce unnecessary rebuilds of .jar files
The same optimization was done for binaries in

https://android-review.googlesource.com/#/c/175250/

To create a TOC file from .jar files, this change introduces
ijar, which is designed for this purpose. Only #include lines
were modified from the original version.

https://github.com/bazelbuild/bazel/tree/master/third_party/ijar

Performance:

$ m && touch
frameworks/base/core/java/com/google/android/util/Procedure.java && time
m
Before: 4m30s (1580 targets)
After: 3m57s (772 targets)

Unfortunately, the improvement is small yet, but local
experiments showed we can cut ~2 more minutes if the similar
optimization is done for .dex files.

Bug: 24597504
Change-Id: Id54953aea25e497c8ebbe783b03f13b488577c6a
2015-11-19 17:10:35 +09:00
Stephen Hines
bf45029dc4 Rename AArch64 ASan target runtime library to match upstream convention.
Rename from
 libclang_rt.asan-arm64-android.so
to
 libclang_rt.asan-aarch64-android.so

Change-Id: I6d73f458f437440c1de5bc72d2188d392c80cb98
2015-11-18 22:13:16 -08:00
Dan Albert
2d6d5c6e53 Really allow overriding the LLVM prebuilts path.
Not sure why my previous testing was working without this, but kati is
a bit pickier about ?= vs :=.

Change-Id: I80243a3c93dec7fd9b8e6f92e2c6cc956706ace0
2015-11-18 18:01:31 -08:00
Colin Cross
ea20915b30 Switch to using kati env script
Kati generates a shell script to run ninja, but that makes it difficult
to customize the ninja command line.  Switch to sourcing the new env
script and then starting ninja manually.

Change-Id: I7139290a463018ddf5e05b4d61a0d2f18b1a2247
2015-11-17 12:10:13 -08:00
Colin Cross
d6f389299c Support LOCAL_ACP_UNAVAILABLE for prebuilts
Files built by soong will be installed using BUILD_PREBUILT, and may
include prerequesites of the acp binary.  Allow specifying
LOCAL_ACP_UNAVAILABLE:=true on prebuilts.

Change-Id: Iccfe61092f90b61f397a45f5334b0c1c0f439b32
2015-11-16 17:46:10 -08:00
Dan Albert
9119f14943 Merge "Allow overriding the LLVM prebuilts path." 2015-11-16 18:28:24 +00:00
Dan Albert
8b1d17706f Allow overriding the LLVM prebuilts path.
The automated build will need to do a two stage build, and we want to
do that without altering the source directory. Building with
`make LLVM_PREBUILTS_BASE=/path/to/prebuilts` will build using an
arbitrary toolchain instead of the installed one.

Bug: http://b/17441393
Change-Id: I4ff5c5224fbb8ebeb3a752907d6c4cd0a925aa1e
2015-11-13 23:06:07 -08:00
Sen Jiang
99d5f361b4 Merge "Write AB_OTA_POSTINSTALL_CONFIG to META/postinstall_config.txt." 2015-11-13 19:14:00 +00:00
Sen Jiang
8f22e2a0bb Write AB_OTA_POSTINSTALL_CONFIG to META/postinstall_config.txt.
The config file will be passed to delta_generator to add the postinstall
field in the update payload.

Bug: 24537566
Change-Id: I06b8d9d0b2c37f9a3e7a844ac4d9e2eead8cd4d2
TEST: make dist
2015-11-13 10:46:09 -08:00
Shinichiro Hamaji
21a18b7509 Use GOMA_HERMETIC=error for USE_GOMA=true build
With this flag, goma's client (gomacc) fails when local
compiler is different from goma's. Without this, goma's
backend finds a fallback compiler which looks closer to the
local compiler using version info, etc.

Bug: 25668061

Change-Id: I64ff81751f3fe960a557ddb2ca30a090c26c4327
2015-11-13 15:53:56 +09:00
Elliott Hughes
4b6bb08da3 Merge "Set WINVER as well as _WIN32_WINNT." 2015-11-13 03:09:25 +00:00
Dan Willemsen
67d993fc9c Merge "Sort dex and static lib resources" 2015-11-13 01:39:30 +00:00
Dan Albert
fd8c722714 Make not having Jack non-fatal.
Not every build needs Java.

Bug: http://b/17441393
Change-Id: Ia55742cfd43c3a4f9c7873b87816bcce99f8156f
2015-11-12 15:29:12 -08:00
Dan Albert
52831d118c Allow globally disabling the relocation packer.
The relocation packer is part of prebuilts/misc, and pulling that
repository into the manifest requires pulling in a lot of other things
not needed by the simpler builds (like the clang toolchain manifest).

Bug: http://b/17441393
Change-Id: If4a94804fc1a3f81215b840247f8e332d0b510c1
2015-11-12 15:27:49 -08:00
Elliott Hughes
cf1c15c975 Set WINVER as well as _WIN32_WINNT.
Change-Id: I6ace26d6c25549cf42755423340af07e96e05779
2015-11-12 13:33:20 -08:00
Tao Bao
79dd4b2983 Merge "build: Remove check_prereq." 2015-11-12 16:41:45 +00:00
Yohann Roussel
94f86f8877 Sort dex and static lib resources
Before adding them to the apk or javalib.jar. This allows the entries
order to be reproducible and will help to have a reproducible build.

Bug: 25629246

Change-Id: Ie596aecfdd08047ea9f9071896a2b980e7200b41
2015-11-12 14:58:19 +01:00
Tao Bao
cb4abef523 build: Remove check_prereq.
check_prereq is a tool for recovery API v2, which has been obselete
since we moved to v3 in [1].

[1] commit e08991e02a7d678f2574e85289a34b2a9a537c82

Bug: 24621915
Change-Id: Ie96348fb56c5a3e029cac2417b59d8eb62dc085b
2015-11-11 21:26:29 -08:00
Dan Willemsen
5c64b4e81c Make uncompressing jni libs in prebuilt APKs reproducible
This was extracting the shared libraries into a temporary directory,
then adding them back into the zip file using the raw filesystem
ordering. Fix that by passing a sorted list to zip.

Bug: 24201956
Change-Id: I59c41151968be6faf289e04719a9992157eb405d
2015-11-11 18:26:38 -08:00
Chih-hung Hsieh
98c27a83da Merge "Revert "Enable gold linker for aarch64."" 2015-11-12 01:04:06 +00:00
Chih-hung Hsieh
65c7b5c6d6 Revert "Enable gold linker for aarch64."
This reverts commit a7f68ee9ea.

Change-Id: I8c15df8ce81859f1b950dbac0a47d7d24c0f4cc2
BUG: 25642296
2015-11-11 23:07:01 +00:00
Ying Wang
d1fd823f33 Merge "Add suffix .so to use directly libart.so" 2015-11-11 22:05:48 +00:00
randy.jeong
59bdffa76a Add suffix .so to use directly libart.so
It should be the complete name with suffix .so to use libart.
At present, unnecessarily falls back like below.
"Falling back from libart to libart.so after dlopen error:
dlopen failed: library "libart" not found"

Change-Id: Ie5da35a71d6661434d2097c842407e6a254f8f58
Signed-off-by: randy.jeong <randy.jeong@samsung.com>
2015-11-10 16:42:49 +09:00
Stephen Hines
e8119e96fc Switch from clang 3.6 to new clang repository (with 3.8).
This reverts commit f7dbab16ff.

Bug: 23396112

Switch from "-fsanitize-undefined-trap-on-error" to
"-fsanitize-trap=all". The former ends up accidentally leaving
unresolved calls to __ubsan* helper functions in the object file with
clang 3.8. The latter is used when we don't include address sanitizer,
and replaces any misbehavior with a direct call to abort().
2015-11-09 16:32:11 -08:00
Lee Campbell
b463fcde80 build: Add LINUX_KERNEL_COPYING license file
The build requires LINUX_KERNEL_COPYING when building
the notices. Change from depending on a file in
prebuilds/qemu-kernel to one in /build/core.

This is required as Brillo does not have the qemu-kernel
in its checkout.

BUG=25578534

Change-Id: Ieff6970035d27884c0769106e507284c1096c33f
2015-11-09 02:27:01 +01:00
Ying Wang
a23a97e3bf Merge "Tag "tests" alone doesn't prevent including emma.jar" 2015-11-06 19:27:52 +00:00
Ying Wang
324ffb2785 Tag "tests" alone doesn't prevent including emma.jar
Only if an app has LOCAL_INSTRUMENTATION_FOR, it can get the emma
classes from the target app and we don't need to instrument the test app
itself.

Change-Id: If0fba50ddae757254fc58ca104d729d61603fd78
2015-11-06 11:22:28 -08:00
Steve Fung
53a6fd6498 Merge "Add the build type to META folder in target files.zip" 2015-11-06 03:18:35 +00:00
Steve Fung
4044b38f0a Add the build type to META folder in target files.zip
For AB builds, add the build type to META/build_type.txt so the
server can easily determine user, userdebug, and eng builds
from each other.

Bug: 25420005
Change-Id: I6e4de2ba36a6fd1208c65a434d4725bb93d2cee6
2015-11-05 15:04:11 -08:00