Commit graph

20863 commits

Author SHA1 Message Date
Colin Cross
d6b2525b00 Deduplicate APEX variants that would build identically
APEX variants that share the same SDK version and updatability
almost always use identical command line arguments to build but
with different intermediates directories.  This causes unnecessary
build time and disk space for duplicated work.

Deduplicate APEX variants that would build identically.  Create
aliases from the per-APEX variations to the new shared variations
so that the APEX modules can continue to depend on them via the
APEX name as the variation.

This has one significant change in behavior.  Before this change,
if an APEX had two libraries in its direct dependencies and one
of those libraries depended on the other, and the second library
had stubs, then the first library would depend on the implementation
of the second library and not the stubs.  After this change, if
the first library is also present in a second APEX but the second
library is not, then the common variant shared between the two
APEXes would use the stubs, not the implementation.

In a correctly configured set of build rules this change will
be irrelevant, because if the compilation worked for the second
APEX using stubs then it will work for the common variant using
stubs.  However, if an incorrect change to the build rules is
made this could lead to confusing errors, as a previously-working
common variant could suddenly stop building when a module is added
to a new APEX without its dependencies that require implementation
APIs to compile.

This change reduces the number of modules in an AOSP arm64-userdebug
build by 3% (52242 to 50586), reduces the number of variants of the
libcutils module from 74 to 53, and reduces the number of variants
of the massive libart[d] modules from 44 to 32.

Bug: 164216768
Test: go test ./build/soong/apex/...
Change-Id: I0529837476a253c32b3dfb98dcccf107427c742c
2020-08-17 15:18:31 -07:00
Treehugger Robot
8cb67e4358 Merge "Override EarlyModuleContext.Namespace" 2020-08-17 19:37:39 +00:00
Treehugger Robot
51636c0ae9 Merge "Rename class2greylist" 2020-08-17 16:33:21 +00:00
Treehugger Robot
ba161370aa Merge "Propagate settings for building in an unbundled tree." 2020-08-17 13:35:16 +00:00
Thiébaud Weksteen
2346b014eb Merge "rust: modify linting properties" 2020-08-17 07:01:14 +00:00
Treehugger Robot
a07777d434 Merge "Rename ApexName to ApexVariationName" 2020-08-15 06:43:52 +00:00
Jaewoong Jung
cc1bfd6aa0 Revert "Add data bin and lib properties to sh_test"
This reverts commit 91dbd520de.

Reason for revert: Fix CLs didn't completely fix the builds.

Test: sh_binary_test.go
Bug: 156980228
Bug: 164465992
Change-Id: I1ed214c2ea6cd460db909a103c4b3a9a895ad9f7
2020-08-14 18:11:23 -07:00
Colin Cross
133ebefb8d Override EarlyModuleContext.Namespace
Make android.EarlyModuleContext return a *Namespace.

Test: m checkbuild
Change-Id: I4c29d5e69e90eb9b7afbefc1355f63991a3e3331
2020-08-14 17:38:45 -07:00
Jaewoong Jung
abdafede81 Merge "Fix broken darwin build." 2020-08-15 00:19:12 +00:00
Treehugger Robot
046cbd1590 Merge "Add CreateAliasVariation to BottomUpMutatorContext" 2020-08-14 22:54:02 +00:00
Treehugger Robot
6b6f9dbb7d Merge "Add a default value for the RBE_log_dir variable." 2020-08-14 22:22:17 +00:00
Treehugger Robot
0fe22f4b90 Merge "Shorten missing module panic message" 2020-08-14 21:46:44 +00:00
Jaewoong Jung
8eee3f6b58 Fix broken darwin build.
Offending change - I7b64de4b06e9bba3fba3712b25dd9f9d112e1625

This is in addition to Idebfdf1ed7d8e10ba867c8eaac01410d754c7131

Test: sh_binary_test.go
Bug: 156980228
Bug: 164465992
Change-Id: I8d01d0e82efe764cc6901bb3e2c2767c8b25d81f
2020-08-14 14:27:02 -07:00
Jaewoong Jung
e3c24b1c77 Merge "Fix broken darwin build." 2020-08-14 19:07:36 +00:00
Jaewoong Jung
181cfdf898 Fix broken darwin build.
Offending change - I7b64de4b06e9bba3fba3712b25dd9f9d112e1625

Test: sh_binary_test.go
Bug: 156980228
Fixes: 164465992
Change-Id: Idebfdf1ed7d8e10ba867c8eaac01410d754c7131
2020-08-14 18:44:23 +00:00
Ramy Medhat
8c56bc2726 Add a default value for the RBE_log_dir variable.
Test: built simple target.
Change-Id: Id93dd80119037b594e5f8c370f4ac2fbc12a5144
2020-08-14 14:17:33 -04:00
Ramy Medhat
39fff45b8e Merge "Do not generate a random socket address for RBE if NOSTART_RBE is set." 2020-08-14 18:12:33 +00:00
Jaewoong Jung
b2567eb9d8 Merge "Add data bin and lib properties to sh_test" 2020-08-14 17:50:05 +00:00
Treehugger Robot
52cefc00f7 Merge "Update ApexAvailableBaseline" 2020-08-14 03:40:33 +00:00
Ramy Medhat
a958d35247 Do not generate a random socket address for RBE if NOSTART_RBE is set.
Test: A build with NOSTART_RBE=1
Change-Id: I5872632442c754b597901b7729eed597ee45859f
2020-08-13 22:53:42 -04:00
Colin Cross
e07f2316b7 Rename ApexName to ApexVariationName
In preparation for reusing the same variation for multiple apexes,
rename ApexName to ApexVariationName.

Bug: 164216768
Test: all soong tests
Change-Id: I88f2c5b192ffa27acd38e01952d0cefd413222a0
2020-08-13 17:50:29 -07:00
Colin Cross
1b9604b463 Add CreateAliasVariation to BottomUpMutatorContext
Propagate CreateAliasVariation from Blueprint to Soong.

Bug: 164216768
Test: m checkbuild
Change-Id: I635bf67481092b83a8d26ef1cb06e2e3e21a595f
2020-08-13 17:50:05 -07:00
Jaewoong Jung
91dbd520de Add data bin and lib properties to sh_test
Test: sh_binary_test.go
Test: Modified ziptool-tests
Bug: 156980228
Change-Id: I7b64de4b06e9bba3fba3712b25dd9f9d112e1625
2020-08-13 15:36:44 -07:00
Colin Cross
a24b9deb5f Merge changes I02fb745a,Iccc96c0d
* changes:
  Follow all shared library dependencies when collecting JNI libraries
  Handle static unwinder in ltoDepsMutator
2020-08-13 21:55:53 +00:00
Matthew Maurer
61ca6a39cc Merge "Add Rust Binder crate to allowed list" 2020-08-13 21:13:57 +00:00
Colin Cross
beae6ecbd4 Shorten missing module panic message
Only print the list of variants of the matching module when
ctx.ModuleForTesting finds the module but not the variant.

Test: all soong tests
Change-Id: I51ffdde4645db39ec1d37ec018e0dea11d74280e
2020-08-13 11:52:21 -07:00
Andrei Onea
23fea04e27 Rename class2greylist
Use a more inclusive name (go/hiddenapi-list-renaming).
Bug: 163797539
Test: atest class2nonsdklisttest

Change-Id: I1b72c243746dde9926a11d5a559b84e753e8fd4f
2020-08-13 17:33:14 +01:00
Thiébaud Weksteen
9e8451e524 rust: modify linting properties
Move the linting properties to an enum with 4 possible options:
"default", "android", "vendor" or "none". The previous logic for
default, based on the module's location, is kept. It is now possible to
force the upgrade to a certain lint level for some modules (e.g.
external/[...]/android). Update the unit tests and documentation.

Bug: 163400111
Test: m
Change-Id: I8e464b04401158ed2d3c518a9b72f145a9835c99
2020-08-13 15:58:09 +02:00
Treehugger Robot
29737cfc94 Merge "Improve abidump generating logic for non-REL build" 2020-08-13 11:53:05 +00:00
Treehugger Robot
d59540234c Merge changes I514b90ae,Ie477de70
* changes:
  Fix DepsInSameApex for some dependencies of static libraries
  Expose all shared and header libraries to Make
2020-08-13 05:01:17 +00:00
Ramy Medhat
5d942d05b1 Merge "Add reasonable defaults to RBE configuration parameters." 2020-08-12 22:41:43 +00:00
Treehugger Robot
fd5978a473 Merge "Increase heap size for lint tool" 2020-08-12 22:07:18 +00:00
Treehugger Robot
50a58067e6 Merge "Stop using prebuilt NDK CRT objects." 2020-08-12 22:01:27 +00:00
Treehugger Robot
3a9141df29 Merge "Start collecting build configuration metrics." 2020-08-12 17:17:31 +00:00
Andrei-Valentin Onea
d89374c5a7 Merge "Rename hiddenapi csv artifact" 2020-08-12 17:08:10 +00:00
Ramy Medhat
0fc67eb5e9 Add reasonable defaults to RBE configuration parameters.
Test: simple one action build
Change-Id: Ic66ad2b89866a67008950035bc3b559dae4e3a3e
2020-08-12 12:30:05 -04:00
Dan Willemsen
a6ba0d2a4c Merge "Remove M4 export to Make" 2020-08-12 14:48:08 +00:00
Patrice Arruda
9685036e6e Start collecting build configuration metrics.
This is an initial CL that collects the environment variables
USE_GOMA and USE_RBE. This is a needed metric to determine how
many users are currently using GOMA so we can help them migrate
to RBE.

Bug: b/163598127
Test: m nothing and checked soong_metrics
Change-Id: I39536eabad01aafbb3bd7182515d72230b36f658
2020-08-12 14:25:37 +00:00
Kousik Kumar
20cccd2e95 Merge "Add remote execution support for clang-tidy actions" 2020-08-12 13:46:10 +00:00
Ivan Lozano
4c698f3ff2 Merge "Only return the source files of a Rust module with a SourceProvider if the internal compiler has been disabled" 2020-08-12 13:11:50 +00:00
Treehugger Robot
65c74d9f89 Merge "HostToolPath should return install path" 2020-08-12 02:45:40 +00:00
Chih-Hung Hsieh
a756270ec2 HostToolPath should return install path
Bug: 163154468
Test: make; find dependencies of 'Module:  sqlite3_bindgen_x86_64'
Change-Id: Id9fc4f1937983bdf7eb1732ed6a8afd5aa3eb24c
2020-08-11 16:38:52 -07:00
Dan Albert
92fe740677 Stop using prebuilt NDK CRT objects.
We don't need the prebuilt versions. The NDK CRT objects are (now)
built from the platform sources and the only difference is that the
NDK CRT objects also include an ELF note that identifies the NDK
version, which isn't helpful for anything built by the platform.

Add a `crt` property to cc_object that allows CRT objects to identify
themselves. CRT objects, unlike other modules, will have a variant
built per-API level they support, rather than just an SDK variant and
a platform variant. This is needed because new CRT objects will rely
on APIs not available in old libcs and old CRT objects will not
support all the features of a modern one.

Test: treehugger
Bug: http://b/159925977
Change-Id: I6595485fa1bfe0ad4945193d344b863f64eec654
2020-08-11 15:06:55 -07:00
Pirama Arumuga Nainar
84ce8d8d89 Merge "[cc/sanitize] Deprecate blacklist sub-property of sanitize" 2020-08-11 21:24:16 +00:00
Andrei Homescu
5db69cc896 Only return the source files of a Rust module with a SourceProvider if the internal compiler has been disabled
Test: mmma system/tools/aidl with assertOutput FIXMEs re-enabled
Change-Id: I84598ae2d1181656b7d68088f86ab016563e5d80
2020-08-11 13:25:25 -07:00
Anton Hansson
3d02e1f3c5 Merge "Update neverallows path for sdkextensions" 2020-08-11 11:55:39 +00:00
Anton Hansson
4b8e64b1ce Update neverallows path for sdkextensions
The modules sources have been moved, update the sdk variant whitelist.

Bug: 156286599
Test: m
Exempt-From-Owner-Approval: cherry-pick from internal
Change-Id: Idbd02b17b1c741f1dc20a3742ff57e8469a846c0
Merged-In: Idbd02b17b1c741f1dc20a3742ff57e8469a846c0
2020-08-11 10:32:21 +01:00
Jeongik Cha
839fc6659c Update ApexAvailableBaseline
Remove ipmemorystore-aidl-interfaces-java in allowlist for
com.android.tethering

Bug: 146436251
Test: m nothing
Change-Id: I8b7f97d59c2fd191f467ad50a8fd66d9a5d37704
2020-08-11 13:07:18 +09:00
Dan Willemsen
9f43597ff7 Remove obsolete PDK build functionality
This hasn't worked for a couple years, and continues to bitrot. Just
remove it.

Adds a bpfix rule so that we can eventually remove the
product_variables.pdk definition, which is now always a no-op.

Test: treehugger
Change-Id: I830b54d419b59f6db1d4617b45e61a78234f57a7
Merged-In: I830b54d419b59f6db1d4617b45e61a78234f57a7
2020-08-11 01:11:44 +00:00
Martin Stjernholm
2829f6c09c Propagate settings for building in an unbundled tree.
Test: build/soong/scripts/build-aml-prebuilts.sh art-module-sdk
  on master-art
Change-Id: Iaff7f590d67fdd6f533f2831475deb7b92090ea2
2020-08-11 01:41:20 +01:00