Commit Graph

48098 Commits

Author SHA1 Message Date
Treehugger Robot
e8f1a420bc Merge "Don't depend on classes-header.jar when turbine is disabled" 2019-01-21 21:55:14 +00:00
Colin Cross
b405fe3765 Don't depend on classes-header.jar when turbine is disabled
TARGET_BUILD_APPS sets TURBINE_ENABLED := false, which triggers
an issue where a dependency is added on classes-header.jar but
there is no rule to create it.  Skip creating the dependency
when TURBINE_ENABLED is false for now.

Bug: 123183568
Test: m TARGET_PRODUCT=mainline_modules_arm UNBUNDLED_BUILD_SDKS_FROM_SOURCE=true TARGET_BUILD_APPS=com.android.media
Change-Id: I8ec3e244b8f9618c58f4ac57329a5a07f01dc797
2019-01-21 10:59:42 -08:00
Logan Chien
86eeedbcc7 Add $(SOONG_OUT_DIR)/ndk/% to artifact whitelist
This commit adds `$(SOONG_OUT_DIR)/ndk/%` to artifact whitelist so that
when NDK stub libraries won't be blocked by artifact path requirements.

This commit does not break the integrity of artifact path requirements
because they are not installed to devices.

Bug: 123053270
Bug: 119084334
Test: lunch aosp_crosshatch-userdebug
Change-Id: Ieea76a8126269f53b0a58bd069b449a9f9b1263a
2019-01-21 14:34:19 +00:00
David Brazdil
4ac7810755 Merge changes from topics "coreapi-flag", "coreapi-stubs-csv"
* changes:
  hiddenapi: Process core.platform.api.stubs
  Replace hiddenapi-{public,private}-list.txt with a CSV file
2019-01-21 14:31:05 +00:00
Logan Chien
0e53d887d6 Add prebuilt ELF binaries checker
This commit introduces a prebuilt ELF binaries checker.  The checker
will check:

1. Whether all DT_NEEDED shared libraries are specified in
   `shared_libs` (Android.bp) or `LOCAL_SHARED_LIBRARIES` (Android.mk).

2. Whether all undefined symbols in the prebuilt binary can be resolved
   to defined symbols exported by its dependencies.

This ensures that prebuilt binaries won't silently become ABI
incompatible.

To check the prebuilt binaries, all of the dependencies must be
specified in `shared_libs` (Android.bp) or `LOCAL_SHARED_LIBRARIES`
(Android.mk).

If your prebuilt binaries cannot be checked for some reason, you may add
the following property to Android.bp:

    check_elf_files: false,

Or, add the following setting to Android.mk:

    LOCAL_CHECK_ELF_FILES := false

Bug: 119084334
Test: CHECK_ELF_FILES=true make check-elf-files
Change-Id: I523d3083f22fd4053c096d26f61f8375800281c8
2019-01-21 21:35:01 +08:00
David Brazdil
96e973b304 hiddenapi: Process core.platform.api.stubs
Pass @CorePlatformApi stubs to the `hiddenapi` singleton rule which
generate a CSV of all public or domain API flags.

Bug: 119068555
Test: m appcompat
Test: dexlayout <core-oj jar> | grep CORE-PLATFORM-API
Change-Id: I597ee330835e564d61cfac44497e762b552b901c
2019-01-19 15:57:35 +00:00
David Brazdil
fc274bab4d Replace hiddenapi-{public,private}-list.txt with a CSV file
`hiddenapi` is being refactored to work with a single CSV file as
opposued to a multitude of text files (one per flag). This patch
changes the singleton rule for listing public/private APIs from
stubs to expect a CSV as an output.

Bug: 119068555
Test: compiles, hiddenapi-flags.csv unchanged
Change-Id: If56c7ab8a4c3bbd33e447ef0dfd33f2c303a937c
2019-01-19 15:57:35 +00:00
Dan Willemsen
241d7cdba0 Merge "Add previously debug-tagged modules" 2019-01-19 07:39:56 +00:00
Treehugger Robot
082fd2c5bc Merge "Move UPDATABLE_BOOT_(MODULES|JARS) to base_system.mk for further extension" 2019-01-19 04:37:13 +00:00
Colin Cross
3087d93cc6 Merge "Build docs zips with make docs" 2019-01-19 04:09:20 +00:00
Treehugger Robot
6bd6318880 Merge "Define non-system module as variable" 2019-01-19 01:48:39 +00:00
Evgenii Stepanov
ffaf4815fc Merge "Limit 2 uses of SANITIZE_TARGET to ASan." 2019-01-19 01:32:51 +00:00
Yifan Hong
45433e44dd Really support removing / adding partitions.
- When removing a partition, BlockDifference() object
will have tgt=EmptyImage(). Fix the asserts accordingly.
Also, BlockDifference object now allow tgt=None case.

- When adding a partition, BlockDifference() object
will have src=None. Fix the asserts accordingly.

Also, add unit tests to DynamicPartitionsDifference.

Test: create incremental OTA
Test: test_common.DynamicPartitionsDifferenceTest
Bug: 111801737

Change-Id: I3a35378ecf93111b8f44545cff6ae9696b6b4851
2019-01-18 17:09:33 -08:00
Dongwon Kang
167758a153 Move UPDATABLE_BOOT_(MODULES|JARS) to base_system.mk for further extension
Test: build & boot
Bug: 112766913

Change-Id: I5af02d44c4b4163acdc4e3078dcebd84556ee049
2019-01-18 17:06:18 -08:00
Treehugger Robot
215e2c828c Merge changes I685ab841,I6ab7e488
* changes:
  Add PRODUCT_BUILD_*_IMAGE, BUILDING_*_IMAGE to control building of images
  Always package ext filesystem tools
2019-01-19 00:18:02 +00:00
Colin Cross
103d6e8856 Build docs zips with make docs
The docs zips were being built for make docs dist but not for
make docs.  Add them to ALL_DOCS and to the $(LOCAL_MODULE)
phony rule.

Bug: 123068677
Test: m docs
Test: m ds-docs
Change-Id: I32634c05e392f7a5483c81d59de35ca9bc4d4ad0
2019-01-18 16:08:14 -08:00
Dan Willemsen
ec6cc8521d Add previously debug-tagged modules
These all had `LOCAL_MODULE_TAGS := debug`

Test: treehugger
Change-Id: I848d1d9fb7e9921827ef6b5b72376710150ce839
2019-01-18 15:51:41 -08:00
Treehugger Robot
5f93c3a929 Merge "Add PROGUARD_HOME and PROGUARD_DEPS" 2019-01-18 22:18:50 +00:00
Treehugger Robot
12e7e928a2 Merge "Move HIDDENAPI_FLAGS dependencies to frameworks/base" 2019-01-18 22:13:53 +00:00
Evgenii Stepanov
60beecc90c Limit 2 uses of SANITIZE_TARGET to ASan.
These two places are checking for ifdef(SANITIZE_TARGET) but what
they are really looking for is the second stage of ASan build.

Fix the checks so that they do not apply to HWASan.

I have not seen any change in behavior, but there are some new files
under /system in hwasan build that were not there before, and things
keep working in general, so this feels like the right move.

Bug: 112438058
Test: none; SANITIZE_TARGET=hwaddress keeps working
Change-Id: I4544f408263b908be6ef4a47dd2b5c937e0c1f33
2019-01-18 14:06:11 -08:00
Dan Willemsen
674952098b Add PRODUCT_BUILD_*_IMAGE, BUILDING_*_IMAGE to control building of images
These centralize the decisions on whether to build certain images or
not, and allow the product definition to override that choice.

There are a few use cases here:

 * For GSI-like cases, we only want to build the system image. This
   didn't really change, but it's somewhat simpler to configure, and
   easier to understand the build logic.

 * On the opposite side, when you're planning on using a GSI, the device
   specific build can only build the vendor images (or some other set).

 * Some cases (Fuchsia, etc) don't want to build any images, as they'll
   be distributing the build artifacts in their own packaging.

I suspect in the future, TARGET_BUILD_APPS may be able to be refactored
into the third use case.

Test: treehugger
Test: Create a product definition that includes nothing, try to build it.
Test: compare build-aosp_crosshatch.ninja and build-crosshatch.ninja before/after
Change-Id: I685ab841be3718d3dd7052c28ccd764bb6f1991a
2019-01-18 13:11:34 -08:00
Dan Willemsen
df0808331d Always package ext filesystem tools
Every target we have needs these now.

Test: treehugger; codesearch
Change-Id: I6ab7e48887b19f956b2a7aeac78169f0e2035c73
2019-01-18 10:44:34 -08:00
Colin Cross
7cda7650da Merge "Separate dexpreopt deps from stripping deps" 2019-01-18 15:34:41 +00:00
David Brazdil
38f19aac1f Move HIDDENAPI_FLAGS dependencies to frameworks/base
Recent move of hiddenapi rules to soong sets the dependencies of
the hiddenapi_flags.csv rule in dex_preopt.mk but doesn't check
for existence of "frameworks/base" as the hiddenapi-generate-csv
rule in frameworks/base. Solve this by removing the dependency
injection and using the SOONG_HIDDENAPI_FLAGS variable directly
in frameworks/base.

This is necessary because go/art-build creates a fake
hiddenapi_flags.csv and if there is a dependency injection rule,
a phony target is created and all dependencies of flags.csv need
to be satisfied.

Test: master-art compiles
Change-Id: I13ef5e7ec167f9372a5629fe1894c7acd4091d29
2019-01-18 15:11:01 +00:00
Jeongik Cha
83c50324ca Define non-system module as variable
Define non_system_module in base_rules.mk when the module is product, vendor,
product_services or proprietary module.

Bug: 74699609

Test: m -j
Change-Id: Iebdd3ec8c643be3d9877b7a96cbdd83465fa3878
2019-01-18 18:24:30 +09:00
Dan Willemsen
4a9a24481d Add PROGUARD_HOME and PROGUARD_DEPS
So that we can pass this into MAINDEXCLASSES.

Fixes: 122988865
Test: OUT_DIR=$HOME/out mmma frameworks/base/core/tests/hosttests/test-apps
Change-Id: I955d3de46d348e3573a6773f69149e7cabab8904
2019-01-17 23:04:27 -08:00
Treehugger Robot
aa58210dd0 Merge "build_image: Increase spare inodes to 12." 2019-01-18 02:06:46 +00:00
Colin Cross
ded0aec988 Separate dexpreopt deps from stripping deps
The strip rule does not need to wait for the boot image to finish,
create a separate DEXPREOPT_STRIP_DEPS list that only contains
tools used by GenerateStripRule in build/soong/dexpreopt/dexpreopt.go.

Bug: 123038675
Test: m checkbuild
Change-Id: I0814c8d99781533f5778e14547d3e9671e06317f
2019-01-17 16:41:36 -08:00
Colin Cross
d61a1aba36 Merge changes from topics "hiddenapi-soong", "hostdex_install"
* changes:
  Move hiddenapi to Soong
  Simplify soong_java_prebuilt.mk and soong_app_prebuilt.mk
2019-01-17 22:53:24 +00:00
Xin Li
ab9de0ab6e Merge "DO NOT MERGE - Merge pie-platform-release (PPRL.190105.001) into master" 2019-01-17 21:19:43 +00:00
Mark Salyzyn
60fa99d491 build_image: Increase spare inodes to 12.
Test: builds device with DAP
Change-Id: I816a7da54bbe23d4eb1140ac0d101c0fee175f0a
2019-01-17 11:30:12 -08:00
Colin Cross
49adea3bd8 Move hiddenapi to Soong
Perform hiddenapi CSV generation and dex encoding for Soong modules
in Soong.  This fixes an issue where dexpreopting was happening on
a different jar than was being installed.

Bug: 122856783
Test: m checkbuild
Change-Id: I24a235c63ff62fed7e1af9f2fd17e55b0c1598a5
2019-01-17 10:23:10 -08:00
Colin Cross
83b7bdf765 Simplify soong_java_prebuilt.mk and soong_app_prebuilt.mk
Simplify importing Soong modules into Make by always copying
LOCAL_PREBUILT_MODULE_FILE to LOCAL_BUILT_MODULE, which lets
Soong pick the final output file instead of trying to figure
out which of the various intermediate files should be the
output file.

Also fixes an issue where hostdex modules could attempt to
copy to both $(common_javalib.jar) and $(LOCAL_BUILT_MODULE),
which are the same file for host java modules.

Test: set compile_dex:true on core.platform.api.stubs. no warnings
      of target overriding
Test: m checkbuild

Change-Id: I2e089012436fe8649db82a673d446d1c5a73a731
2019-01-17 10:23:06 -08:00
Nicolas Geoffray
85437e248d Merge "dex_preopt: differentiate between updatable boot jars and non-updatable boot jars." 2019-01-17 18:08:13 +00:00
Tianjie Xu
ffc87ac0a7 Merge "blockimgdiff: selectively convert 'diff' commands to 'new' to reduce stash size" 2019-01-17 16:54:04 +00:00
Nicolas Geoffray
6ce12f56de dex_preopt: differentiate between updatable boot jars and non-updatable boot jars.
bug: 119868597
Test: m
Change-Id: I2f12ed6f37b629effc30e7b0c3310dc32e5ff4c8
2019-01-17 14:35:41 +00:00
Treehugger Robot
0a8750b3da Merge "Change the impl lib name of java_sdk_library" 2019-01-17 10:01:37 +00:00
Sundong Ahn
a9f2ef5ed1 Change the impl lib name of java_sdk_library
The impl lib name of java_sdk_library is changed to {module_name}.jar
instead of {module_name}.impl.jar

Bug: 110404779
Test: m -j
Change-Id: I275cd40e3682640b96425e56698cea770888cbb1
Merged-In: I275cd40e3682640b96425e56698cea770888cbb1
(cherry picked from commit 0372f189ac)
2019-01-17 09:42:57 +09:00
xunchang
b6105dcba3 blockimgdiff: selectively convert 'diff' commands to 'new' to reduce stash size
We cannot simultaneously stash more blocks than the size limit imposed by
the cache size. As a result, some 'diff' commands will be inevitably
converted to new. We used to do this conversion blindly when iterating
through the transfer list. This leads to an unintended large package.

In order to choose the right transfers to convert, we calculate the size
of the compressed data, and build a heuristic about the package size
increase to remove each stash blocks. After the process, the given
package size for the watch device further reduces from 186M->155M.

In some rare cases, the removed stashed blocks don't directly contribute
to the maximum simultaneously stashed size. For example,
stash A: 10 blocks
stash B: 5 blocks
free B: 5 blocks  <-- stash B has been freed before we reach max stashed blocks
stash C: 10 blocks

Converting these blocks lead to an uncertain result. On one hand, patches
are generally smaller than the new data; while on the other hand, the
regenerated graph may have fewer order violation and thus give some size
reduction. But these cases are rare and it seems an overkill to consider all
possible scenarios here.

Bug: 120561199
Test: build non-A/B incrementals and check the size
(p.s. it can be tested on all target files with customed cache threshold)
Change-Id: I599420a91b80f1a1d83d22ee1b336b699050cfb4
2019-01-16 12:59:13 -08:00
Yifan Hong
885787f4d3 Merge "Generate OTA for non-A/B devices with dynamic partitions" 2019-01-16 18:42:58 +00:00
Mark Salyzyn
f2f1854ca4 Merge "build_image: right-sizing at least some spare inode" 2019-01-16 18:36:58 +00:00
Mark Salyzyn
c25b2bf458 build_image: right-sizing at least some spare inode
To address problems creating real tiny filesystem placeholders,
make sure extra spare inodes margin is greater than 0.
For initial estimate we add 4% of total we request at least 8.
For second pass estimate we add 0.2% of total we request at least 1.

We bumped up the margin for zie on the second pass to 0.3% as the
value was too close on one of the builds.

Test: build
Bug: 122328872
Change-Id: I41707bb6fcc8bbfbdda143a9ce62446cad9c1533
2019-01-16 09:54:31 -08:00
Anton Hansson
9a0dd5b288 Merge "Set TARGET_COPY_OUT_ for product/vendor in mainline" 2019-01-16 16:53:01 +00:00
Anton Hansson
3fc20bd7d9 Merge "Add webview to mainline whitelist" 2019-01-16 16:31:50 +00:00
Treehugger Robot
0735b4f9fe Merge "Split *_product makefiles" 2019-01-16 15:18:37 +00:00
SzuWei Lin
caa5e88d4a Split *_product makefiles
So far, we have *_system.mk and *_vendor.mk.
This patch split all product settings from *_vendor.mk to new
*_product.mk

This patch also create a new telephony.mk to include all
telephony_*.mk

Bug: 119747870
Test: lunch mainline_arm64-user; make -j
Test: compare the content with and without the patch
Test: the output files in out folder are the same
Change-Id: I79aefdd1971b3b5724a3ec858de4109b645c765a
Merged-In: I79aefdd1971b3b5724a3ec858de4109b645c765a
2019-01-16 22:23:35 +08:00
Anton Hansson
9791518d58 Set TARGET_COPY_OUT_ for product/vendor in mainline
This product variable is used to generate the loader config (to use
either /system/product or /product), and the vendor one is likely
used in similar ways. Having these partitions is required for mainline
devices, so set it in the shared BoardConfig.

Bug: 80410283
Test: make
Change-Id: I6f2d94ff43572a28df54ea8c60f2d838a3b9216c
2019-01-16 13:32:51 +00:00
Anton Hansson
0a5d5fec2e Add webview to mainline whitelist
The app will move to product soon, but temporarily
whitelist that mainline_arm64 adds it to /system.

Test: make
Change-Id: I7b0ce5623a160bcb0f8b89f3053a007019ff0b62
2019-01-16 13:31:02 +00:00
Anton Hansson
e7f127491a Merge "Remove webview from media_system.mk" 2019-01-16 09:44:39 +00:00
Treehugger Robot
d6dbd967b5 Merge "Execute appcompat for apps built from soong" 2019-01-16 08:53:48 +00:00