Commit graph

82057 commits

Author SHA1 Message Date
Spandan Das
fcea0a8cc4 Add unit test to verify contents of bootclasspath.pb.textproto
The unit test is useful for verifying that
min_sdk_version/max_sdk_version information is populated correctly.
Followup to https://r.android.com/3128893

Bug: 345621958
Test: go test ./apex
Change-Id: Id7696a8cefaab6d0b7f38b65a33e326152ac12d3
2024-06-12 18:22:46 +00:00
Spandan Das
306804fe41 Fix missing missing (min|max)_sdk_version in bootclasspath.pb
bootclasspath.pb.textproto of an apex contains
min_sdk_version/max_sdk_version information of its exported libraries.
It is populated using the stateful minSdkVersion/maxSdkVersion
properties of the SdkLibrary module. These were previously indirectly
populated by invoking `module.Library.GenerateAndroidBuildActions(ctx)`,
which has been removed https://r.android.com/3079425.

This CL updates the implementation to use `MinSdkVersion(ctx)` and
`MaxSdkVersion(ctx)` to get the appropriate values directly and not rely
on GenerateAndroidBuildActions.

Bug: 345621958
Test: cat out/soong/.intermediates/packages/providers/MediaProvider/apex/com.android.mediaprovider-bootclasspath-fragment/android_common_apex30/c49cac19acc21350e0f3590de64d2f7f/bootclasspath.pb.textproto
jars {
path: "/apex/com.android.mediaprovider/javalib/framework-mediaprovider.jar"
classpath: BOOTCLASSPATH
min_sdk_version: "30"
max_sdk_version: ""
}
jars {
path: "/apex/com.android.mediaprovider/javalib/framework-pdf.jar"
classpath: BOOTCLASSPATH
min_sdk_version: "30"
max_sdk_version: ""
}
jars {
path: "/apex/com.android.mediaprovider/javalib/framework-pdf-v.jar"
classpath: BOOTCLASSPATH
min_sdk_version: "34"
max_sdk_version: ""
}
// min_sdk_version values were empty previously

Change-Id: Ia547747b16d255c1a093deee96a1abb61fd47dff
2024-06-12 17:12:56 +00:00
Zi Wang
3125b75d5d Merge "PrebuildEtcModule no longer implements OutputFiles method" into main 2024-06-11 16:55:22 +00:00
Pirama Arumuga Nainar
658bd0540e Merge "Revert^8 "Upgrade to clang-r522817"" into main 2024-06-11 16:25:58 +00:00
Pirama Arumuga Nainar
44755fa745 Merge "Revert^2 "rustc-1.78.0 Build 11910258"" into main 2024-06-11 16:25:58 +00:00
Tomasz Wasilczyk
e07a19bc63 Merge "cc_cmake_snapshot: fix cc_test and cc_benchmark" into main 2024-06-11 16:04:36 +00:00
Aleks Todorov
ef0024775f Merge "cc: Make export_include_dirs configurable" into main 2024-06-11 09:09:30 +00:00
Yi Kong
cdb8501c1e Merge changes from topic "optimize_for_size" into main
* changes:
  Enable MLGO inliner optimization for optimize_for_size cases
  Add "Optimize_for_size" build property
2024-06-11 05:38:13 +00:00
Zi Wang
7524af662b Merge "Use OutputFilesProvider on sh_binary" into main 2024-06-10 22:27:31 +00:00
mrziwang
e2346b87d9 PrebuildEtcModule no longer implements OutputFiles method
In the context of incremental soong, the output files
inter-module-communication will be through OutputFilesProvider.
The OutputFileProducer interface will be deprecated.

These module types are included in this change:
linker_config
llndk_libraries_txt
sanitizer_libraries_txt
java_sdk_library_xml
vndksp_libraries_txt
vndkcore_libraries_txt
vndkprivate_libraries_txt
vndkpublic_libraries_txt

Test: CI
Bug: 339477385
Change-Id: I35575bbad137df5ff8001db9a61ba5b3d13eaa6d
2024-06-10 15:17:07 -07:00
Jihoon Kang
0030148fcb Merge "Remove exportable modules when generating snapshots targeting older platform" into main 2024-06-10 20:46:09 +00:00
Frederick Mayle
61d180ac27 Merge "allow arch_variants for C++'s rtti option" into main 2024-06-10 20:09:58 +00:00
mrziwang
4f58b5f703 Use OutputFilesProvider on sh_binary
In the context of incremental soong, the output files
inter-module-communication will be through OutputFilesProvider.
The OutputFileProducer interface will be deprecated.

Test: CI
Bug: 339477385
Change-Id: I77929210f4ee2d83d110bca1391edc54be69f0db
2024-06-10 12:58:40 -07:00
Paul Duffin
ccad8ff606 Merge "Hide some noisy Metalava issues" into main 2024-06-10 19:47:31 +00:00
Paul Duffin
b679bdd997 Hide some noisy Metalava issues
Changes https://r.android.com/3106478 and https://r.android.com/3110137
unintentionally started reporting some previously hidden issues as
error when new. This change hides those issues again.

Bug: 343157584
Test: m checkapi before and after
Change-Id: I2e04c919ce5c4f2b39fab65afd13bc31725031f0
2024-06-10 20:46:05 +01:00
Jihoon Kang
98aa8fa840 Remove exportable modules when generating snapshots targeting older platform
This change modifies the contents of the generated Android.bp files so
that when generating a snapshot on a older platform, the "exportable"
modules are removed from the bp files, as the "exportable" modules are
first introduced in V and do not exist in older platforms.

Bug: 345162614
Test: ABTD
Change-Id: I2dba51b98deec7805bd796647a66981f237c55a9
2024-06-10 18:12:35 +00:00
Chris Wailes
ffebc5b71f Revert^8 "Upgrade to clang-r522817"
This reverts commit 8c27af2136.

Reason for revert: Re-land the Rust 1.78.0 and Clang r522817 updates

Change-Id: Id1fe3790c9688f2c204ca26b5638e1a245cc65f4
2024-06-10 18:06:52 +00:00
Chris Wailes
c8a44e32cf Revert^2 "rustc-1.78.0 Build 11910258"
This reverts commit 8517b8cd87.

Reason for revert: Re-land the Rust 1.78.0 and Clang r522817 updates

Change-Id: Icd3f4554b0e27ed8543a7c1b0301d4dd8ed4a82b
2024-06-10 18:06:27 +00:00
Zi Wang
2cbebeaf31 Merge "Use OutputFilesProvider on filesystem module types" into main 2024-06-10 17:53:11 +00:00
Aleks Todorov
c9becde031 cc: Make export_include_dirs configurable
Bug: 325444956
Test: m
Test: m [custom cc_library_headers with select]
Change-Id: Iebd66bb3f322276ff0f16dc7765257ea309b081f
2024-06-10 18:37:22 +01:00
Frederick Mayle
7833af17f9 allow arch_variants for C++'s rtti option
Currently, the RTTI setting is ignored for host builds, but we want to
change that. As a prereq, we need a way to explicitly enable/disable it
for host builds.

Bug: 341341056
Test: m
Change-Id: Ie503218181cec4f4ef70063caaa4832f748a8eb5
2024-06-07 16:06:46 -07:00
Zhuoyao Zhang
739b09eddf Merge "Add run_tool_with_logging as a standalone scripts" into main 2024-06-07 22:33:20 +00:00
Treehugger Robot
63de06c142 Merge "Make buildinfo_prop a regular module" into main 2024-06-07 18:36:54 +00:00
mrziwang
555d133433 Use OutputFilesProvider on filesystem module types
Test: CI
Bug: 339477385
Change-Id: I0902726cfef13c716d73c1abc5c9836bdcf3e10f
2024-06-07 11:15:33 -07:00
Cole Faust
daba74e728 Merge "Make buildinfo_prop depend on build number file" into main 2024-06-07 17:27:27 +00:00
Spandan Das
02f1e342cd Merge "Drop PRODUCT_INCLUDE_TAGS from banner vars" into main 2024-06-07 16:01:21 +00:00
Dmitrii Ishcheikin
9f50e8551d Merge changes from topic "revert-3108411-rust-update-prebuilts-1.78.0-PFGKGKZUFP" into main
* changes:
  Revert "rustc-1.78.0 Build 11910258"
  Revert^7 "Upgrade to clang-r522817"
2024-06-07 13:32:57 +00:00
Dmitrii Ishcheikin
8c27af2136 Revert^7 "Upgrade to clang-r522817"
36c6af6bd2

Change-Id: Id3320a7862f1ebbfe49bfa4caa36e7ccfd515524
2024-06-07 13:06:19 +00:00
Dmitrii Ishcheikin
8517b8cd87 Revert "rustc-1.78.0 Build 11910258"
Revert submission 3108411-rust-update-prebuilts-1.78.0

Reason for revert: b/345708905

Reverted changes: /q/submissionid:3108411-rust-update-prebuilts-1.78.0

Change-Id: I66b95447ddfcb3d35e5f4305a6d9feb2896fbdf7
2024-06-07 13:06:19 +00:00
Treehugger Robot
620b0c46d9 Merge "Regard out/soong/release-config as a source directory" into main 2024-06-07 05:12:31 +00:00
Chris Wailes
86cbd9e46d Merge "Revert^6 "Upgrade to clang-r522817"" into main 2024-06-07 03:31:39 +00:00
Chris Wailes
a4760cfbc0 Merge "rustc-1.78.0 Build 11910258" into main 2024-06-07 03:31:39 +00:00
Zi Wang
7daabf71ef Merge "Use OutputFilesProvider on gen_notice" into main 2024-06-07 02:36:54 +00:00
Treehugger Robot
db664386ec Merge "release_config: Do not force ranking in inheritance graph" into main 2024-06-07 01:07:53 +00:00
Spandan Das
f4c802bcd6 Drop PRODUCT_INCLUDE_TAGS from banner vars
PRODUCT_INCLUDE_TAGS was previously used alongside
blueprint_package_include to prune Android.bp files from soong analysis.
With the deprecation of blueprint_package_includes, this product config
variable bcomes a noop and does not provide useful information in
banner.

Test: NA
Bug: 333316620
Change-Id: Id7a1465c06a45f12b4ecb1bf80decddb657adce2
2024-06-07 00:03:20 +00:00
mrziwang
1b25df0a01 Use OutputFilesProvider on gen_notice
Test: CI
Bug: 339477385
Change-Id: Iae2ff3a8017e8e073391afe648793424cc0eadbd
2024-06-06 15:20:42 -07:00
Treehugger Robot
211fdd6618 Merge "Drop IncludeTags" into main 2024-06-06 22:12:38 +00:00
Zi Wang
aff9a2c7ac Merge "Initialize TaggedOutputFiles before updating it" into main 2024-06-06 21:54:15 +00:00
Cole Faust
a700d7fa9f Make buildinfo_prop a regular module
Singleton modules have the capability to do a lot more than regular
modules, which is often problematic for incremental builds.
buildinfo_prop wasn't using those capabilities, so make it a regular
module type to prove it.

Bug: 332733525
Test: m out/target/product/emu64x/obj/ETC/buildinfo.prop_intermediates/buildinfo.prop
Change-Id: I288bf2fd4727a17ff299272d4cfcc611e064c55a
2024-06-06 14:49:23 -07:00
Cole Faust
89b4d18ba1 Make buildinfo_prop depend on build number file
buildinfo.prop should be rebuilt when the build number file changes,
because it needs to contain the up to date build number as well.

When this was implemented in make, that dependency was added. But when
we converted it to soong, it was removed. (aosp/3015794 and
aosp/3015818)

Fixes: 332733525
Test: m out/target/product/emu64x/obj/ETC/buildinfo.prop_intermediates/buildinfo.prop repeatedly, see that it rebuilds
Change-Id: Ife9bfa7d48f2578984761f0a78eda3513b324298
2024-06-06 14:39:32 -07:00
LaMont Jones
4bb19b2414 release_config: Do not force ranking in inheritance graph
Let graphvis decide how to best display the release config graph.
Also add some color to the graph.

Bug: None
Test: manual
Change-Id: If8b9eb41eb78bd553fd5543938a2c1c098b41591
2024-06-06 12:22:26 -07:00
mrziwang
57768d7437 Initialize TaggedOutputFiles before updating it
Test: CI
Change-Id: I176ec626ee4165af62344bf918b665d6414f6d83
2024-06-06 11:31:51 -07:00
Treehugger Robot
4eef64a70b Merge "Disallow unknown fields in soong variables file" into main 2024-06-06 17:51:57 +00:00
Yi Kong
2cd77d671c Enable MLGO inliner optimization for optimize_for_size cases
This helps reduce binary size for these projects by ~3%.

Test: presubmit
Bug: 342090838
Change-Id: Ie1e0586ddf5f40aa1e81fc2628a6499093de9699
2024-06-06 15:01:59 +09:00
Yi Kong
5786f5cf1d Add "Optimize_for_size" build property
Projects with this property will be aggresively optimized for size. This
is useful for large binaries that are rarely executed and performance
insensitive (e.g. debugging tools, deprecated libraries).

This changeset reduces total system native binary size by 1.1%.

Test: presubmit
Bug: 342090838
Change-Id: I46a1db0c44e2e7d482b14eca1299f8ad48661d2d
2024-06-06 14:42:06 +09:00
Treehugger Robot
4039516f32 Merge "Identify profile providing apexes using ApexInfo" into main 2024-06-06 01:10:12 +00:00
Zhuoyao Zhang
0edf1d38e2 Add run_tool_with_logging as a standalone scripts
As part of the build team's effort to cleanup envseup.sh.
Remove the run_tool_with_logging rundtion from envsetup.sh and add it
as a standalone script under build/soong/bin

Test: atest run_tool_with_logging
Test: manually do source envsetup.sh and run adb devices -l and check
the event log is sent to clearcut, tested with both bash and zsh

Bug: 342066042
Change-Id: I2fbc69a064832af61d75d14b0e33a62cb56186df
2024-06-06 00:18:29 +00:00
Spandan Das
7fd531f5d1 Identify profile providing apexes using ApexInfo
`com.android.art` and its overrides include a `etc/boot-image.prof`
which is used on device for profile guided dexopt.
```
$ deapexer list <path_in_product_out>/com.android.art.apex | grep
boot-image
$ deapexer list <path_in_product_out>/com.google.android.art.apex | grep
boot-image
```

To identify that we should include a boot-image.prof in the override
apexes, we currently look at ApexInfo.InApexVariants in the context of
art's bootclasspath fragment module. InApexVariants are colated based on
the min_sdk_version of the top-level apex. At ToT, we have a single
variant of `art-bootlcasspath-fragment` for aosp art apex, google art
apex and google go art apex.

When google go art apex overrides the min_sdk_version, ApexInfo is
cleaved, and two distinct variants of art-bootclasspath-fragment are
created. The one corresponding to go art apex does not know we should
include boot-image.prof

To fix this, use AllApexInfoProvider instead. If any of the apexInfos
corresponds to com.android.art, include etc/boot-image.prof

Test: Added a unit test
Test: With https://b.corp.google.com/issues/345173231#comment2 reverted,
m com.google.android.go.art && deapexer list <apex> # verified that
boot-image.prof exists

Bug: 345173231
Bug: 295311875

Change-Id: I5a0e8f74725388f05343c64f268260b1eb139ae5
2024-06-05 21:32:23 +00:00
Tomasz Wasilczyk
6e2b8c022c cc_cmake_snapshot: fix cc_test and cc_benchmark
Bug: 341997808
Test: aosp/3083875
Change-Id: Id6c2c5032a9963b74485fbfe40c0f2bde1dae5a4
2024-06-05 14:07:24 -07:00
Steven Moreland
c562e50fe5 Merge "Shipping_api_level in build." into main 2024-06-05 19:23:20 +00:00