Commit graph

654 commits

Author SHA1 Message Date
Colin Cross
a7fcadce74 Revert "Add dependency license annotations" am: abe2a4b7bf
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1918943

Change-Id: I9438dc5f70a9e30071a051c11dd25f36789822d0
2021-12-10 23:20:49 +00:00
Colin Cross
abe2a4b7bf Revert "Add dependency license annotations"
Revert submission 1899703

Reason for revert: b/210158272
Reverted Changes:
I142c19284:Reuse license metadata files from Soong
Ife89b8f23:Add dependency license annotations
I8e7410837:Build license metadata files in Soong

Change-Id: I51f33ae67311a3cff00d3e581d24c9a3411b7131
2021-12-10 23:02:41 +00:00
Colin Cross
b435744fdc Merge changes from topic "soong-license-metadata"
* changes:
  Add dependency license annotations
  Build license metadata files in Soong
  Escape Host*Variable contents
2021-12-10 21:43:49 +00:00
Chris Wailes
bc62193c7f Replace Rust global arg with more legible alternative
Bug: 201431719
Test: m rust
Change-Id: I5e0fae74e1df02f059ddcfa004b29059126a52e0
2021-12-09 13:56:32 -08:00
Colin Cross
b674b43656 Add dependency license annotations
Add annotations to dependency tags that are dynamic or classpath
linkage.

Bug: 207445310
Test: m checkbuild
Change-Id: Ife89b8f234aa40c380c721eda7dd18cab697fbb3
2021-12-08 15:08:59 -08:00
Treehugger Robot
a85f7bde32 Merge "Support rust_toolchain_library for rust-project" 2021-12-08 14:14:34 +00:00
Thiébaud Weksteen
566eb80d3c Support rust_toolchain_library for rust-project
Bug: 209678277
Test: SOONG_GEN_RUST_PROJECT=1 m nothing; check that libstd is included
Change-Id: Ic197e00bc4695aa6dcd46b8c704a82a2e5e90460
2021-12-08 17:54:19 +11:00
Treehugger Robot
4efcb9d81a Merge "Update clang version to clang-r437112" 2021-12-08 04:00:23 +00:00
Chih-Hung Hsieh
253fd0609d Update clang version to clang-r437112
Bug: 201432564
Test: make
Change-Id: Idad9e1154b2c65eb29b7682c205f7bb50af17f0b
2021-12-07 15:24:38 -08:00
Chris Wailes
58e748d8d4 Merge "Allow users to enable local incremental Rust builds" 2021-12-07 19:33:24 +00:00
Chris Wailes
d9781fd67e Allow users to enable local incremental Rust builds
This CL allows users to set the SOONG_RUSTC_INCREMENTAL environment
variable to enable incremental Rust builds.  The out/soong/rustc
directory is used for intermediate artifacts.

Test: m rust
Change-Id: Ica2587c30596325b7d3e82d8e3c1d610b92718b8
2021-12-06 15:02:20 -08:00
Yi Kong
203e6f4115 Add "-Z debug-info-for-profiling" flag for AutoFDO
Test: presubmit
Bug: 195134194
Change-Id: I0133ce99e2d5f415e553f7ae8e2ff93c739d6a32
2021-12-07 02:43:20 +08:00
Treehugger Robot
f8646fc937 Merge "Update RustDefaultVersion to 1.57.0" 2021-12-03 23:04:54 +00:00
Chris Wailes
284b7f32cc Update RustDefaultVersion to 1.57.0
Change-Id: I90e03f864541175e13701184ee74a89ffd03790b
2021-12-03 12:00:59 -08:00
Matthew Maurer
0e714da0f3 rust: Ensure unwind tables are generated
Currently, we are depending on a platform default in rustc's
android_base module to keep unwind tables generated. That default was
configured specifically to change the behavior for Firefox profiling
purposes prior to the existence of the override flag. As a result,
there's no structural reason the default will remain as is.

Bug: 193702360
Test: m
Change-Id: Ic5b57d5a31f4e67a66351a3f0efc530c95aa3836
2021-11-24 22:03:25 +00:00
Pirama Arumuga Nainar
1381dceeba Update rust prebuilt version to 1.56.1p1
Respin rust point release 1.56.1p1 with cherry-pick of
https://reviews.llvm.org/D104556 (needed for Rust coverage).

Bug: https://issuetracker.google.com/issues/206980172
Test: m rust
Change-Id: Ib63a7d8128c86ae9291c4f5275726cfc3bc15f48
2021-11-22 09:55:44 -08:00
Ivan Lozano
9fdba2844e Merge "rust: Add rust_toolchain_library module." 2021-11-17 16:59:15 +00:00
Ivan Lozano
45e0e5b012 rust: Add rust_toolchain_library module.
Adds a new rust_toolchain_library module, a module which can compute the
source path from the toolchain root.

Bug: 140642453
Test: m

Change-Id: I2d90722880279533eb93d2d946ac8c31fc0b1835
2021-11-16 08:51:48 -05:00
Ivan Lozano
aed0adfee9 Merge "rust: Add Recovery Snapshot Soong tests for rust." 2021-11-16 13:47:18 +00:00
Ivan Lozano
b993a835c3 Merge "rust: Add data_libs and data_bins to rust_test" 2021-11-16 13:46:49 +00:00
Ivan Lozano
3e1bc6cc0d Merge "Use new soong_cc_rust_prebuilt.mk" 2021-11-15 22:19:46 +00:00
Ivan Lozano
4e5f07d27b rust: Add data_libs and data_bins to rust_test
Allows defining data binaries and libraries that should be installed
alongside a rust_test module, similar to cc_test.

This refactors cc_test as well so it can define rust_ffi_shared and
rust_binary modules as data.

Bug: 171710847
Test: New Soong tests pass.
Test: Example module installs data appropriately.
Change-Id: I0b56098fb475ec54f9b7a761220d260fe68cbee1
2021-11-15 17:18:42 -05:00
Ivan Lozano
c2ca1ee83d rust: Add Recovery Snapshot Soong tests for rust.
Bug: 197866992
Test: m nothing
Change-Id: I4b5401cf2ffa0dbcc6fea60f90bad4c47a9d5e6b
2021-11-15 17:11:20 -05:00
Ivan Lozano
92a89ed1c5 Merge "rust: Skip global 'fuzzer' sanitizer static bins" 2021-11-15 19:17:54 +00:00
Ivan Lozano
602227bcb5 Merge "rust: Only apply hwasan flags once to fuzz targets" 2021-11-15 16:03:31 +00:00
Ivan Lozano
6c5b8f4e02 rust: Skip global 'fuzzer' sanitizer static bins
The 'fuzzer' sanitizer enables 'hwasan', which is not supported for Rust
static binaries. Make sure we skip applying this sanitizer to those
binaries.

Bug: 204776996
Test: SANITIZE_TARGET=fuzzer m <static_rust_executable>
Change-Id: I619cfab32b46c0811590973344eb5cdbe3f1a119
2021-11-15 09:35:12 -05:00
Ivan Lozano
f3e8fc3f0b rust: Only apply hwasan flags once to fuzz targets
On HWASAN global sanitized builds, fuzz targets had hwasanFlags applied
twice. Rust only allows llvm-args flags to be passed in once however, so
this broke compilation.

Bug: 204915322
Test: SANITIZE_TARGET='hwaddress fuzzer' m <fuzzer>
Change-Id: I4f6c35e04bc4c891d9c66e8a53c3dcb88e8670cf
2021-11-13 07:46:05 -05:00
Treehugger Robot
70275c031e Merge "Allow open-dice to build tests for generatied open-dice rust bindings." 2021-11-12 20:38:53 +00:00
Janis Danisevskis
73f2104588 Allow open-dice to build tests for generatied open-dice rust bindings.
Test: N/A
Bug: 205626417
Change-Id: Iafa79f07005b9863468252828c74ee199279c457
2021-11-12 20:33:49 +00:00
Ivan Lozano
52a3e36c92 Merge "rust: Support new rust_stdlib_prebuilt_host type" 2021-11-12 19:35:03 +00:00
Ivan Lozano
94e8a651fa Merge changes I26198187,Ia904d07b
* changes:
  rust: Support MTE memtag_heap sanitizer
  rust: Support global sanitizers
2021-11-12 19:26:04 +00:00
Ivan Lozano
d06cc748c1 Use new soong_cc_rust_prebuilt.mk
soong_{cc,rust}_prebuilt.mk has been merged. Use the new file.

Bug: N/A, clean-up
Test: m
Change-Id: I3f03e866815f6394aacd8cb0deba04f381b78c29
2021-11-12 13:27:58 -05:00
Ivan Lozano
fba2aa255c rust: Support new rust_stdlib_prebuilt_host type
Refactor Rust prebuilts to support the new rust_stdlib_prebuilt_host
module type, and change the format for depending on the prebuilt host
stdlibs.

Bug: 140642453
Test: m
Change-Id: Ifbc4741818777934e917631c788b20911856c44a
2021-11-12 08:58:17 -05:00
Treehugger Robot
09104df494 Merge "Add hardware/interfaces/security to rust allow list." 2021-11-12 00:55:52 +00:00
Matthew Maurer
739edbc0bc Merge "Update the Rust prebuilt version number to 1.56.1" 2021-11-10 23:57:44 +00:00
Ivan Lozano
aa1a9e4086 Merge "rust: Refactor stripped output file path" 2021-11-10 21:34:21 +00:00
Janis Danisevskis
a9029d1f7e Add hardware/interfaces/security to rust allow list.
Test: N/A
Bug: 205626417
Change-Id: I3a648063c8380074713ce58957e4ac062a331e40
2021-11-10 10:59:46 -08:00
Ivan Lozano
e950cdad6d rust: Add missing variation -D flags to bindgen.
rust_bindgen calls are missing a large set of -D cflags which control
how headers are interpretted for certain variations (such as
-D__ANDROID_VNDK__). This CL introduces the full set of these flags.

Bug: 205609024
Test: rust_bindgen vendor variant builds correctly.

Change-Id: Id781c1f88352e9c238c49619f0dce20f804cfc77
2021-11-10 13:28:55 -05:00
Ivan Lozano
8d10fc39af rust: Refactor stripped output file path
Rust installed files reside in "$MODULE_OUT/stripped/" when they are
stripped, otherwise they reside in "$MODULE_OUT". However, other parts
of Soong assume that installed files are always in $MODULE_OUT
(cc_modules place *unstripped* files in $MODULE_OUT/unstripped).

This notably causes problems when adding Rust modules as test data in
AndroidMkDataPaths. When Rust modules are parsed by AndroidMkDataPaths,
if they are stripped then they incorrectly get installed as test data
with the path:
<install_root>/<relative_install_path>/stripped/file.

This CL refactors how we handle Rust stripped output such that the
installed file always resides in $MODULE_OUT.

Bug: 171710847
Test: Installed files now always reside in $MODULE_OUT
Change-Id: I53a6ff57a0a5a55cd95ea78ae592ce22abfa20c9
2021-11-09 21:43:58 -05:00
Jose "Pepe" Galmes
cd3af1e52c Merge "Support for rust recovery snapshot." 2021-11-09 19:39:32 +00:00
Jose Galmes
d7d99be225 Support for rust recovery snapshot.
Bug: 197866992
Test: source build/envsetup.sh
Test: m -j nothing
Change-Id: I02bb188669cf9f17073592a4622998f96d5f54ac
2021-11-09 08:40:50 -08:00
Treehugger Robot
f50bfc9d47 Merge changes from topic "soong-rust-install"
* changes:
  Move sh_binary module installation into Soong
  Move rust module installation into Soong
2021-11-09 16:29:36 +00:00
Colin Cross
7743557a23 Move rust module installation into Soong
Move rust module installation rules into Soong by overriding
InstallBypassMake.

Bug: 204136549
Bug: 205530905
Test: m checkbuild
Test: m && acloud create --local-instance --local-image
Change-Id: Icc00c4ea5d91ae489c1d9d3b66a072c9de86c717
2021-11-08 13:31:51 -08:00
Baligh Uddin
5dd07e514e update allowlist to new path for bluetooth
BUG: 196026708
Test: TH
Merged-In: I53c4d72321c7c0aff589969989b5f1990aa0133c
Merged-In: Ia511786ea3f47f673d638bdde8581fe0a31a3cc1
Change-Id: I06e125dfa1f063903b5af9b8d37592b9446eb29e
2021-11-06 14:45:48 +00:00
Ivan Lozano
62cd0388eb rust: Support MTE memtag_heap sanitizer
This CL adds support for the MTE memtag_heap sanitizer. This is
controlled via inclusion of an ELF note.

Bug: 170672854
Test: Heap MTE-enabled Rust test binary triggers MTE
Change-Id: I2619818785e86a94667d02b30d102c83456b7925
2021-11-04 10:51:54 -04:00
Ivan Lozano
7b0781d14c rust: Emit toc files for cdylibs
Write toc files that list the exported symbols so dependents are
only rebuilt if the exported symbols change.

This exports the CC function TransformSharedObjectToToc, and also
removes an unused arg from its signature.

Bug: 178185435
Test: New Soong test passes.
Test: m <toc file path>
Change-Id: I7ab69bf7e7f32f25eb4c7ca9d18d877dac1511db
2021-11-03 15:34:50 -04:00
Ivan Lozano
5482d6a991 rust: Support global sanitizers
This CL adds Rust support for the SANITIZE_TARGET options.

This CL includes a couple small fixes to related to HWASAN, ASAN,
ensuring that the Never sanitize property is respected. Notably,
additional llvm-args are passed to ensure that HWASAN-ified Rust/C
interop works correctly.

Bug: 170672854
Bug: 204915322
Test: SANITIZE_TARGET globally applies hwasan to Rust targets
Change-Id: Ia904d07b4618f72cdc95c51f88961905c240ac53
2021-11-03 12:29:01 -04:00
Chris Wailes
60c22ec7ed Update the Rust prebuilt version number to 1.56.1
Bug: 201431381
Test: m rust
Change-Id: Ic3b428ff6eb4b1e346eb37c44468824fc1fb143d
2021-11-02 16:59:01 -07:00
Ivan Lozano
c7a4de25c1 Merge changes I2373d366,I908496d9
* changes:
  rust: Add common interface for binaries
  rust: Support whole static libraries with any name
2021-11-02 12:37:11 +00:00
Dan Willemsen
8528f4ec5e Add Darwin+Arm64 toolchain support
This just sets up the toolchain and allows Darwin+Arm64 to be specified
as a HostCross target. These variants will not be exported to Make, or
be installed on a Soong-only build. A future CL will add support for
universal binaries using these variants.

This config is a bit stranger than the regular 64/32 multilib, as it's
two primary 64-bit configs. And on a Darwin/X86 machine, the Arm64
versions are HostCross (doesn't work on the current machines), while a
Darwin/Arm64 machine, either version works (if Rosetta is installed).

Bug: 203607969
Change-Id: Iacaed77d267773672da027cd74917e33fb1c1e94
2021-11-01 15:07:37 -07:00