Commit Graph

10747 Commits

Author SHA1 Message Date
Treehugger Robot fce41130cc Merge "Cleanup NATIVE_COVERAGE, PRIVATE_ARFLAGS" 2016-10-22 03:02:52 +00:00
Dan Willemsen 9f95665022 Cleanup NATIVE_COVERAGE, PRIVATE_ARFLAGS
Disable the NATIVE_COVERAGE code when not in use. Provide the proper
PRIVATE_ variables so that the $DISPLAY environment variable isn't
encoded into the ninja file.

Remove PRIVATE_ARFLAGS, which is never set.

Test: compare build-aosp_flounder.ninja
Test: NATIVE_COVERAGE=true build-aosp_flounder.ninja, inspect
Change-Id: I2a52de440fd991cdc5761ff8bd58a474892d2dfc
2016-10-21 16:40:19 -07:00
Treehugger Robot fe3e1818e5 Merge "Don't pass -Wl,--no-undefined to host targets" 2016-10-21 23:00:35 +00:00
Chih-hung Hsieh 461a15d0d9 Merge "Remove valgrind from the exception list." 2016-10-21 05:05:30 +00:00
Dan Willemsen 4e5df99720 Merge "Remove variables exported by Soong" 2016-10-21 01:08:51 +00:00
Colin Cross a82fa12c54 Don't pass -Wl,--no-undefined to host targets
Host builds were compiling without -Wl,--no-undefined because of an ASAN
issue.  Pass -Wl,--no-undefined for host builds unless sanitzers are
enabled.  Also fix LOCAL_ALLOW_UNDEFINED_SYMBOLS on darwin, where
disallowing undefined symbols is the default.

Test: m -j host
Test: m -j SANITIZE_HOST=address host
Bug: 32305815
Change-Id: I0344c321610c55eb8b2092b01e50e4a93a0e85df
2016-10-20 16:25:18 -07:00
Colin Cross e56e356c46 Use default -std values exported from soong
Test: builds
Change-Id: Ic7b7d226131a2a0ea1f099f8a0fc895448384081
2016-10-20 14:09:24 -07:00
Dan Willemsen db3bfcea66 Remove variables exported by Soong
These are all variables that we export from Soong, and are only used
after Soong's make_vars.mk is read.

Test: Compare build-aosp_flounder.ninja before/after -- only whitespace
Change-Id: Ibb6c6d7bc00ff5840a72c2bba5d97ac4b4724df3
2016-10-18 17:26:07 -07:00
Ryan Campbell 20f301f4bb Define coverage paths using comma-separated list.
Change COVERAGE_PATHS to access a comma-separated list of paths
instead of a space-separated list to make for easier escaping in
configuration files.

Test: tested using local bullhead build with coverage on lights and nfc
Change-Id: Iec014c8b4fbefcbcc5d865e6acba92bf6364ee3a
2016-10-18 10:25:15 -07:00
Treehugger Robot 3372ce615a Merge "Fix bug preventing multi-module native coverage." 2016-10-18 00:43:10 +00:00
Treehugger Robot e5d1926c61 Merge "Add a dist goal for the NDK." 2016-10-17 22:59:17 +00:00
Ryan Campbell 4a3be3db47 Fix bug preventing multi-module native coverage.
Fix a whitespace bug causing coverage to be enabled on all modules
whenever more than one module is specified. This is caused by
comparing whitespace to the empty string, which are not equal. Fix
by stripping the output to check for path matches.

Test: tested using local build with coverage enabled on NFC, lights
Change-Id: I61a775cfd135f94ea1e1ee9fdbed3c64c5bb1a2e
2016-10-17 15:43:21 -07:00
Dan Albert 4d323338fe Add a dist goal for the NDK.
Test: make sdk dist
Bug: None
Change-Id: I07dfc73e3cea5afebcf5ed10cf860eb3f33cbff6
2016-10-14 16:45:30 -07:00
Sasha Levitskiy 4a34533e11 build: tools: Add json collection of installed files with hashes.
Adds installed-files.json in addition to installed-files.txt
Further sorts the file list to be ordered within the same size bucket.

Test: manual, cross-checked checksums with sha256sum utility
      checked build outputs.

Bug: 19988819
Merged-in: Ifb632eb4df65ec48645c8f93e36bae44ccc52ba8
Change-Id: Ifb632eb4df65ec48645c8f93e36bae44ccc52ba8
Signed-off-by: Sasha Levitskiy <sanek@google.com>
2016-10-14 16:29:16 -07:00
David Srbecky 5ccc874ba1 Merge "Generate SHA-1 build ID for host-generated *.oat files (2/2)." 2016-10-13 12:52:31 +00:00
Chih-hung Hsieh 355e96774b Merge "Add -Werror to compile warning free projects." 2016-10-13 00:42:01 +00:00
Andreas Gampe da6ddc4086 Build: add preloaded-classes and compiled-classes dependency
Make the ART boot image compilation rule depend on the files
influencing the layout and contents of the image. Required for
incremental builds.

Bug: 32107291
Test: m
Test: echo "android.util.MutableChar" >> frameworks/base/compiled-classes-phone && m
Test: rm frameworks/base/compiled-classes-phone && m
Change-Id: I7b7438672460d8d9d2c8b08b8e7c3cbde8d07a1a
2016-10-12 09:35:39 -07:00
Chih-Hung Hsieh bab0488828 Add -Werror to compile warning free projects.
* Add -Werror if LOCAL_PATH is in the WARNING_DISALLOWED project list,
  or not in the WARNING_ALLOWED project list.

Test: Build for major targets.
Change-Id: I12235ee1ca1c1837530693699e705e1955275565
2016-10-11 15:38:39 -07:00
Chih-Hung Hsieh 2ce51fc365 Remove valgrind from the exception list.
Now valgrind is built with clang/llvm for
the host and all supported targets.

Bug: 28454823
Test: build
Change-Id: Icb4bb7626a79aa309cec2b396cbd8f155895c901
2016-10-11 15:36:04 -07:00
Treehugger Robot 01bd1d34db Merge "Make AVB work when BOARD_USES_RECOVERY_AS_BOOT is set to true." 2016-10-07 19:44:37 +00:00
Guang Zhu 24dd78a2d7 Merge "remove use of CTS_TESTCASES_OUT" 2016-10-07 01:15:17 +00:00
Treehugger Robot daba887656 Merge "Use ASAN prebuilts if SANITIZE_HOST includes address" 2016-10-07 01:08:07 +00:00
Guang Zhu 29fe14721e remove use of CTS_TESTCASES_OUT
Bug: 31788743
Test: $ make cts dist
      # check contents of generated package and API coverage
      # report
      $ make checkbuild

Merged-In: Ieec069bafbcc6df5a5b3b06befb4a3a5678a06fd
Change-Id: Ieec069bafbcc6df5a5b3b06befb4a3a5678a06fd
(cherry picked from commit f8f0880b3b8fb6a80ed766068d5f1714625b8960)
2016-10-06 16:57:39 -07:00
Treehugger Robot 157ad04cfc Merge "Replace product variable stashing with .KATI_READONLY" 2016-10-06 23:41:30 +00:00
Ryan Campbell 56b5030eac Merge "Support multiple arch for coverage packaging." 2016-10-06 23:25:09 +00:00
David Zeuthen b2fea5878c Make AVB work when BOARD_USES_RECOVERY_AS_BOOT is set to true.
Often BOARD_USES_RECOVERY_AS_BOOT is used together with
BOARD_BUILD_SYSTEM_ROOT_IMAGE, but with this combination we're currently
not adding a hash footer to boot.img. Fix this.

Bug: 31119415
Test: Built with BOARD_USES_RECOVERY_AS_BOOT set to true and inspected images.
Merged-In: If033e5c93f5b71fd17405af7d970dc3f0540a1d2
Change-Id: I2f10bbffb0ba2467d53e3e62d5379c3ab7236063
2016-10-06 15:15:00 -04:00
Dan Willemsen c1f17ffc7d Replace product variable stashing with .KATI_READONLY
Instead of using rot13 / rot26, use the Kati extension to mark these
variables as readonly.

Move $(strip) for a few variables to before they're marked readonly. Use
a different variable for modifications to BOARD_KERNEL_CMDLINE in
build/core/Makefile.

Test: build/tools/kati_all_products.mk on AOSP and internal master
Test: build-aosp_bullhead.ninja the same before / after
Change-Id: If98b24af763831a9c5c2de38037a69ab1bf9e023
2016-10-06 10:50:26 -07:00
Dan Willemsen 3b4d17ffe7 Use ASAN prebuilts if SANITIZE_HOST includes address
Test: SANITIZE_HOST=address m -j showcommands
Change-Id: Ifdca98d5fa32867005ace99e1eb5188e22923ac6
2016-10-05 23:26:24 -07:00
Alexey Alexandrov e469063a93 Generate SHA-1 build ID for host-generated *.oat files (2/2).
For host-generated *.oat files, generate a SHA-1 build ID based on the
file content and write it to .note.gnu.build-id ELF section.  This
should allow various developer tools like profilers correlate the data
captured for files like boot.oat on the device with the corresponding
known version of the file during an offline analysis.

Test: Verified that boot.oat contains the build ID section now.
Test: make test-art-host
Bug: 31292208
Change-Id: Iee48e437009488f20995e73868d5059d349701c0
2016-10-05 19:20:36 -07:00
Dan Willemsen 4c364620ac Add tool to run kati for all products
Test: get_build_var all_named_products
Test: build/tools/kati_all_products.sh
Change-Id: I3496cb4c59a1edb11c9149b95ecabd3a828b8972
2016-10-05 14:04:21 -07:00
Dan Willemsen 6f21a29a2c Remove redundant LIBART_IMG_{HOST,TARGET}_BASE_ADDRESS
These are exported by Soong. Caught by an upcoming change to mark
Soong-exported variables as readonly.

Test: Manual checking that the values are still the same.
Change-Id: I18e2bca588c57809c16a9f0c386aad432bfbee2c
2016-10-04 22:28:49 -07:00
Colin Cross 7bc7704921 Merge "Fix empty mac .toc generation" 2016-10-05 02:35:02 +00:00
Colin Cross cff9a64a48 Fix empty mac .toc generation
If a shared library has no exported symbols grep will return exit code
1 meaning no matches, but this should not be considered an error
during toc generation.

Test: external/clang/build.py
Change-Id: If589da38ad8b844fe1aff4738481cebea75cca42
2016-10-04 17:01:29 -07:00
Colin Cross ae58e2bfa5 Don't prune $(OUT_DIR) from findleaves.py
Pruning $(OUT_DIR) can be overaggressive if $(OUT_DIR) matches the name
of any directory in the source tree that contains Android.mk files.
Pruning $(OUT_DIR) is no longer necessary, as one of the first things
the build system does is put an empty Android.mk file in there to avoid
recursing into it.

Bug: 31941856
Test: m -j OUT_DIR=angler
Change-Id: I7c5e95816f35bd5906845716d56cca76de7fa1ad
2016-10-04 16:35:21 -07:00
David Zeuthen 70209ad9f0 Merge "Make room for AVB hashtree and metadata." 2016-10-04 22:32:27 +00:00
Chih-hung Hsieh 4b4b2da13d Merge "Accept environment variables DEFAULT_*_TIDY_CHECKS" 2016-10-04 22:25:26 +00:00
David Zeuthen 4014a9daa7 Make room for AVB hashtree and metadata.
While the system.img images currently built with AVB support verify
correctly, mounting the filesystem content fails. This is because
'avbtool add_hashtree_footer' used to claim some of the unused /
DONT_CARE space for stashing the verity tables and this resulting in the
mapped device ending up being smaller causing the mount failure.

Fix this by leaving enough room for AVB hashtree and metadata before
building the image. This is achieved by moving the AVB hashtree support
into build_image.py and using a just added '--calc_max_image_size'
option to 'avbtool add_hashtree_footer' to figure out how much space to
leave out.

This depends on https://android-review.googlesource.com/#/c/281821/

Bug: 31264226
Test: Mounting dm-verity set up from system.img now works.

Merged-In: I4c5de1004c1059f8c582e76b3b8517d427aa1a87

Change-Id: I945a5f1f6782791736cd319f216cfa6b448fb04d
2016-10-04 17:32:16 -04:00
Chih-Hung Hsieh 8fdda6e495 Accept environment variables DEFAULT_*_TIDY_CHECKS
* Define DEFAULT_GLOBAL_TIDY_CHECKS/DEFAULT_EXTERNAL_VENDOR_TIDY_CHECKS
  only if it is not already defined.

Bug: http://b/27779618
Test: build with WITH_TIDY=1 and define those variables.
Change-Id: I201c9da3769d6ef658a75d4a1bf42ec6816d4069
2016-10-04 10:18:02 -07:00
Ryan Campbell c209ef8ce1 Support multiple arch for coverage packaging.
Modify copy rule to support multiple architectures. Use a method
similar to symbols.

Test: make lights.bullhead NATIVE_COVERAGE=true COVERAGE_PATHS=test/vts/hals/light/
Bug: 31911253
Change-Id: Ib3c53b4b305cbfcfd186010c5500b8d678190ddf
2016-10-03 18:23:40 -07:00
Colin Cross d2ff157159 Enable toc optimization for host builds
The toc optimization had been disabled for host builds to ensure that
the timestamp of the final binary changed whenever its implementation
changed, in order to support rerunning host tools that were modified
during incremental builds.  However, only the final install rule must be
re-run to update the timestamp, and not the link rule.

Update the shared library install dependencies to use normal
dependencies instead of order-only dependencies for host modules, and
then enable the the toc optimization for host modules.  If the
implementation of a library changes it will be reinstalled, and
libraries or binaries that depend on it will also be reinstalled.

Bug: 26015464
Test: m -j; touch art/disassembler/disassembler_x86.cc; m -j, verify
      out/host/linux-x86/bin/oatdump is updated
Change-Id: I0a14decc1994eb55ad269d841943aef66e320c63
2016-10-03 17:53:44 -07:00
Colin Cross a5471a6723 exec makeparallel
bash doesn't kill children when it receives SIGTERM.  Since makeparallel
is the last command run by the shell, run it with exec to replace the
shell with makeparallel so make can send the signal directly to
makeparallel.

Bug: 31907490
Test: m -j & killall make; pgrep -a makeparallel
Change-Id: If8aeb51ec224234da5f05eae3382ce77f48a57e2
2016-10-03 15:33:06 -07:00
Colin Cross 647d383788 Revert "Remove -d keepdepfile from ninja command line"
This reverts commit 4aca571552.

Test: builds
Change-Id: Iddb3517a4596e84404db1738fa95eb15f435a42d
2016-10-03 15:28:58 -07:00
Dan Willemsen f009531772 Merge "Optimize rebuilds by reducing $(shell) usage" 2016-10-03 21:20:36 +00:00
Dan Willemsen b011810c25 Optimize rebuilds by reducing $(shell) usage
$(shell) isn't particularly fast in Kati, and they have to be executed
both when reading the makefiles and determining whether the ninja file
needs to be regenerated.

Right now, the regen time is mostly hidden because we run them in
parallel. We've also configured it to ignore any commands that contain
"echo", "date", or the output directory. That happens to remove most
commands that contain side effects, so running them in parallel is fine.

But the side effects contain some important things, like the clean up
necessary when switching products. So I'm removing those filters, and
then we'll need to run the shell commands in sequence, since there will
be side-effects. That makes regen take longer though, so use pure-Make
implementations instead of $(shell) where possible.

This set of changes reduces aosp/master aosp_arm64-eng build $(shell)
usage and time by 2/3:

*kati*: func shell time: 3.135095 / 709
*kati*: func shell time: 1.067331 / 236

Bug: 30947985
Test: Manual test lines for math functions
Test: Compare build-aosp_arm64.ninja before/after
Change-Id: I4fc9d6318957992921972994f277c17918e7e1eb
2016-09-30 21:14:13 -07:00
Dan Willemsen 847d965b9e Merge "Remove LOCAL_CTS_GTEST_LIST_EXECUTABLE" 2016-10-01 01:43:37 +00:00
Treehugger Robot 3d38042a00 Merge "Use DEFAULT_EXTERNAL_VENDOR_TIDY_CHECKS for vendor/google_devices" 2016-09-30 23:25:17 +00:00
Chih-Hung Hsieh 10efc73c06 Use DEFAULT_EXTERNAL_VENDOR_TIDY_CHECKS for vendor/google_devices
Many source files under vendor/google_devices
are old third party code with too many clang-tidy
misc-macro-parentheses warnings.

Test: build with WITH_TIDY=1
Change-Id: I79248af3ece9c7a4436b8cf5e6c25f224fd8201b
2016-09-30 14:50:43 -07:00
Dan Willemsen 3aa39a4903 Remove LOCAL_CTS_GTEST_LIST_EXECUTABLE
The one user has now been removed, so this is no longer necessary.

Test: None
Change-Id: I8fb9e7b90f664af616368685d81f8b10d0687306
2016-09-29 22:37:04 -07:00
Treehugger Robot 1c0b5eaf83 Merge "Add LOCAL_EXPORT_C_INCLUDE_DEPS" 2016-09-30 01:38:04 +00:00
Dan Willemsen ba6a164da7 Add LOCAL_EXPORT_C_INCLUDE_DEPS
This shouldn't be necessary for most makefiles, since we add
$(LOCAL_GENERATED_SOURCES) to this already included, but for prebuilts
that aren't actually prebuilts (Soong modules), we need to pass
dependencies so that the generated headers are built before being used.

Bug: 31742855
Test: Use, inspect build-*.ninja
Change-Id: I8d9f675af639d3f40780d48a016fc079a82531c2
2016-09-29 12:08:29 -07:00