Commit graph

72513 commits

Author SHA1 Message Date
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
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
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
Aditya Choudhary
c400022f0a Merge "Set testModule to true in cc.NewTest()." into main 2023-11-21 19:53:53 +00:00
Aditya Choudhary
b7b3de8307 Add test for soong/testing/test_spec.
This CL adds test for test_spec.go and all_test_specs.go (singleton).

Bug: 296873595
Test: m nothing --no-skip-soong-tests -j96

Change-Id: I5010c68512e75d1b9a337c02da86faac15e376fe
2023-11-21 17:31:07 +00:00
Aditya Choudhary
29766f4d98 Merge "Add Singleton class to collect and validate test spec metadata." into main 2023-11-21 16:08:40 +00:00
Aditya Choudhary
4b6eaf4bd1 Set testModule to true in cc.NewTest().
This Cl sets testModule field to True in cc.NewTest(). This will cover "cc_test", "cc_test_host" and "art_cc_test".

Change-Id: I4a8db86835b195db34fd9f86560e7bf9321fbd7d
2023-11-21 15:49:19 +00:00
Aditya Choudhary
2368e9ea9e Add Singleton class to collect and validate test spec metadata.
Bug: 296873595
Test: Manual testing (Will add unit test case in the next change.)
Change-Id: Ic4177c5f76602088d52a31ca8d9fbaa703855837
2023-11-21 14:06:57 +00:00
Aditya Choudhary
bc34d495c9 Merge "Add test spec provider to test modules." into main 2023-11-21 09:17:11 +00:00
David Srbecky
3f7d0f6797 Merge "resourceshrinker: Add dexContainerExperiment flag" into main 2023-11-21 08:30:23 +00:00
Treehugger Robot
c9affafb72 Merge "Remove multidex version genrules" into main 2023-11-21 08:00:40 +00:00
Treehugger Robot
ff99c2b957 Merge "Sandbox fdt genrules" into main 2023-11-21 07:04:39 +00:00
Cole Faust
5f61e0572f Sandbox r8retrace genrules
r8retrace-run-retrace appears to already work with sandboxing.

r8retrace-dexdump-sample-app gets a diff in the output files due to
differing paths in sandboxed/non-sandboxed environments, but the
meaningful content is still the same.

Bug: 307824623
Test: ./build/soong/tests/genrule_sandbox_test.py r8retrace-dexdump-sample-app r8retrace-run-retrace
Change-Id: Ice0eeb762d35a4b32e8fb6d480ecf6d38959d0cc
2023-11-20 16:01:37 -08:00
Cole Faust
c11ccb9178 Remove multidex version genrules
These version files appear to be unused, and we don't really want
to support having the build access the git history.

Bug: 307824623
Test: Presubmits
Change-Id: Id5700bf4a56955bdf6edd4c50ceefa4184f54555
2023-11-20 15:43:54 -08:00
Cole Faust
4a36b9e529 Sandbox fdt genrules
go/roboleaf-busy-beavers-sandboxing

Bug: 307824623
Test: m fdt_test_tree_empty_memory_range_dtb fdt_test_tree_multiple_memory_ranges_dtb fdt_test_tree_one_memory_range_dtb
Change-Id: Id79e30957b60a27f5929698c499f788014708197
2023-11-20 15:11:44 -08:00
Aditya Choudhary
87b2ab28a8 Add test spec provider to test modules.
Provider added for the following test modules in this change: art_cc_test, cc_benchmark, cc_fuzz, cc_test, cc_test_host, rust_test,and rust_test_host.

Bug: 296873595
Test: Manual test
Change-Id: I815680529bcbecacb3a2bdb8f3746053afdee48c
2023-11-20 21:52:56 +00:00
Matthew Maurer
d221d31534 rust: move crateRootPath to compiler
Test: m nothing
Bug: 309943184
Change-Id: I45028945357c394301d93ca7995a4f9adf281931
2023-11-20 21:02:40 +00:00