Commit Graph

81812 Commits

Author SHA1 Message Date
Treehugger Robot
1deecc9f9b Merge "Delete jmod workDir" into main am: f34748af55 am: 834f963398
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3004910

Change-Id: I3ea7ec38a43b83045ed4cab86249b069f44b1423
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-15 03:10:25 +00:00
Treehugger Robot
834f963398 Merge "Delete jmod workDir" into main am: f34748af55
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3004910

Change-Id: Ibd7b645c096f22caa004405783de6e75386e2954
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-15 02:51:25 +00:00
Treehugger Robot
f34748af55 Merge "Delete jmod workDir" into main 2024-03-15 02:35:04 +00:00
Cole Faust
7ef61d76f8 Delete jmod workDir
Files in this directory aren't exposed to the rest of the build, so
deleting them saves some space. The `jmod create` command was also
producing non-deterministic files, which are not relevant because
they're not used anywhere else, but it makes it easier to find
non-determinism that matters if we delete them.

Test: Presubmits
Change-Id: I5d57826b438368f24a7a2a7ab1ccd6c16f240124
2024-03-14 18:15:28 -07:00
Treehugger Robot
d314ae4f8a Merge "Make select statements work on path properties" into main am: f1ffd090e7 am: ae6525d828
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3001143

Change-Id: Ib3b4f406e4f8adc408c545f27cf69d44123babf9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-15 00:31:03 +00:00
Treehugger Robot
ae6525d828 Merge "Make select statements work on path properties" into main am: f1ffd090e7
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3001143

Change-Id: I2ad1de3d3bf4a3cbb3e2a4189089b15b394b425b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-15 00:11:05 +00:00
Treehugger Robot
f1ffd090e7 Merge "Make select statements work on path properties" into main 2024-03-14 23:52:24 +00:00
Treehugger Robot
aca8f49e54 Merge "Generate info about the selected app variant in platform builds" into main am: 4e4939665e am: b2c91edbba
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3002986

Change-Id: I9fd1efc56101e9eabcfaf92b1ae159b1d7203e09
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 22:40:54 +00:00
Cole Faust
bdd8aeeb58 Make select statements work on path properties
Fixes: 329711542
Test: go test
Change-Id: I71f489c26c535174e226e4a9ab449cc2b4bee83a
2024-03-14 15:24:09 -07:00
Treehugger Robot
b2c91edbba Merge "Generate info about the selected app variant in platform builds" into main am: 4e4939665e
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3002986

Change-Id: I80375fdb9a7e56e65d36b5f2d1274167cf96f2e8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 22:21:40 +00:00
Treehugger Robot
4e4939665e Merge "Generate info about the selected app variant in platform builds" into main 2024-03-14 22:05:43 +00:00
Treehugger Robot
9292a91a0c Merge "Add exports for JDK 21 to Kythe extractor" into main am: f11f786571 am: 9841e3cd05
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3004350

Change-Id: Ifa1bb5bb213caff7612ab85c06ad58e58349a5f6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 19:32:02 +00:00
Yu Liu
b524871548 Merge "Validate aconfig libs are built with the correct modes." into main am: f509eba41d am: b6f0bc02b3
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2989874

Change-Id: Ia0e31489f3d8cab59c9b18b9f5e875b03030947e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 19:30:48 +00:00
Treehugger Robot
9841e3cd05 Merge "Add exports for JDK 21 to Kythe extractor" into main am: f11f786571
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3004350

Change-Id: I9068144c3fcade8bb1eb0cae62fa0ca2540d7de0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 19:12:00 +00:00
Yu Liu
b6f0bc02b3 Merge "Validate aconfig libs are built with the correct modes." into main am: f509eba41d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2989874

Change-Id: I5ff474a99341984ab391699fd9ef0025d71759dc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 19:10:45 +00:00
Treehugger Robot
f11f786571 Merge "Add exports for JDK 21 to Kythe extractor" into main 2024-03-14 18:43:02 +00:00
Yu Liu
f509eba41d Merge "Validate aconfig libs are built with the correct modes." into main 2024-03-14 18:39:12 +00:00
Treehugger Robot
df9a212001 Merge "gen_parsers_and_formatters.rs is no longer generated." into main am: 119bb1b21d am: d68add9fb9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3000956

Change-Id: I6948d46dc86ee55d65be0959d0a5015314d1cc1c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 18:15:53 +00:00
Spandan Das
3490dfd23f Generate info about the selected app variant in platform builds
This is a followup to aosp/2999198 and adds information about apps.

Each app will have an entry in this file with the following properties
- Name, mandatory
- Is_prebuilt, mandatory
- Prebuilt_info_file_path, optional

Implementation details
- Move prebuiltInfoProvider out of build/soong/apex to
  build/soong/android. This allows build/soong/java to use it.
- Introduce a new `prebuilt_info` prop to `android_app_set` and
  `android_app_import`
- All app module types will set a prebuiltInfoProvider in
  GenerateAndroidBuildActions, including the source app module types

Test: m nothing --no-skip-soong-tests
Test: m out/soong/prebuilt_info.json
Test: ls -l out/soong/prebuilt_info.json --human-readable
-rw------- 1 spandandas primarygroup 317K Mar 11 23:46 out/soong/prebuilt_info.json

Test: #modified trunk_staging.locally to select prebuilts of some
mainline apps. Spot-checked that `is_prebuilt` and
`prebuilt_info_file_path` get populated appropriately

Bug: 327480225
Change-Id: I5078e0ec26c9568194550909962b90111a5223f7
2024-03-14 18:12:30 +00:00
Treehugger Robot
d68add9fb9 Merge "gen_parsers_and_formatters.rs is no longer generated." into main am: 119bb1b21d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3000956

Change-Id: I852c85cc971928199dc2a60a6e5611410bdc1d94
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 17:59:18 +00:00
Treehugger Robot
119bb1b21d Merge "gen_parsers_and_formatters.rs is no longer generated." into main 2024-03-14 17:40:47 +00:00
Sorin Basca
79b7ca1e7a Add exports for JDK 21 to Kythe extractor
Change-Id: Ie977f08f8aee59ea21dcbfe7c9c07dc0dc535775
Fixes: 328877412
Test: TH
2024-03-14 16:59:49 +00:00
Jooyung Han
0c1f5975ac Merge "Clean up LLNDK stubs" into main am: ed9005b556 am: 452797c6f7
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2999576

Change-Id: Ica847f7a869dbd631e27b084415788547ad88ef1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 04:50:09 +00:00
Jooyung Han
452797c6f7 Merge "Clean up LLNDK stubs" into main am: ed9005b556
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2999576

Change-Id: I6acea9d31b102a0d3476b737532716e4bddafe3d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 04:34:55 +00:00
Jooyung Han
ed9005b556 Merge "Clean up LLNDK stubs" into main 2024-03-14 03:58:14 +00:00
Jooyung Han
2a2d16584b Merge "ndkstubgen: use llndk=<version> for new llndk stub" into main am: 2b8b2b2064 am: b7349577b4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2997316

Change-Id: I88d97f2c76b74edb6a17e1a0edf4cacb01bca02d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 02:23:52 +00:00
Jooyung Han
b7349577b4 Merge "ndkstubgen: use llndk=<version> for new llndk stub" into main am: 2b8b2b2064
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2997316

Change-Id: I6225b4b2a82b2dad67171011ac597c75c097d6b2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-14 02:07:47 +00:00
Jooyung Han
2b8b2b2064 Merge "ndkstubgen: use llndk=<version> for new llndk stub" into main 2024-03-14 01:48:36 +00:00
Jooyung Han
33eb615eb0 ndkstubgen: use llndk=<version> for new llndk stub
We want LLNDK symbols to be explicitly marked with llndk tag to
handle LLNDK freezing which happens before SDK freezing. If symbols
need to be frozen as LLNDK, those symbols must be marked explicitly with
correct vFRC version.

In the following example,

LIBFOO { # introduced=35
  foo;
  bar;
  bar; # llndk=202404
  baz; # llndk=202404
  qux; # llndk=202505
};

NDK libfoo will have foo and bar while LLNDK libfoo stub will have bar
and baz for 202404.

Bug: 329012338
Test: test_ndkstubgen test_symbolfile
Change-Id: I384f589b240fa047e8871964bf9550f426024dfc
2024-03-14 06:06:26 +09:00
Kalesh Singh
1f86d260f7 Merge "soong: ldflags: Add separate-loadable-segments" into main am: 9f38694fc3 am: 75e5a22fc4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3002356

Change-Id: I4ea4b6138248b72507b53d6ae28bd750ac99f833
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-13 19:14:18 +00:00
Kalesh Singh
75e5a22fc4 Merge "soong: ldflags: Add separate-loadable-segments" into main am: 9f38694fc3
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3002356

Change-Id: I47310d5e97ab786bf58ea87455f8f488d680e664
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-13 19:00:07 +00:00
Kalesh Singh
9f38694fc3 Merge "soong: ldflags: Add separate-loadable-segments" into main 2024-03-13 18:41:14 +00:00
Harshit Mahajan
34915057b8 Merge "Revert "Add VanillaIceCream to the releases for which snapshots ..."" into main 2024-03-13 17:39:56 +00:00
Priyanka Advani
2c4312b3e7 Revert "Add VanillaIceCream to the releases for which snapshots ..."
Revert submission 26563706-CrSdk

Reason for revert: Droidmonitored triggered revert for build breakages in b/329449481

Reverted changes: /q/submissionid:26563706-CrSdk

Change-Id: Ie38cc3b6229d857a90e401fdee92b0a62bb72c3b
2024-03-13 17:37:29 +00:00
Yu Liu
21711eea12 Merge "Store the changed_inputs field in build.trace." into main am: ee37914529 am: 33e3d281d5
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2987676

Change-Id: I9c22972a5900aba1b5c851b908a830a477d8b455
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-13 16:40:26 +00:00
Yu Liu
33e3d281d5 Merge "Store the changed_inputs field in build.trace." into main am: ee37914529
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2987676

Change-Id: I7a14823440a0ff0b2f532f88b69b0b9a9973cb24
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-13 16:10:39 +00:00
Yu Liu
ee37914529 Merge "Store the changed_inputs field in build.trace." into main 2024-03-13 15:54:13 +00:00
Harshit Mahajan
eb80e2b9eb Add VanillaIceCream to the releases for which snapshots can be built
Bug: 289203818
Change-Id: I9d9caeb38cacbd3b3f3fd05617a914fa9fb5e1d3
Test: m
Ignore-AOSP-First: Merge conflicts aosp/3000881, will cherry-pick this.
2024-03-13 10:30:00 +00:00
Treehugger Robot
16952ee3c2 Merge "Let header ABI checker load core variants' version scripts" into main am: eb0f771676 am: 2ab96bfd8d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2999516

Change-Id: I0c1d485f518b3db195d5a5161bc40bccc2ed248b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-13 02:47:06 +00:00
Spandan Das
99fbba53ac Merge "Generate info about the selected apex variant in platform builds" into main am: 86cc1e896b am: a7bd514e9f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2999198

Change-Id: I98d83830180f04389ee9a8a230601ba7394d5450
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-13 02:44:26 +00:00
Treehugger Robot
2ab96bfd8d Merge "Let header ABI checker load core variants' version scripts" into main am: eb0f771676
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2999516

Change-Id: I14283f62f2b281b1a1282aba3358df5b4a7145fb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-13 02:23:47 +00:00
Treehugger Robot
eb0f771676 Merge "Let header ABI checker load core variants' version scripts" into main 2024-03-13 02:09:59 +00:00
Spandan Das
a7bd514e9f Merge "Generate info about the selected apex variant in platform builds" into main am: 86cc1e896b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2999198

Change-Id: Ia559f3456dd281d072fcc9f2024f116445eae8e5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-13 02:02:00 +00:00
Spandan Das
86cc1e896b Merge "Generate info about the selected apex variant in platform builds" into main 2024-03-13 01:13:21 +00:00
Kalesh Singh
fa1ebf5943 soong: ldflags: Add separate-loadable-segments
To suport >4KB page sizes, the loader may extend LOAD segment mappings
to be contiguous in the virtual address space. This is done in order to
reduce the use of unreclaimable kernel slab memory for the otherwise
necessary gap VMAs (when the runtime-page-size < ELF-segment-p_align).

Such mappings may beyond the end of the backing file when extended;
which breaks the common userspace assumption that file memory maps are
entirely backed by the underlying file.

Existing apps (not yet updated for larger page size support) may
encounter breakages if they parse /proc/self/[s]maps and use the
[start, end] addresses to operate on system libraries that have
crt_pad_segment optimization (VMA extension) [1].

In order to avoid breaking exisiting apps, update the build system to
ensure the platform ELFs' segments are entirely backed by the file
even when the VMA is extended to be contiguous with the subsequent
segment's. This is achieved using the linker flag
-z separate-loadable-segments, which inserts enough padding (zeros)
to also align each segment's offset on file by it's p_align
(max-page-size).

Although laying out the ELF segments on disk to respect the p_align
causes an increase in the file's apparent size (i_size), on Android the
actual disk usage increase is not significant due to most of the padding
being zero blocks which don't get alloacted in the read-only partitions.

The following results were obtained on an ARM64 device on a recent
git_main build:

 No Separate     Separate     Delta         Delta %   Partition
   Loadable      Loadable
   Segments      Segments

   4208.90MB    4214.6MB       5.70MB       0.14%     All RO Partitions

Note: The overhead of -z separate-loadable-segments is minimized by the
fact that ARM64 android already builds with -z separate-code. [2]

[1] https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/arch-common/bionic/crt_pad_segment.S
[2] 733198152d:build/soong/cc/config/arm64_device.go;l=53

Bug: 328797737
Test: Manually test previously crashing application
Change-Id: Icb14ad10b5c9282855d54c7945b065b7b4184163
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2024-03-12 17:04:50 -07:00
Treehugger Robot
7a09abcc88 Merge "Add defaults support for apex_contributions module type" into main am: 66e8a75700 am: a00644e2ce
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2990552

Change-Id: I59148f2e063aa1c89049dbe46f8ffde051130248
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-12 21:58:15 +00:00
Treehugger Robot
a00644e2ce Merge "Add defaults support for apex_contributions module type" into main am: 66e8a75700
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2990552

Change-Id: Ib88f4e6c88a302ef615e04bd05773e7b142f0817
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-12 21:15:51 +00:00
Treehugger Robot
66e8a75700 Merge "Add defaults support for apex_contributions module type" into main 2024-03-12 20:35:12 +00:00
Spandan Das
a747d2ec48 Generate info about the selected apex variant in platform builds
out/soong/prebuilt_info.json will contain information about whether
source or prebuilt of an apex was used. If prebuilt is used, it will
print the path to its prebuilt_info file. This file will be
used to pick a matching set of MTS test prebuilts.

Each apex will have an entry in this file with the following properties
- Name, mandatory
- Is_prebuilt, mandatory
- Prebuilt_info_file_path, optional

Implementation details
- Introduce a new `prebuilt_info` prop to `apex_set` and `prebuilt_apex`
- All apex module types will set a prebuiltInfoProvider in
  GenerateAndroidBuildActions, including the source apex module types
- Create a `apex_prebuiltinfo_singleton` that visits all apex modules.
  It uses `IsHideFromMake` to filter out the unselected variants of a
  specific apex. This new singleton will create prebuilt_info.json
- Dist prebuilt_info.json for droidcore

Test: m nothing --no-skip-soong-tests
Test: m out/soong/prebuilt_info.json
Test: ls -l out/soong/prebuilt_info.json --human-readable
-rw------- 1 spandandas primarygroup 25K Mar 11 23:46 out/soong/prebuilt_info.json

Test: #modified trunk_staging.locally to select prebuilts of some
mainline modules. Spot-checked that `is_prebuilt` and
`prebuilt_info_file_path` get populated appropriately

Bug: 327480225

Change-Id: I65c73010142b034ad1d2b3d05ef493be034e8d74
2024-03-12 18:04:55 +00:00
Andrew Walbran
d3f500da5b gen_parsers_and_formatters.rs is no longer generated.
Bug: 270547306
Test: m out/soong/.intermediates/system/libsysprop/srcs/platformproperties_rust_gen/gen/ApkVerityProperties/src/lib.rs
Change-Id: I9d8ead1a7c846d7bfcdafcd68f44763364dae368
2024-03-12 15:55:26 +00:00