Commit Graph

72527 Commits

Author SHA1 Message Date
Yu Liu
eae7b36699 Add container property to aconfig_declarations.
Bug: 311155208
Test: Unit test
Change-Id: I7b187138856d0144203961e82b6dad5e2f8eed9d
2023-11-28 12:37:02 -08:00
Yi-Yo Chiang
62093cf7fc Merge "Deprecate BOARD_BUILD_GKI_BOOT_IMAGE_WITHOUT_RAMDISK" into main 2023-11-28 00:38:44 +00:00
Cole Faust
fc1e0cec4c Sandbox ue_unittest_erofs_imgs
This already works with sandboxing, I'm not sure why it was added.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py ue_unittest_erofs_imgs
Change-Id: I8d2c151e3bc6ed87e1d147e0ae316397ad56c4c8
2023-11-27 14:55:06 -08:00
Treehugger Robot
63e3ecbaa3 Merge "Remove google_clockwork list of soong plugins" into main 2023-11-27 21:49:39 +00:00
Treehugger Robot
ae4cad3cda Merge "Sandbox libc_musl_sysroot_bits" into main 2023-11-27 21:32:58 +00:00
Treehugger Robot
1f294415f5 Merge "Sandbox pvmfw_fdt_template_rs" into main 2023-11-27 21:32:57 +00:00
Treehugger Robot
359611c1df Merge "rust: rust-project.json: Skip disabled modules" into main 2023-11-27 21:12:11 +00:00
Cole Faust
77beb6f12a Remove google_clockwork list of soong plugins
The only plugin in that list has been removed.

Bug: 307824623
Test: Presubmits
Change-Id: Ieceb8610cfb2425500659a009703895a4f499cb1
2023-11-27 12:29:55 -08:00
Cole Faust
c115217249 Sandbox pvmfw_fdt_template_rs
This already works with sandboxing, I'm not sure why it was added.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py pvmfw_fdt_template_rs
Change-Id: I43390274740144122aae2a225807a6e1100c85c1
2023-11-27 12:28:14 -08:00
Cole Faust
eb9028d240 Sandbox libc_musl_sysroot_bits
Sandboxing it produces this diff:

  $ diff <(zipinfo -l out_not_sandboxed/soong/.intermediates/external/musl/libc_musl_sysroot_bits/linux_glibc_x86_64/gen/  libc_musl_sysroot_bits.zip) <(zipinfo -l out/soong/.intermediates/external/musl/libc_musl_sysroot_bits/linux_glibc_x86_64/gen/  libc_musl_sysroot_bits.zip)
  1,3c1,2
  < Archive:  out_not_sandboxed/soong/.intermediates/external/musl/libc_musl_sysroot_bits/linux_glibc_x86_64/gen/  libc_musl_sysroot_bits.zip
  < Zip file size: 8535 bytes, number of entries: 16
  < -rw-r--r--  2.0 unx      421 bl      225 defN 08-Jan-01 00:00 include/bits/alltypes.h.in
  ---
  > Archive:  out/soong/.intermediates/external/musl/libc_musl_sysroot_bits/linux_glibc_x86_64/gen/libc_musl_sysroot_bits.zip
  > Zip file size: 5358 bytes, number of entries: 14
  17d15
  < -rw-r--r--  2.0 unx    10384 bl     2666 defN 08-Jan-01 00:00 include/bits/syscall.h.in
  19c17
  < 16 files, 21039 bytes uncompressed, 6439 bytes compressed:  69.4%
  ---

So the alltypes.h.in and syscall.h.in are removed from the zip after
sandboxing. This seems good, because those two files are handled
separately already in that Android.bp file, and are not regular header
files like the rest of the zip file.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py libc_musl_sysroot_bits
Change-Id: I46b6340046ad7df85ea4fc9c54b46ade305661e6
2023-11-27 12:18:52 -08:00
Treehugger Robot
4e788f2456 Merge "Sandbox tflite-support genrules" into main 2023-11-27 18:41:42 +00:00
Matthew Maurer
5a3c71c1aa rust: rust-project.json: Skip disabled modules
Disabled modules may not have a valid root path.

Bug: 313410568
Test: SOONG_GEN_RUST_PROJECT=1 m nothing
Change-Id: I253cca18493193245aa198adfce5fd75cf27cefb
2023-11-27 17:54:03 +00:00
David Srbecky
ea5bb25378 Merge "Change position of R8/D8 flags on the command line." into main 2023-11-27 15:44:04 +00:00
David Srbecky
bda964cf90 Change position of R8/D8 flags on the command line.
The wrapper script requires that all -J* options are passed first.

Test: m
Change-Id: Idd1da394c8a46db3485a1b31284eb6f398e3ba27
2023-11-27 14:27:45 +00:00
Jamie Garside
e570ace2e4 Add the ability for a java_sdk_library to depend on another.
This simply exports all of the uses_libs: [] libraries into a
"dependency=''" statement in the generated XML file (with the <library>
stanza in it).

Test: `go test` in java/
Bug: 184396657

NOTE FOR REVIEWERS - original patch and result patch are not identical.
PLEASE REVIEW CAREFULLY.
Diffs between the patches:
 func formattedDependenciesAttribute(dependencies []string) string {
> +	if dependencies == nil {
> +		return ""
> +	}
> +	return fmt.Sprintf(`        dependency=\"%s\"\n`, strings.Join(dependencies, ":"))
> +}
> +
> +	dependenciesAttr := formattedDependenciesAttribute(module.properties.Uses_libs_dependencies)
> +		dependenciesAttr,
> --- java/sdk_library_test.go
> +++ java/sdk_library_test.go
> +
> +func TestSdkLibraryDependency(t *testing.T) {
> +	result := android.GroupFixturePreparers(
> +		prepareForJavaTest,
> +		PrepareForTestWithJavaSdkLibraryFiles,
> +		FixtureWithPrebuiltApis(map[string][]string{
> +			"30": {"bar", "foo"},
> +		}),
> +	).RunTestWithBp(t,
> +		`
> +		java_sdk_library {
> +			name: "foo",
> +			srcs: ["a.java", "b.java"],
> +			api_packages: ["foo"],
> +		}
> +		
> +		java_sdk_library {
> +			name: "bar",
> +			srcs: ["c.java", "b.java"],
> +			libs: [
> +				"foo",
> +			],
> +			uses_libs: [
> +				"foo",
> +			],
> +		}
> +`)
> +	
> +	barPermissions := result.ModuleForTests("bar.xml", "android_common").Rule("java_sdk_xml")
> +	
> +	android.AssertStringDoesContain(t, "bar.xml java_sdk_xml command", barPermissions.RuleParams.Command, `dependency=\"foo\"`)
> +}

Original patch:
 diff --git a/java/sdk_library.go b/java/sdk_library.go
old mode 100644
new mode 100644
--- a/java/sdk_library.go
+++ b/java/sdk_library.go
@@ -1993,6 +1993,7 @@
 		Min_device_sdk            *string
 		Max_device_sdk            *string
 		Sdk_library_min_api_level *string
+		Uses_libs_dependencies    []string
 	}{
 		Name:                      proptools.StringPtr(module.xmlPermissionsModuleName()),
 		Lib_name:                  proptools.StringPtr(module.BaseModuleName()),
@@ -2002,6 +2003,7 @@
 		Min_device_sdk:            module.commonSdkLibraryProperties.Min_device_sdk,
 		Max_device_sdk:            module.commonSdkLibraryProperties.Max_device_sdk,
 		Sdk_library_min_api_level: &moduleMinApiLevelStr,
+		Uses_libs_dependencies:    module.usesLibraryProperties.Uses_libs,
 	}
 
 	mctx.CreateModule(sdkLibraryXmlFactory, &props)
@@ -2968,6 +2970,11 @@
 	//
 	// This value comes from the ApiLevel of the MinSdkVersion property.
 	Sdk_library_min_api_level *string
+
+	// Uses-libs dependencies that the shared libra
[[[Original patch trimmed due to size. Decoded string size: 3559. Decoded string SHA1: 67fbd040aa818732a686514c4556850c8c36dc8d.]]]

Result patch:
 diff --git a/java/sdk_library.go b/java/sdk_library.go
index fb27812..fbfe509 100644
--- a/java/sdk_library.go
+++ b/java/sdk_library.go
@@ -1993,6 +1993,7 @@
 		Min_device_sdk            *string
 		Max_device_sdk            *string
 		Sdk_library_min_api_level *string
+		Uses_libs_dependencies    []string
 	}{
 		Name:                      proptools.StringPtr(module.xmlPermissionsModuleName()),
 		Lib_name:                  proptools.StringPtr(module.BaseModuleName()),
@@ -2002,6 +2003,7 @@
 		Min_device_sdk:            module.commonSdkLibraryProperties.Min_device_sdk,
 		Max_device_sdk:            module.commonSdkLibraryProperties.Max_device_sdk,
 		Sdk_library_min_api_level: &moduleMinApiLevelStr,
+		Uses_libs_dependencies:    module.usesLibraryProperties.Uses_libs,
 	}
 
 	mctx.CreateModule(sdkLibraryXmlFactory, &props)
@@ -2968,6 +2970,11 @@
 	//
 	// This value comes from the ApiLevel of the MinSdkVersion property.
 	Sdk_library_min_api_level *string
+
+	// Uses-libs dependencies that the shared library
[[[Result patch trimmed due to size. Decoded string size: 3614. Decoded string SHA1: b5730ecbeeaad420439ddb67eaaa9150ede94585.]]]

Change-Id: I73f69e2a4573e416492f68e083fe739f3f75b721
2023-11-27 12:07:36 +00:00
Treehugger Robot
40b8b16042 Merge "Sandbox libbssl_sys_src_nostd" into main 2023-11-27 10:28:27 +00:00
Yi-Yo Chiang
939fe1a751 Deprecate BOARD_BUILD_GKI_BOOT_IMAGE_WITHOUT_RAMDISK
These variables are no longer used. We don't build GKI in the platform
tree anymore. Remove these vars as we are not maintaining these.

Bug: 229701033
Test: presubmit
Change-Id: I7551aa37a049f3bc9252559a18feb0f6bdf0a548
2023-11-24 15:07:21 +08:00
Seungjae Yoo
55edc0cd2d Merge "Support adding AVB properties into vbmeta module" into main 2023-11-24 01:21:46 +00:00
Treehugger Robot
d766a44530 Merge "Sandbox r8retrace genrules" into main 2023-11-23 00:17:28 +00:00
Cole Faust
1ddb8125d3 Sandbox libbssl_sys_src_nostd
go/roboleaf-busy-beavers-sandboxing

gensrcs should require output_extension to be set, when it's not,
you get some weird filename like `lib.`. Switch to genrules for
simplicity.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py libbssl_sys_src_nostd
Change-Id: I4ec2686c560439c3150b74b14e313ed6b688720c
2023-11-22 15:23:50 -08:00
Cole Faust
954ef637e9 Merge "Sandbox trout genrules" into main 2023-11-22 22:05:42 +00:00
Matthew Maurer
b103659c0b Merge changes I0caddbf6,Iee20b060,I6c92580b,I45028945,Ia7dd5220, ... into main
* changes:
  rust: Resolve crate roots outside rust-project
  rust: Cache crateRootPath to avoid ctx
  rust: internalize srcPathFromModuleSrcs
  rust: move crateRootPath to compiler
  rust: Privatize Cargo* methods on compiler
  rust: Move compiler interface to compiler.go
2023-11-22 20:37:27 +00:00
Cole Faust
28e46107cf Sandbox trout genrules
These were fixed in aosp/2838463, aosp/2839595, pa/2668052, and
pa/2668054.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py TracingVMProtoStub_cc TracingVMProtoStub_h VehicleServerProtoStub_cc@default-grpc VehicleServerProtoStub_cc@2.0-grpc-trout VehicleServerProtoStub_h@2.0-grpc-trout VehicleServerProtoStub_h@default-grpc
Change-Id: I9d21d608773e2974f8fca8af4dd16a654e8eb128
2023-11-22 12:09:27 -08:00
Cole Faust
f7474880a1 Sandbox atest_integration_fake_src
go/roboleaf-busy-beavers-sandboxing

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py atest_integration_fake_src
Change-Id: Ib3ae70b877227df794fec5516a754a9c32b06637
2023-11-22 11:07:06 -08:00
Inseob Kim
6a4bb378df Merge "Allow apex to use generated file_contexts" into main 2023-11-22 07:45:53 +00:00
Yi Kong
78a456e771 Merge "Remove unneeded MLGO cflag" into main 2023-11-22 06:06:47 +00:00
Yi Kong
8fb0b498db Remove unneeded MLGO cflag
For LTO compilation, we do not need MLGO flags in cflags, since codegen
happens during link only.

Fixes compiler warnings for unused command line argument.

Test: presubmit
Change-Id: I361e4292b10a3582fd5c69fa7b5678c654b44a0f
2023-11-22 06:06:36 +00:00
Treehugger Robot
917ea12077 Merge "Sandbox MultiDexLegacyTestApp_genrule and android-cts-verifier" into main 2023-11-22 05:56:46 +00:00
Seungjae Yoo
9f263710ff Support adding AVB properties into vbmeta module
Bug: 285855436
Test: m

Change-Id: I5b0e14783ac927365dd98718bf399e94ab76aa13
2023-11-22 13:00:25 +09:00
Cole Faust
0931c29463 Sandbox tflite-support genrules
go/roboleaf-busy-beavers-sandboxing

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py tflite_support_metadata_schema tflite_support_spm_config tflite_support_spm_encoder_config
Change-Id: Iab64f9f3125977685a5aa1ccffb093a68e4ac68b
2023-11-21 18:00:38 -08:00
Cole Faust
4a0be5cc17 Sandbox MultiDexLegacyTestApp_genrule and android-cts-verifier
These both work with sandboxing already, I'm not sure why they
were added to this list.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py android-cts-verifier MultiDexLegacyTestApp_genrule
Change-Id: Ie5a194fbe202b84a30eb3738d07ffb4ec9061bca
2023-11-21 17:04:24 -08:00
Matthew Maurer
db72f7ed80 rust: Resolve crate roots outside rust-project
Previously, we manually re-computed crate roots inside project_json for
rendering rust-project.json. In addition to added complexity, this meant
that generated sources and glob sources would not render correctly - it
would select e.g. `src/**.rs` or `:foo` as a crate root.

Use a centralized computation of crate roots instead.

Bug: 309943184
Test: SOONG_GEN_RUST_PROJECT=1 m nothing, compare rust-project.json
Change-Id: I0caddbf600d025a0041f45e69812cdd6f1761234
2023-11-22 00:52:34 +00:00
Matthew Maurer
a28404a7b0 rust: Cache crateRootPath to avoid ctx
This makes it possible to call crateRootPath in situations where a
ModuleContext is unavailable.

Test: m nothing
Bug: 309943184
Change-Id: Iee20b0606954a18ca516cdac40917d0016f94a05
2023-11-22 00:52:14 +00:00
Matthew Maurer
1d8e20d744 rust: internalize srcPathFromModuleSrcs
This was frequently misused (for example, in the prebuilts module, it
was used as a complex "assert(len(srcs))==1"), and can be superceded by
getCrateRoot anywhere it was used. It's now only called from
compiler.go, and can drop the second return parameter, as it was only
actually used by the prebuilt assert misuse.

Bug: 309943184
Test: m nothing
Change-Id: I6c92580bc8f0ecb7586c544056b5409e6dd280e7
2023-11-22 00:52:10 +00:00
Treehugger Robot
9be9a126d1 Merge "Use result.Config.PrebuiltOS() to get prebuiltHost in test_spec_test" into main 2023-11-22 00:44:03 +00:00
Cole Faust
852b82e5c2 Merge "Sandbox vndk_abi_dump_zip" into main 2023-11-21 23:53:56 +00:00
Pirama Arumuga Nainar
d03958d457 Merge "Revert "Remove flags rejected by RBE input processor"" into main 2023-11-21 23:45:12 +00:00
Cole Faust
1f6fb9b419 Merge "Sandbox awkgram.tab.h" into main 2023-11-21 23:36:42 +00:00
Treehugger Robot
964a084264 Merge "Sandbox emp_ematch genrules" into main 2023-11-21 23:22:03 +00:00
Aditya Choudhary
356296240e Use result.Config.PrebuiltOS() to get prebuiltHost in test_spec_test
Bug: 312536783
Bug: 312536905
Test: m nothing --no-skip-soong-tests -j96

Change-Id: I1e12281927269d42ae796348b223030acfd6ecfa
2023-11-21 23:14:01 +00:00
Treehugger Robot
024adceb24 Merge "Sandbox angle_commit_id" into main 2023-11-21 22:47:23 +00:00
Cole Faust
ae36d6b964 Sandbox awkgram.tab.h
Sandboxing it generates this diff:

  38,39c38,39
  < #ifndef YY_YY_OUT_SOONG_TEMP_SBOX_794A09CEE4E110D9FF38139A8943928FFD7288A5_OUT_AWKGRAM_TAB_H_INCLUDED
  < # define YY_YY_OUT_SOONG_TEMP_SBOX_794A09CEE4E110D9FF38139A8943928FFD7288A5_OUT_AWKGRAM_TAB_H_INCLUDED
  ---
  > #ifndef YY_YY_OUT_AWKGRAM_TAB_H_INCLUDED
  > # define YY_YY_OUT_AWKGRAM_TAB_H_INCLUDED
  280c280
  < #endif /* !YY_YY_OUT_SOONG_TEMP_SBOX_794A09CEE4E110D9FF38139A8943928FFD7288A5_OUT_AWKGRAM_TAB_H_INCLUDED  */
  ---
  > #endif /* !YY_YY_OUT_AWKGRAM_TAB_H_INCLUDED  */

Which is acceptable, the ifdef is based on the path to the file and
just there to prevent duplicate imports.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py awkgram.tab.h
Change-Id: I85c5e0f65e97d18f1aa8b36fa6b19402d2da6c8c
2023-11-21 14:18:27 -08:00
Cole Faust
b12a98651d Merge "Sandbox c2hal_test_genc++[_headers]" into main 2023-11-21 22:08:31 +00:00
Cole Faust
763710ca78 Sandbox vndk_abi_dump_zip
Sandboxing it generates this diff in it's output zip file:

  1,4c1,2
  < Archive:  out_not_sandboxed/soong/.intermediates/prebuilts/abi-dumps/vndk/vndk_abi_dump_zip/gen/vndk_abi_dump.zip
  < Zip file size: 319522663 bytes, number of entries: 7462
  < -rw-r--r--  2.0 unx     1055 bl      612 defN 08-Jan-01 00:00 Android.bp
  < -rw-r--r--  2.0 unx      143 bl       99 defN 08-Jan-01 00:00 OWNERS
  ---
  > Archive:  out/soong/.intermediates/prebuilts/abi-dumps/vndk/vndk_abi_dump_zip/gen/vndk_abi_dump.zip
  > Zip file size: 319519888 bytes, number of entries: 7454
  6810d6807
  < -rw-r--r--  2.0 unx      722 bl      142 defN 08-Jan-01 00:00 34/64/arm/source-based/config.json
  6926d6922
  < -rw-r--r--  2.0 unx      722 bl      142 defN 08-Jan-01 00:00 34/64/arm64/source-based/config.json
  7042d7037
  < -rw-r--r--  2.0 unx      722 bl      142 defN 08-Jan-01 00:00 34/64/arm_arm64/source-based/config.json
  7158d7152
  < -rw-r--r--  2.0 unx      722 bl      142 defN 08-Jan-01 00:00 34/64/x86/source-based/config.json
  7274d7267
  < -rw-r--r--  2.0 unx      722 bl      142 defN 08-Jan-01 00:00 34/64/x86_64/source-based/config.json
  7390d7382
  < -rw-r--r--  2.0 unx      722 bl      142 defN 08-Jan-01 00:00 34/64/x86_x86_64/source-based/config.json
  7465c7457
  < 7462 files, 5412913325 bytes uncompressed, 317891705 bytes compressed:  94.1%
  ---
  > 7454 files, 5412907795 bytes uncompressed, 317890142 bytes compressed:  94.1%

So sandboxing removes some files from the zip. It appears that the
intention of this zip file was to include a bunch of .lsdump files,
and these files that were removed were extraneous.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py vndk_abi_dump_zip
Change-Id: I15df4a4b54df362c30e2b231f6fed586cf0a267f
2023-11-21 14:04:52 -08:00
Treehugger Robot
23abfe7291 Merge "Sandbox libchrome genrules" into main 2023-11-21 22:04:03 +00:00
Cole Faust
babb750cdf Sandbox angle_commit_id
Sandboxing it generates this diff:

  1c1
  < #define ANGLE_COMMIT_HASH "1f7a2ce0bf57"
  ---
  > #define ANGLE_COMMIT_HASH "unknown hash"
  3,4c3,4
  < #define ANGLE_COMMIT_DATE "2023-11-17 17:33:59 +0000"
  < #define ANGLE_COMMIT_POSITION 26027
  ---
  > #define ANGLE_COMMIT_DATE "unknown date"
  > #define ANGLE_COMMIT_POSITION 0

These constants appear to be unused, and we don't really want the build
to inspect the git history, so just let them be unkown.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py angle_commit_id
Change-Id: I3e35af14d13142927ded9477e975576d7324c6b7
2023-11-21 13:56:27 -08:00
Cole Faust
8d99fa4d9d Sandbox emp_ematch genrules
These genrules already work with sandboxing, but bison emits #line
directives that reference filepaths. These paths differ between
sandboxed and non-sandboxed builds, which caused
genrule_sandboxing_test.py to think that they didn't work with
sandboxing.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py emp_ematch.yacc.c emp_ematch.yacc.h
Change-Id: I85ed0f80dee7997af6b08a37b12e9c0ad0bd8386
2023-11-21 13:28:42 -08:00
Cole Faust
e5d9c8d5f7 Sandbox c2hal_test_genc++[_headers]
These genrules already work with sandboxing, I'm not sure why they
were added to the list.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py c2hal_test_genc++_headers c2hal_test_genc++
Change-Id: I697c9cff1db0bf71b3608684fde73535a72f71b2
2023-11-21 12:50:57 -08:00
Cole Faust
6753118f49 Sandbox libchrome genrules
These genrules already work with sandboxing, but they write the path
to a tool into a comment in their outputs, which differs between
sandboxing and non-sandboxing builds. This made genrule_sandbox_test.py
think that they didn't work with sandboxing.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py libchrome-include libchrome-crypto-include
Change-Id: Ibcad839e9d374a2f992d051805548c58303cf7ef
2023-11-21 12:40:34 -08:00
Pirama Arumuga Nainar
6c771e7d29 Revert "Remove flags rejected by RBE input processor"
This reverts commit a4724a0c4e.

Reason for revert: reclient has an updated deps scanner now.
Bug: http://b/248371171
Test: enable RBE; RBE_CLANG_TIDY_EXEC_STRATEGY=remote; make tidy-soong_subset


(cherry picked from https://android-review.googlesource.com/q/commit:2c36e5efceae94424b513878cf6dc4e9640651ab)
Merged-In: Id876bd7eee1e5606f8dc05903f77f135b47da360
Change-Id: Id876bd7eee1e5606f8dc05903f77f135b47da360
2023-11-21 19:54:27 +00:00