Commit Graph

4286 Commits

Author SHA1 Message Date
Yabin Cui
74d25e39f0 Merge "Switch to clang-r383902 (11.0.1)." 2020-05-01 05:28:39 +00:00
Yabin Cui
1014de7951 Disable cert-dcl51-cpp and -cert-dcl37-c.
Disable them for the next clang compiler update.

Bug: 153464409
Test: WITH_TIDY=1 make

Change-Id: I27c315637e02c7c6c708a24a04220f10136b681a
Merged-In: I27c315637e02c7c6c708a24a04220f10136b681a
(cherry picked from commit 70ba0e23a4)
2020-04-30 15:58:59 -07:00
Chih-Hung Hsieh
465da2f849 Disable bugprone-reserved-identifier
* Disable it for the next clang compiler update
  until all source files with this warning are fixed.

Bug: 153464409
Test: WITH_TIDY=1 make
Change-Id: I126d2f5170f3883192348577e523ef99f5c5a70e
Merged-In: I126d2f5170f3883192348577e523ef99f5c5a70e
(cherry picked from commit 3d3df826c1)
2020-04-30 15:58:59 -07:00
Treehugger Robot
87fb37ba21 Merge "[cc_fuzz] Collect shared deps by name, not by module." am: c57d39cade am: ff08454c17
Change-Id: I322fff5bb111c4423a939e4dc3d03b32856a1c5b
2020-04-30 22:54:50 +00:00
Treehugger Robot
c57d39cade Merge "[cc_fuzz] Collect shared deps by name, not by module." 2020-04-30 22:26:22 +00:00
TreeHugger Robot
70a42b405f Merge "Allow remote execution of link actions." into rvc-dev 2020-04-28 21:46:39 +00:00
Treehugger Robot
fb1add1fd6 Merge "Refactor RBE support for Javac/R8/D8 to use the remoteexec package." am: 0b3b3db525 am: ebbe86fdb7
Change-Id: I1e1e35955cefcd26cfe58e9cd9f02c9465865442
2020-04-28 18:33:59 +00:00
Ramy Medhat
1dcc27e47c Refactor RBE support for Javac/R8/D8 to use the remoteexec package.
Test: build with and without RBE_JAVAC/RBE_R8/RBE_D8 set.
Change-Id: I1607f8cfb4d2c3cbb3672152bbeb561d9968bc60
2020-04-28 11:37:20 -04:00
Jiyong Park
23ba7cc000 Merge "Add test_for property" into rvc-dev 2020-04-28 14:27:07 +00:00
Treehugger Robot
f653a91daf Merge "Do not propagate dynamic dependencies for stub libs." am: a6c19f792d am: 04fd1b2605
Change-Id: I59d7c20357cfc8f5da42d3a7b94305c5ff27a9b6
2020-04-28 12:54:11 +00:00
Jiyong Park
f0d01b7c98 Add test_for property
This change adds 'test_for' property to cc_test_* types. The property is
used to mark a module as a test for one or more APEXes, in which case
the module has accecss to the private part of the listed APEXes. For
example, the module is linked with the actrual shared library in the
APEX instead of the stub of the shared library.

Exempt-From-Owner-Approval: cherry-pick from AOSP

Bug: 129539670
Bug: 153046163
Test: m
Merged-In: I45ed0d7a15540b0d69b2a3b8d9c4cb202adff6f2
(cherry picked from commit 62304bbeec)
Change-Id: I45ed0d7a15540b0d69b2a3b8d9c4cb202adff6f2
2020-04-28 21:35:40 +09:00
Treehugger Robot
a6c19f792d Merge "Do not propagate dynamic dependencies for stub libs." 2020-04-28 12:10:26 +00:00
Jiyong Park
5088a2cbd5 Set apex_available property
The marked library(ies) were available to the APEXes via the
hand-written whitelist in build/soong/apex/apex.go. Trying to remove the
whitelist by adding apex_available property to the Android.bp of the
libraries.

Exempt-From-Owner-Approval: cherry-pick from AOSP

Bug: 150999716
Test: m
Merged-In: I11a4e877ee27f7c55e2f00371c6fa58daedb1a9f
(cherry picked from commit 601d31c234)
Change-Id: I11a4e877ee27f7c55e2f00371c6fa58daedb1a9f
2020-04-28 21:08:58 +09:00
Kousik Kumar
7879890e12 Add implicit outputs to link actions am: 3fb6126309 am: 72834cbcf9
Change-Id: I9d4fdfd0aa9beafc64245aff6dd0f4c479fe2054
2020-04-28 08:44:33 +00:00
Kousik Kumar
3fb6126309 Add implicit outputs to link actions
Change-Id: I9b6ae97f5bbfe8f9c4b9c089544a768982794f32
Bug: b/154733231
Test: Built the failing action with / without this change
2020-04-27 21:53:43 -07:00
Robert Shih
5d878b8369 Merge "Removing filter to allow widevine fuzzers addition" am: 4a748c99f0 am: 870e1e02c6
Change-Id: I747361b6c842dc63ee579727bb59698619fd6dff
2020-04-28 02:30:24 +00:00
Robert Shih
4a748c99f0 Merge "Removing filter to allow widevine fuzzers addition" 2020-04-28 01:49:48 +00:00
Mitch Phillips
c0b442f8a7 [cc_fuzz] Collect shared deps by name, not by module.
cc_fuzz relies on an invariant that's not exactly true. We assume that
for each fuzz target, we'll only have a dependency on a single sanitized
variant of a shared library. In a few instances, this is proven not to
be true, as we end up with a transitive dependency on a shared library
with sanitizer coverage instrumentation, and one without sancov.

This results in breaking the packaging for some fuzz targets. This then
goes on to break `make haiku` in some scenarios.

While this isn't a completely technically correct solution (as we
basically resolve one of the sanitized variants pseduorandomly), it does
resolve the issue for now. Realistically, we should select *both* of
them, and set the DT_RUNPATHS on the shared libraries to point to the
dependencies that have the sanitization that they're expecting. In
practice - this shouldn't break sancov (we might just silently drop some
coverage) or hwasan (we might just silently drop some hwasanification).

I believe that the walk order of VisitDirectDeps is deterministic, and
as such this shouldn't affect the reproducability of fuzz target builds
(and thus won't blow up the Soong rebuilds). ccross@ or dwillemsen@ can
speak better to this than I can though.

Bug: 148306195
Bug: 151102177
Bug: 155123587
Test: lunch flame_hwasan-userdebug && make haiku
Change-Id: I8d4001d93da33e4e5d21f740beb88a20fcc26e2a
2020-04-27 17:06:58 -07:00
Colin Cross
01fd7ccbc7 Add sdk mutator for native modules
Compiling native modules against the NDK disables platform features
like ASAN.  For anything shipped on the system image there is no
reason to compile against the NDK.  Add a new mutator to Soong that
creates a platform and an SDK variant for modules that set
sdk_version, and ignore sdk_version for the platform variant.  The
SDK variant will be used for embedding in APKs that may be installed
on older platforms.  Apexes use their own variants that enforce
backwards compatibility.

Test: sdk_test.go
Test: TestJNIPackaging
Bug: 149591340
Change-Id: I7d72934aaee2e1326cc0ba5f29f51f14feec4521
Merged-In: I7d72934aaee2e1326cc0ba5f29f51f14feec4521
(cherry picked from commit 82e192c3ae)
2020-04-27 14:45:05 -07:00
Bill Peckham
83b6e371e6 Merge "Propagate Soong header_libs to module-info.json" am: 6c2962e458 am: 2a8937968f
Change-Id: Ieaaf421db6119753252ea8f89bc530120522ecbd
2020-04-27 21:32:58 +00:00
Bill Peckham
6c2962e458 Merge "Propagate Soong header_libs to module-info.json" 2020-04-27 20:59:48 +00:00
Hamzeh Zawawy
0540ae78b9 Removing filter to allow widevine fuzzers addition
Bug: 150900870
Test: make haiku ran locally include widevine fuzzer after change
Change-Id: I0942a3d61674a90e99792141567bd6ce35dfee2e
2020-04-27 19:58:04 +00:00
Treehugger Robot
449d81cdf6 Merge "Add support for remotely executing header-abi-dumper actions." am: 867dfd52f5 am: 7cb58ab378
Change-Id: I118593627936a3f0192c471457c5f77b75c56d03
2020-04-27 19:47:00 +00:00
Treehugger Robot
867dfd52f5 Merge "Add support for remotely executing header-abi-dumper actions." 2020-04-27 19:16:41 +00:00
Martin Stjernholm
cc330d665a Do not propagate dynamic dependencies for stub libs.
Test: m nothing
Test: Build an SDK snapshot including libc, check that the generated
  cc_prebuilt_library_shared for it is a stub that doesn't depend on
  ld-android.
Bug: 152255951
Bug: 154310674
Change-Id: Ie5ec02aebdf00b75756a6eda40db821488d30065
2020-04-27 18:43:40 +00:00
Bill Peckham
a46de70775 Propagate Soong header_libs to module-info.json
Adding the Soong header_libs dependencies to
module-info.json allows tools to more accurately detect
all module-level dependencies. This change adds
LOCAL_HEADER_LIBRARIES, populated from header_libs, to
the Soong's Android.mk prebulit module definition so
that it will propagate through the prebuilt into
base_rules.mk and eventually to module-info.json.

Bug: 151755703
Test: Find header_libs deps in module-info.json
Change-Id: Ic7134d33fa71822aae548ca097851dc0c1371bad
2020-04-27 18:28:26 +00:00
Ramy Medhat
31ec942ff7 Add support for remotely executing header-abi-dumper actions.
Test: built with and without RBE_ABI_DUMPER set.
Change-Id: Ie752c07325453076d191813eaa50da03e3a0c2d8
2020-04-27 08:13:42 -07:00
Yabin Cui
8ec05ff5f6 Switch to clang-r383902 (11.0.1).
Also suppress some warnings/flags globally to pass compilation.

Bug: 149839606
Test: build aosp_arm64-userdebug.
Change-Id: I0ed740e51b6b39c58842a58eabcf3cdf404e73fa
2020-04-27 01:17:12 -07:00
Hsin-Yi Chen
d3185fa6b3 Merge "Add check_all_apis option for header ABI checker" am: 9105fa385a am: 4c01c57674
Change-Id: I19305d8977e334a8077b5d0ef4ab87a86a9f5db3
2020-04-27 04:09:15 +00:00
Hsin-Yi Chen
9105fa385a Merge "Add check_all_apis option for header ABI checker" 2020-04-27 03:34:08 +00:00
Jiyong Park
a7ca0120ad Merge "Add test_for property" am: 70b5c21270 am: b739f8d870
Change-Id: If02ebcfee4195fbac05dd0b902958236c5a6346d
2020-04-27 00:50:02 +00:00
Jiyong Park
70b5c21270 Merge "Add test_for property" 2020-04-27 00:13:50 +00:00
Treehugger Robot
dcbc580195 Merge "Set apex_available property" am: 8c79615594 am: 75d9dae1e8
Change-Id: I79473f28becd80fd9bcf38db41762b2710c02cfb
2020-04-25 08:08:08 +00:00
Treehugger Robot
8c79615594 Merge "Set apex_available property" 2020-04-25 07:38:33 +00:00
Jiyong Park
62304bbeec Add test_for property
This change adds 'test_for' property to cc_test_* types. The property is
used to mark a module as a test for one or more APEXes, in which case
the module has accecss to the private part of the listed APEXes. For
example, the module is linked with the actrual shared library in the
APEX instead of the stub of the shared library.

Exempt-From-Owner-Approval: already +2'ed by owner

Bug: 129539670
Bug: 153046163
Test: m
Change-Id: I45ed0d7a15540b0d69b2a3b8d9c4cb202adff6f2
2020-04-25 06:25:42 +00:00
Jooyung Han
28a49820e4 Merge "Apex: support codenames for min_sdk_version" 2020-04-25 04:41:44 +00:00
Jooyung Han
559f89cb71 Merge changes I072ad8c3,I72e2f1c9,I47e27d2d into rvc-dev
* changes:
  cc: add min_sdk_version prop
  apex: respect filename property for apk-in-apex
  apex: Don't run apex mutators if disabled
2020-04-25 00:18:46 +00:00
Colin Cross
7b3a70ccb5 Add sdk_version property to cc_genrule
This is a partial cherry-pick of Ic30ab6b844684bfc3e8ece5a1913980d5fbf8de2
so that modules with sdk_version properties added to cc_genrules can be
backported to rvc-dev.  The property does nothing for now.

Bug: 149591340
Test: treehugger
Merged-In: Ic30ab6b844684bfc3e8ece5a1913980d5fbf8de2
Change-Id: I7be8efe8880130db10fb517b12606100c85a1411
2020-04-24 13:52:16 -07:00
Jooyung Han
ba11812b1d cc: add min_sdk_version prop
min_sdk_version is the minimum version of the sdk that the compiled
artifacts will run against.

For example, when a module is used by two APEXes and their
min_sdk_versions are set to 29 and 30, then the module should support
both versions even if it is compiled against 30. Therefore,
min_sdk_version of the module needs to be set 29 in that case. In
general, this is set as the minimum value of min_sdk_vesions of APEXes.

For now, there's no build-time checks about this prop even if the prop
is set.

Bug: 145796956
Bug: 152655956
Bug: 153333044
Test: m nothing
Merged-In: I072ad8c317d2615e8b08e4e7ea2db8e7955b4b12
Change-Id: I072ad8c317d2615e8b08e4e7ea2db8e7955b4b12
(cherry picked from commit 379660c9c2)
2020-04-25 02:28:48 +09:00
Ramy Medhat
1154b69f45 Allow remote execution of link actions.
This CL adds a remoteexec package that allows adding a configurable RBE
prefix to the template.

Change-Id: I6b4ea773f6bae5706415a1830f822db7decca92f
Test: built aosp crosshatch userdebug with and without RBE_CXX_LINKS.
Merged-In: Ica920c3d7f79f2996210b9cbd448126451c1707c
Bug: b/154820732
2020-04-23 08:23:21 -07:00
TreeHugger Robot
4586da2aae Merge changes Ie883eb45,If46a2f74,I8f4c5395,Ic4eb169d,I2b2408ef, ... into rvc-dev
* changes:
  Replace references to droiddoc with droidstubs
  Allow walkPayloadDeps visitor to control walk flow
  Add apex_available to sysprop_library
  Improve missing apex_available message
  Split TestApexAvailable into separate tests
  Use reflect.Zero(type) to get value to clear field
  Sdk snapshot set compile_multilib per OsType
  Remove old SdkMemberType API for creating snapshot modules
  Improve consistency of handling java snapshot properties
  Make new module creation API more flexible
  Add abstraction for tracking compile multilib usages
  Add support for using cc_library in sdk/module_exports
  Extract the osTypeSpecificInfo code from module creation loop
  Extract archTypeSpecificInfo code from module creation loop
  Clean up the main module creation loop
  Add support for cc_prebuilt_library
  Refactor prebuilt to use srcs supplier function
  Output properties before sets in snapshot module
  Remove SdkMemberType.FinalizeModule
  Follow up a review comment that was missed
  Copy shared_libs and system_shared_libs to module snapshot
  Support extracting common values from embedded structures
  Refactor common value extraction
  Copy white listed apex available settings into snapshot
  Disable installation for sdk snapshot versioned prebuilts
  Remove special handling of test_ apexes
  Remove special handling of com.android.art.debug/release
  Allow sdk members to vary by os type
  Add support for multiple os types
  Copy sdk_version to cc library snapshots
  Refactor java_library/java_test snapshot processing
  Refactor snapshot module creation
  Enable androidmk processing in sdk testing
  Add a nice install paths for module SDKs and exports.
  Copy apex_available properties to snapshot modules
  Improve documentation of CompileMultiTargets and related properties
  Only check copy rules into the snapshot directory
  Simplify java library sdk member code
  Add CommonOS variant for sdk
  Fix bug in error reporting when adding duplicate properties
  Avoid invoking sdk member to add empty list of dependencies
  Add windows to the list of available OS's in sdk tests
  Add support for cc_library_headers in sdk/module_exports
  Prune any empty property sets from the modules before transforming
  Simplify cc library sdk snapshot handling of include dirs/headers
  Add support for transforming a property set after its contents
  Fix issues with bp transformation
2020-04-23 15:19:26 +00:00
TreeHugger Robot
2166c1c1ee Merge changes Idd50ed38,Icbc86b21,I62d016d9 into rvc-dev
* changes:
  Add cc_prebuilt_library_headers
  Separate cc_library_headers to its own file and add tests
  Allow compile_multilib to be specified on module exports
2020-04-23 15:18:31 +00:00
Jooyung Han
79519b6caf Merge "Skip version mutator for host/ramdisk/recovery" 2020-04-23 03:46:30 +00:00
Jooyung Han
624d35cb4d Skip version mutator for host/ramdisk/recovery
"version" mutator creates stubs variants for "cc" libraries with
"stubs.versions". These stubs are for APEX-APEX or APEX-Platform
boundaries.

For host/ramdisk/recovery variants, stubs are not necessary.

Exempt-From-Owner-Approval: cp from internal

Bug: 153698496
Test: m
Merged-In: Id576c4318d9d69246a4a7e2fb4145d5fd2ab9416
Change-Id: Id576c4318d9d69246a4a7e2fb4145d5fd2ab9416
(cherry picked from commit c40b5193fe)
2020-04-23 03:46:09 +00:00
Oliver Nguyen
0e8579b4f1 Merge "Only package gcno files for gcov coverage builds." 2020-04-23 00:45:51 +00:00
Oliver Nguyen
d7b2753408 Merge "Only package gcno files for gcov coverage builds." into rvc-dev am: b636300911
Change-Id: If62672b204091825eb728751df8babb980e7a1bd
2020-04-22 20:54:35 +00:00
Oliver Nguyen
0452678a40 Only package gcno files for gcov coverage builds.
Bug: 154550223
Test: m -j NATIVE_COVERAGE=true droid dist tests
Test: m -j CLANG_COVERAGE=true droid dist tests
Merged-In: I81598bcab8db105de6692156c001fc961409ce63
Change-Id: I81598bcab8db105de6692156c001fc961409ce63
2020-04-22 13:30:07 -07:00
Oliver Nguyen
b636300911 Merge "Only package gcno files for gcov coverage builds." into rvc-dev 2020-04-22 20:28:40 +00:00
Jiyong Park
71f42846a3 Set apex_available property
The marked library(ies) were available to the APEXes via the
hand-written whitelist in build/soong/apex/apex.go. Trying to remove the
whitelist by adding apex_available property to the Android.bp of the
libraries.

Bug: 150999716
Test: m
Merged-In: I11a4e877ee27f7c55e2f00371c6fa58daedb1a9f
Change-Id: I11a4e877ee27f7c55e2f00371c6fa58daedb1a9f
2020-04-22 23:12:42 +09:00
Paul Duffin
17ab883cb0 Make new module creation API more flexible
Previously passing additional information to the implementations of
AddPrebuiltModule() or the SdkMemberProperties interface would have
required making changes to the API. This change added an
SdkMemberContext object into which additional information can easily
be added without requiring changes to existing implementations.

The BuildSnapshot() method was not modified because it is deprecated
and will be removed in a follow up change.

It also switches the API from passing variants as android.SdkAware to
android.Module. That is for a couple of reasons:
1) SdkAware is designed for managing the relationship between the
   module and the SDK, not for generating the output snapshot. As such
   there is nothing in SdkAware that is needed for generating the
   output snapshot.
2) Accepting android.Module instead makes it easier to use the
   underlying code for generating the snapshot module as well as the
   individual member modules.

This is in preparation for a number of improvements and bug fixes in
both the snapshot creation code and implementations to address found
while trying to built the platform against ART prebuilts.

Bug: 151937654
Bug: 153306490
Test: m nothing
Merged-In: Iac10f1200c0f283aa35402167eec8f9aeb65a38e
Change-Id: Iac10f1200c0f283aa35402167eec8f9aeb65a38e
2020-04-22 12:51:44 +01:00