Commit Graph

5393 Commits

Author SHA1 Message Date
Ivan Lozano
e6d3098c1b rust: Add rust_ffi_static vendor ramdisk Support
Similar to our vendor support, this adds support for linking rust static
libraries to vendor ramdisk cc modules.

A bug fix is also included where a restriction against setting rust_ffi
vendor-specific was not being enforced.

Bug: 179397942
Test: Example modules link, Soong tests pass.
Change-Id: I737cdf0c2f49ab349bcea2a0429e6298ebc1313e
2021-02-08 09:36:26 -05:00
Bob Badour
02040de891 Add LOCAL_LICENSE_KINDS to build/soong
Added SPDX-license-identifier-Apache-2.0 to:
  Android.bp
  android/Android.bp
  android/soongconfig/Android.bp
  androidmk/Android.bp
  apex/Android.bp
  bazel/Android.bp
  bp2build/Android.bp
  bpf/Android.bp
  bpfix/Android.bp
  cc/Android.bp
  cc/config/Android.bp
  cc/libbuildversion/Android.bp
  cc/libbuildversion/tests/Android.bp
  cc/ndk_api_coverage_parser/Android.bp
  cc/ndkstubgen/Android.bp
  cc/symbolfile/Android.bp
  cmd/dep_fixer/Android.bp
  cmd/diff_target_files/Android.bp
  cmd/extract_apks/Android.bp
  cmd/extract_jar_packages/Android.bp
  cmd/extract_linker/Android.bp
  cmd/fileslist/Android.bp
  cmd/host_bionic_inject/Android.bp
  cmd/javac_wrapper/Android.bp
  cmd/merge_zips/Android.bp
  cmd/multiproduct_kati/Android.bp
  cmd/path_interposer/Android.bp
  cmd/pom2bp/Android.bp
  cmd/pom2mk/Android.bp
  cmd/sbox/Android.bp
  cmd/soong_build/Android.bp
  cmd/soong_env/Android.bp
  cmd/soong_ui/Android.bp
  cmd/zip2zip/Android.bp
  cmd/zipsync/Android.bp
  cuj/Android.bp
  dexpreopt/Android.bp
  dexpreopt/dexpreopt_gen/Android.bp
  env/Android.bp
  etc/Android.bp
  filesystem/Android.bp
  finder/Android.bp
  finder/cmd/Android.bp
  genrule/Android.bp
  jar/Android.bp
  java/Android.bp
  java/config/Android.bp
  kernel/Android.bp
  linkerconfig/Android.bp
  linkerconfig/proto/Android.bp
  makedeps/Android.bp
  partner/Android.bp
  phony/Android.bp
  python/Android.bp
  python/tests/Android.bp
  remoteexec/Android.bp
  rust/Android.bp
  rust/config/Android.bp
  scripts/Android.bp
  sdk/Android.bp
  sh/Android.bp
  shared/Android.bp
  symbol_inject/Android.bp
  symbol_inject/cmd/Android.bp
  sysprop/Android.bp
  tradefed/Android.bp
  ui/build/Android.bp
  ui/logger/Android.bp
  ui/metrics/Android.bp
  ui/metrics/proc/Android.bp
  ui/status/Android.bp
  ui/terminal/Android.bp
  ui/tracer/Android.bp
  xml/Android.bp
  zip/Android.bp
  zip/cmd/Android.bp

Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:
  finder/fs/Android.bp
  third_party/zip/Android.bp

Bug: 68860345
Bug: 151177513
Bug: 151953481

Test: m all

Exempt-From-Owner-Approval: janitorial work

Change-Id: Ia47ca14f16b8c9f84f9d533a07e5b00e2c04e8d4
2021-02-06 04:23:21 +00:00
Jooyung Han
42fe5a7251 Merge "cc: fix version macro for stubs" am: 7701309889 am: 1a90279656 am: ec3a7c5db0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1574812

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I607d6dd16636e367c43f491eed4e3461e7c48004
2021-02-06 03:06:35 +00:00
Jooyung Han
7701309889 Merge "cc: fix version macro for stubs" 2021-02-06 01:41:31 +00:00
Jose "Pepe" Galmes
9e2ea6ab6d Merge "Generate fake versions of modules excluded in directed vendor snapshot." am: c64b961708 am: 504904f063 am: a05d6919cf
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1572856

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I106e382c504c59c7028c2b7a3e32b11a93d01822
2021-02-05 19:28:43 +00:00
Jose "Pepe" Galmes
c64b961708 Merge "Generate fake versions of modules excluded in directed vendor snapshot." 2021-02-05 17:54:48 +00:00
Jose Galmes
0a942a0368 Generate fake versions of modules excluded in directed vendor snapshot.
When using the directed vendor snapshot, the build fails because soong
fails to find some variants of the modules that have been excluded
from VENDOR_SNAPSHOT_MODULES, even though those modules are not going
to be used by the build.

The solution implemented here is to generate fake versions of those
modules (empty files) and include them in the generated Android.bp,
so that soong finds the modules, even though trying to use them would
fail.

Bug: 171821997
Bug: 179275601

Test: source build/envsetup.sh
Test: m -j nothing

Change-Id: Ibd3e963ab3e5504c0ac817f7cabbd241bf47a5cb
2021-02-05 17:53:53 +00:00
Liz Kammer
73f2874a87 Merge "bp2build: convert paths/module refs to Bazel label" am: b7eab01167 am: 6d5454d0f9 am: 595abf120a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1564272

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I51fd926cdae810906a75ed132dc70fa2f2c74240
2021-02-05 15:40:11 +00:00
Liz Kammer
b7eab01167 Merge "bp2build: convert paths/module refs to Bazel label" 2021-02-05 13:39:08 +00:00
Treehugger Robot
3ddf0d105d Merge changes I904b4374,I6b4ea062 am: 4f67b03e8b am: 4cc87fe37b am: c8165f662f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1571886

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7f8aab297d1ceb4dc5b7da89c35f550524c7855c
2021-02-05 04:36:27 +00:00
Jooyung Han
11b0fbdbf6 cc: fix version macro for stubs
When a cc module is built against a stub, compiler passes version macro
of the stub lib. Version macro should be numeric, so codenames or
"current" should be mapped to numbers just like how ndkstubgen maps to.

* "current" -> future (10000)
* codenames -> look up api_level.json
* otherwise -> cast to int

Bug: 179329813
Test: m / soong test / manually check the output build.ninja
Change-Id: Ic0e1dd904984e161694a0b77fad5559c06a4462f
2021-02-05 11:27:57 +09:00
Chih-hung Hsieh
adb8e2869a Merge "Disable gnu-folding-constant warning." am: adeb44b112 am: 7bca661e9a am: e2df322a97
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1573787

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I6a340942ffda731970021c2f618f84c876a26127
2021-02-05 01:54:41 +00:00
Treehugger Robot
4f67b03e8b Merge changes I904b4374,I6b4ea062
* changes:
  Do not add '.product' suffix for product_specific module
  Use target dependent module to update the name suffix
2021-02-05 01:52:04 +00:00
Benjamin Schwartz
6ff77eace0 Update VndkMustUseVendorVariantList
Bug: 150578172
Test: m
Change-Id: I68635557faff1bd8daa4964af7946a54a8dee60d
Merged-In: I3e82b2c01f1fca75ac97985053b4a5826d151340
2021-02-04 17:13:11 -08:00
Benjamin Schwartz
71dfb344e4 powerstats: PowerStats HAL has been renamed
Bug: 169864180
Test: m
Change-Id: I0db7d731c3aa81b2c9331570c93ec23038bd743c
(cherry picked from commit 399394b702)
Merged-In: I0db7d731c3aa81b2c9331570c93ec23038bd743c
2021-02-04 16:10:44 -08:00
Benjamin Schwartz
1057ccb75a Create Power Stats AIDL interface
Bug: 162472196
Test: m
Change-Id: I44ffdf07c181cb4a119ec5de73bcb9ffaf485504
(cherry picked from commit 5ec7024911)
Merged-In: I44ffdf07c181cb4a119ec5de73bcb9ffaf485504
2021-02-04 16:09:20 -08:00
Chih-hung Hsieh
adeb44b112 Merge "Disable gnu-folding-constant warning." 2021-02-04 23:59:27 +00:00
Chih-Hung Hsieh
72e88767dc Disable gnu-folding-constant warning.
New clang compiler issue too many such warnings.

Bug: 179065588
Bug: 179309338
Bug: 179278370
Test: make, presubmit
Change-Id: I9948a4b34ec75a01aa24c2fd753722b072ae5202
2021-02-04 11:46:40 -08:00
Liz Kammer
356f7d45c1 bp2build: convert paths/module refs to Bazel label
This currently expands all globs, still need to support converting glob
syntax.

Test: go build_conversion_test
Test: GENERATE_BAZEL_FILES=true m nothing
Test: m nothing
Bug: 165114590
Change-Id: If7b26e8e663d17566fad9614ca87a8da1f095284
2021-02-04 13:45:56 -05:00
Julien Desprez
8908b37a14 Switch cc_test host_supported: true to unit tests
Test: presubmit
Bug: 179092189
Change-Id: Ic5c3ca6de44732f6299ad9a35d1aaef622f3ff7f
2021-02-04 10:10:16 -08:00
Jiyong Park
a417557f80 Ensure that stubs.symbol_file has ".map.txt" suffix
The property refers to the symbol file that describes APIs across
updatable components like APEXes and system/vendor. Since it's important
to keep the APIs backwards incompatible, any change to the APIs should
be reviewed/gated by the NDK API council. The map.txt suffix is the key
for trigging the NDK API review by gerrit.

Bug: N/A
Test: m nothing
Change-Id: I01eae9c6a106d301863ec86e169111712af74d3f
2021-02-04 21:05:47 +09:00
Julien Desprez
4e153fe708 Merge "Test changing default of cc_test_host" am: 23c38fa9a7 am: 042adabd94 am: 9dfb08197a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1549529

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ice73eacf0e8061510116f58cbb31615b9846a1e1
2021-02-04 02:25:56 +00:00
Justin Yun
d00f5ca1df Do not add '.product' suffix for product_specific module
When a module has both 'product_specific: true' and
'vendor_available: true', the module does not have core variant but
have product and vendor variant modules. As the module generated
multiple variants, the names of the modules have the variant name
suffix. However, it did not create the module with the base module
name because it does not have core variant.

As the base module, in this case, is the product variant, use the
base module name for the product variant without adding the
'.product' suffix to it.

Bug: 161913599
Test: m hidl_test_product@2.0-adapter-helper
Change-Id: I904b43744579a6e89cecbc2e529122eaa8b14cae
2021-02-03 19:43:02 +09:00
Justin Yun
cbca373efa Use target dependent module to update the name suffix
The module names for vendor and product variants have the image
variant suffix to avoid conflict with the core modules. It requires
updating the module names in the dependency tree with the suffixes.

We had a hidden bug that used the original module properties to
update the names of its dependent modules.
Also, it must cover the product variants modules.

Test: updated cc_test.go and build
Change-Id: I6b4ea062d13c8fac1e699138d44376e52e0d7852
2021-02-03 19:42:29 +09:00
Inseob Kim
88796ab3d8 Merge changes from topics "snapshot_androidmk_suffix", "snapshot_list_module" am: 38ce066d3b am: de6f9afbed am: eb313b0574
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1558812

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I89a122a4ad3007bd223407f8a7fd13629b3c4717
2021-02-02 01:55:24 +00:00
Colin Cross
9bd4560e0a Remove some global state from vendor and recovery snapshots am: e0edaf9d49 am: cdab9928d0 am: ba1e014129
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1558811

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If45399cab752d0f91c640735a74f73d4a01fba00
2021-02-02 01:55:21 +00:00
Julien Desprez
3b933d3165 Test changing default of cc_test_host
Switching all cc_test_host to unit_tests: true by default.
Resolved all the failures (passing presubmit) to enable this.

Test: presubmit trigger
Bug: 177450457
Change-Id: I815e40786c0b62cf0aadd9b837d35c48332639da
2021-02-01 17:34:44 -08:00
Colin Cross
a889080aba Remove global state on module suffixes from vendor and recovery snapshots
Propgate the Android.mk suffix from source modules into the snapshot so
that it can be used for the prebuilt modules.

Bug: 177098205
Test: vendor_snapshot_test.go
Change-Id: Iea151dc91395f714fbcad1df3a6fd0874e5455d9
2021-02-01 20:06:29 +09:00
Colin Cross
e0edaf9d49 Remove some global state from vendor and recovery snapshots
Snapshots storead global sets of modules that should be replaced with
vendor snapshot modules.  Move the data instead to a vendor_snapshot
or recovery_snapshot module type that depends on all the modules in
the snapshot, and then have modules that should use the snaphsot
depend on it to query for the set of modules that should be replaced.

Bug: 177098205
Test: vendor_snapshot_test.go
Change-Id: I2826adacfb473e9139b5ea93ba83b8a54cc1a56b
2021-02-01 20:02:39 +09:00
Ivan Lozano
d8ff4daa91 rust: Allow rust_tests to include data files. am: 9da4aa8166 am: bf557705c1 am: 6604580d74
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1565177

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib1a8d5a5cb175598a783c686a9055300338ebf59
2021-01-30 00:56:04 +00:00
Ivan Lozano
9da4aa8166 rust: Allow rust_tests to include data files.
Adds the ability to define data files that should be installed alongside
the test.

This also fixes a bug wherein rust_test properties were duplicated.

Bug: 171710847
Test: rust_test module with "data" property installs files to device.
Change-Id: I091489afaf7e76b751a33a28049590d9fb39fe5f
2021-01-29 14:31:32 -05:00
Treehugger Robot
aad56c2567 Merge "Define odm_available property to install a vendor variant to odm" am: 65490b8cf3 am: cae1637ce5 am: 6b2fbaf2a4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1542687

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I975f350b63d1b1796bc623205555033a65a4d02e
2021-01-26 13:36:57 +00:00
Treehugger Robot
65490b8cf3 Merge "Define odm_available property to install a vendor variant to odm" 2021-01-26 11:32:18 +00:00
Tamas Petz
bca786d742 [arm64] Build NDK with PAuth and BTI
This change adds a new arch named "armv8-a-branchprot". The new target
is no different from the usual "armv8-a" variant except it has the
compiler flag "-mbranch-protection=standard" set.

With this flag compiler emits Armv8.3-A Pointer Authentication and
Armv8.5-A Branch Target Identification instructions. All of these
instructions are in the hint space; therefore devices which do not
support any of these extensions would execute them as NOPs.

In terms of directory structure there is no change in the output of
build/soong/scripts/build-ndk-prebuilts.sh script.

Test: build NDK prebuilts

Change-Id: Ie52ccba5653fbf567f0b7ca312d8a8e71602ad06
2021-01-26 08:15:07 +01:00
Jeongik Cha
57272380ff Update VndkMustUseVendorVariantList
As AIDL version rule is changed, change VNDK list accordingly.
'unstable' and non-versioned aidl module will be cleaned up

Bug: 150578172
Test: m
Change-Id: I3e82b2c01f1fca75ac97985053b4a5826d151340
Merged-In: I3e82b2c01f1fca75ac97985053b4a5826d151340
2021-01-26 10:20:49 +09:00
Treehugger Robot
b30b0884fa Merge "Enable clang-analyzer-optin.performance.* checks" am: 7328c25275 am: 45e98eb600 am: bbdf4b38ed
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1559878

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I4288232390fe305737adbb1b27dc3faef6fc727d
2021-01-26 01:08:05 +00:00
Jeongik Cha
e6b5399da3 Merge changes from topic "b/150578172-2"
* changes:
  Update VndkMustUseVendorVariantList
  update apex allowed deps
2021-01-26 00:16:58 +00:00
Chih-Hung Hsieh
e9dca0aa0e Enable clang-analyzer-optin.performance.* checks
* Now CLANG_ANALYZER_CHECKS=1 simply enable all clang-analyzer-* checks.

Test: make with WITH_TIDY=1 CLANG_ANALYZER_CHECKS=1
Change-Id: Ib97a2c491df66088197805e979e4bec28f2f433c
2021-01-25 14:00:51 -08:00
Colin Cross
25bb7fdf93 Merge changes I0c9b81d6,Ib1120f98 am: c203ed422a am: 4b44975ad0 am: b4d93cc692
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1558810

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ica6e5c2a66a699503c87cace284da409b088f72a
2021-01-25 19:47:02 +00:00
Yabin Cui
217c8eec1b Merge "Switch to clang-r407598b (12.0.2)." am: 824e5ac072 am: 17c79160c2 am: da6c37dd22
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1557054

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Idbf24aa0134ea732a1b5fe25454b472345283421
2021-01-25 19:46:49 +00:00
Colin Cross
c203ed422a Merge changes I0c9b81d6,Ib1120f98
* changes:
  Add vendor_available coverage to TestVendorSnapshotUse
  Move vendor snapshot tests into vendor_snapshot_test.go
2021-01-25 19:10:52 +00:00
Yabin Cui
824e5ac072 Merge "Switch to clang-r407598b (12.0.2)." 2021-01-25 17:41:31 +00:00
Colin Cross
49d9f605d7 Merge changes from topic "revert_vendor" am: c21e30bb56 am: 0ba23c1903 am: ff381094c1
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1557798

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If26691d346e45f377307188cd92b0ffa07756703
2021-01-25 16:46:02 +00:00
Colin Cross
c21e30bb56 Merge changes from topic "revert_vendor"
* changes:
  Revert "Revert "Truncate vendor snapshot header glob list after filtering it""
  Revert "Revert "Speed up vendor snapshot header globs""
2021-01-25 16:07:51 +00:00
Justin Yun
ebcf0c5e15 Define odm_available property to install a vendor variant to odm
'vendor_available: true' creates a vendor variant from a system
module. The vendor variant of the module is installed to /vendor.
However, we may want to install the vendor variant to /odm, instead.

'device_specific: true' does not work for this purpose because
'vendor_available: true' is allowed only for the system or product
modules to create a vendor variant. But 'device_specific: true'
itself creates a vendor variant that may not work with
'vendor_available: true'.

To install the vendor variant to /odm, we define a new property
'odm_available'. 'odm_available' is exactly the same as the
'vendor_available' except the install path of the vendor variant.
By defining 'odm_available: true', the vendor variant of the module
will be installed to /odm or /vendor/odm instead of /vendor.

Bug: 176147321
Bug: 176079978
Test: check if a module with 'odm_available: true' is installed to
      /vendor/odm
Change-Id: I2d16bd2c515796597b2fbd1eb66f7c2736434697
2021-01-25 17:08:44 +09:00
Justin Yun
5bb120fe70 Check vndk-private with the IsVndkPrivate() am: e09ac17466 am: 9f900373d7 am: 24ee8579e9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1554987

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I9edbfdaa1ba40c1460f728ad0fee44625fbd0038
2021-01-23 02:43:37 +00:00
Colin Cross
2e577f3657 Add vendor_available coverage to TestVendorSnapshotUse
Test that the correct suffix is added to the Make references to a
vendor_available library in a vendor snapshot.

Bug: 177098205
Test: vendor_snapshot_test.go
Change-Id: I0c9b81d63798e221db856fa0e4742a467c356fcb
2021-01-22 17:42:31 -08:00
Colin Cross
0fce0bab12 Move vendor snapshot tests into vendor_snapshot_test.go
Move the vendor snapshot tests into vendor_snapshot_test.go to
reduce the size of cc_test.go

Bug: 177098205
Test: go test ./build/soong/cc/...
Change-Id: Ib1120f986fc0111a9487fce00539a4c5ae7e2e87
2021-01-22 17:42:28 -08:00
Justin Yun
e09ac17466 Check vndk-private with the IsVndkPrivate()
*_available will not provide if a module is VNDK-private or not.
Fixed it by using IsVndkPrivate() with private() interface.

By allowing exclude_from_vendor_snapshot for vendor_available
modules, available() interface is no longer required. Tests are
updated for exclude_from_vendor_snapshot on vendor_available modules.

Bug: 175768895
Test: m nothing
Change-Id: I9ff85256170d59b378a4c354d5c007cfbeacabc5
2021-01-23 01:11:58 +00:00
Colin Cross
75862ebcb2 Merge "Fix mismatch between cc and python for windows prefer32" am: 9b564c5a22 am: 0448d58125 am: a5085a5fd1
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1554549

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I78510184ca457855b032d54c5f5613c438b2257f
2021-01-23 00:45:56 +00:00