Commit Graph

973 Commits

Author SHA1 Message Date
Chan Wang
6dbdccea4a Merge "Temporarily bypass apex availability check for /product apexes with a specific prefix" into main am: 3a9a37cc78 am: 880aa466bf
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3276271

Change-Id: I75a5c547cf1ce10dc099228539063da329797a69
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-23 23:13:41 +00:00
Spandan Das
1b0fddb015 Remove the internal extractor module created by apex_set am: 9d6e209f44 am: 5994600572
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3273164

Change-Id: Iac682fe1a9026f4075929adfd895913f1c3c567d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-23 23:13:07 +00:00
Chan Wang
3a9a37cc78 Merge "Temporarily bypass apex availability check for /product apexes with a specific prefix" into main 2024-09-23 22:56:01 +00:00
Spandan Das
9e2377907d Merge changes I0edb681b,I0ea2327f into main am: e2860d9db6 am: c012f4ece4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3273493

Change-Id: Iaa74e0c7332c9a3e8a5180db3bac0abd7edc4318
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-23 21:18:32 +00:00
Chan Wang
490a6f9b76 Temporarily bypass apex availability check for /product apexes with a
specific prefix

Bug: 361501627

Test: m nothing --no-skip-soong-tests
Change-Id: Ifb855bed3514d27ecccddb5cd986537c628683b1
2024-09-23 21:11:09 +00:00
Spandan Das
9d6e209f44 Remove the internal extractor module created by apex_set
The build actions will be generated by the top-level apex.

Test: go test ./apex
Test: lunch cf_x86_64_phone-next-userdebug (uses mainline prebuilts)
Test: verified no diff in file_list.txt
Bug: 368337090
Change-Id: I170cf4beec18b54cd950560ea0991bc6f1455d76
2024-09-23 20:56:12 +00:00
Spandan Das
e2860d9db6 Merge changes I0edb681b,I0ea2327f into main
* changes:
  Remove internal deapexer module
  Remove deapex support from java_*_import
2024-09-23 20:28:36 +00:00
Jihoon Kang
2d404031e7 Merge changes Ica0cb5a5,If432cdc6,Idb4b0b0a into main am: 1a7d900c78 am: a7906c717c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3272004

Change-Id: I3893d25882248f645c37718793907b7a1a64f0f1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-23 18:21:01 +00:00
Spandan Das
52c01a1897 Remove internal deapexer module
The build ations will be created by the top-level apex.

Details
1. In GenerateAndroidBuildActions, do a graph walk to determine if the
   apex has exported deps.
2. If there are exported deps, call the newly introduced `deapex`
   function. This registers the build rules and returns a DeapexerInfo
object. This was previously provided by the internal deapexer
dependency.
3. Update `dexpreoptSystemServerJars and `provideApexExportsInfo` to use
   the DeapexerInfo object from (2).

A lot of unit tests that relied on the legacy mechanism of deapexing
have been updated.

Test: go test ./apex
Test: lunch cf_x86_64_phone-next-userdebug (uses mainline prebuilts)
Test: verified no diff in file_list.txt
Bug: 368337090
Change-Id: I0edb681beccac4d2a9ceb73f9a506c081a8a96e0
2024-09-20 23:47:36 +00:00
Spandan Das
a326b320ab Remove deapex support from java_*_import
prebuilt_apex/apex_set currently supports its deapexed contents to be
returned via a sibling java_import/java_sdk_import module. This is
necesssary for
1. dexpreopt/hiddenapi processing
2. usage as shared library

(1) is no longer necessary. this information is provided by the
top-level prebuilt apexes now

(2) is no longer possible since `exported_java_libs` has been removed in
https://r.android.com/3272110

This CL uses a hack for java_sdk_library_improt. Even though (1) is
provided by the top-level apex, there are still some places where
dexpreopt/hiddenapi processing visits the import modules. This CL uses
a bogus path to make analysis work. If this bogus path gets used, there
will be an error during ninja execution

Test: go test ./apex
Test: in internal lunch cf_x86_64_phone-next-userdebug (uses mainline
prebuilts)
Test: verified that file_list.txt is same
Bug: 368337090

Change-Id: I0ea2327f648f0fc60e337b232f7265e140772ffd
2024-09-20 23:33:09 +00:00
Jihoon Kang
28c9657e24 Revert^2 "Restrict java_sdk_library in libs"
Instead, the module should specify the submodule it actually depends on.
This is a prereq change to removing the java_sdk_library "magic"

Test: m nothing --no-skip-soong-tests
Bug: 366069293
Change-Id: Idb4b0b0a953f5391c24e50294c940522b73c34f2
2024-09-20 21:55:23 +00:00
Jihoon Kang
6c400b85b0 Merge "Revert "Restrict java_sdk_library in libs"" into main am: 46e0613992 am: 96960c9be0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3273157

Change-Id: I1d2d92a11e7d503ff5ac8f0a2b924d3e43a2ed98
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-20 18:10:39 +00:00
Jihoon Kang
33cbd37c00 Revert "Restrict java_sdk_library in libs"
This reverts commit 125efc6c30.

Reason for revert: b/368606825

Change-Id: Ia24f637db202f24be2ee13c7fe78e19a69576ffa
2024-09-20 17:09:09 +00:00
Treehugger Robot
d2451a705e Merge "Restrict java_sdk_library in libs" into main am: 37b288262e am: e62209b025
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3261983

Change-Id: I7d61ad2c765bea828f094feda856736ab6e8d9bd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-20 16:39:11 +00:00
Jihoon Kang
125efc6c30 Restrict java_sdk_library in libs
Instead, the module should specify the submodule it actually depends on.
This is a prereq change to removing the java_sdk_library "magic"

Test: m nothing --no-skip-soong-tests
Bug: 366069293
Change-Id: I9137c079afc7abf201e597e323ae7de415eea0dc
2024-09-19 21:44:20 +00:00
Treehugger Robot
68f07b46c2 Merge "Add a unit test for class loader context with java_sdk_library impl lib" into main am: e2aeb50e49 am: 5d0a9316c1
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3272612

Change-Id: Ieb7632d42560ae6685eec70ce237b2ae7d595186
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-19 00:06:55 +00:00
Treehugger Robot
e2aeb50e49 Merge "Add a unit test for class loader context with java_sdk_library impl lib" into main 2024-09-18 23:51:25 +00:00
Treehugger Robot
8b6567507f Merge "Remove exported_java_libs from prebuilt_apex/apex_set module types" into main am: c5459aa57f am: 2b47ef4dc2
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3272110

Change-Id: I902f56e046afd4c1b56c27b206c3b0967f01c9bb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-18 23:09:36 +00:00
Treehugger Robot
c5459aa57f Merge "Remove exported_java_libs from prebuilt_apex/apex_set module types" into main 2024-09-18 22:59:25 +00:00
Jihoon Kang
e246bb7eca Add a unit test for class loader context with java_sdk_library impl lib
This test case tests the behavior added with aosp/3267383

Test: m nothing --no-skip-soong-tests
Bug: 366572133
Change-Id: Id7df3b76e6ef4880ac14e55bf8e0d81597d10055
2024-09-18 22:26:22 +00:00
Spandan Das
1896fd6006 Remove exported_java_libs from prebuilt_apex/apex_set module types
`exported_java_libs` provide information to soong about which .jars in a
prebuilt .apex need to be deapexed. This property is not used today,
since the only use case for deapexing is for dexpreopt, and dexpreopt is
done using bootjars (encapsulated using
`exported_bootclasspath_fragments`) and systemserver jars (encapsulated
using `exported_systemserverclasspath_fragments`)

Test: go test ./apex
Change-Id: I4ceec74aa11d8e32ccfb0bab29a4489cf8b3fc3d
2024-09-18 21:49:14 +00:00
Spandan Das
c264223e96 Merge "Delete multitree api imports code" into main am: 53a230b2fe am: 649cae6296
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3263496

Change-Id: I3dc087ece253f506a90ab6e47c10517df35fb372
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-11 23:44:09 +00:00
Spandan Das
ff66518da2 Delete multitree api imports code
The mutltiree workflow has not been in use for a while. This CL cleans
up the code that was added to support multitree.

Details
- Delete cc_api_library, cc_api_headers, cc_api_variant module types.
  These module types contain build rules for prebuilt stub .so and .h
files
- Update the DepsMutator of cc.Module to not create a dependency on a
  sibling cc_api_* module if it exists. e.g. do not create a dependency
on libfoo.apiimports if libfoo is listed in `shared_libs`.
- Remove cc_api_library from the stub/impl selection logic for cc
  modules

Test: m nothing --no-skip-soong-tests
Test: presbumits
Change-Id: Ie194157fb3bbc630f384cdd9b694b0fba6786ded
2024-09-11 19:19:33 +00:00
Jooyung Han
1955d600d6 Merge changes Ia9f2186e,Ibe567d3b into main am: 0a9eb7f657 am: e1b039d184
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3247637

Change-Id: I70cf56e14a9bc13b1c8499037f8ddca3e54b0dd5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-04 01:40:10 +00:00
Jooyung Han
a3fddf40ca Refactor around apex aconfig files (#2)
Aconfig files are treated like other files in APEX. This way, we can
dedup the code hanlding those files (copy commands, fs_config, etc).

Bug: n/a
Test: m nothing --no-skip-soong-tests
Change-Id: Ia9f2186e4e54e92ad90c7a9c00474cb0f7519a31
2024-09-03 13:22:21 +09:00
Jihoon Kang
a5a744226b Merge "Revert^4 "Implement detecting container violations."" into main am: 7344482ff3 am: 9e40f8f9b4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3248019

Change-Id: I77818bede2be74dc6755a55c5a8e69a1c6a7f64c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-30 20:31:34 +00:00
Jihoon Kang
85bc193805 Revert^4 "Implement detecting container violations."
This change introduces a method to detect violating inter-container
dependencies between modules. The method is run in
`ModuleBase.GenerateBuildActions`, after the container info provider is
set. Given that the provider of the direct dependencies would have been
set at this time, the method utilizes this information to determine
the violations, which are introduced in https://r.android.com/3141104.

Note that this enforcement does not turn all inter-container
dependencies as errors. Instead, it will only turn dependencies that
matches the pre-defined violations into errors. Even if the dependency
matches the violation, an error will not be thrown if the dependency
satisfies any of the exception functions (e.g. the dependent module is
stubs, or the two modules belong to the same apexes).

Test: m nothing --no-skip-soong-tests
Bug: 338660802
Change-Id: Ib9ddc0761fa46f1309b1a1a4f759d9a4e04fd70e
2024-08-29 17:55:00 +00:00
Priyanka Advani (xWF)
523efd1db1 Merge "Revert^3 "Implement detecting container violations."" into main am: 88a8daf8ca am: c2ba6683c5
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3248525

Change-Id: I81f89cb4da10d34d2de5c48093bf43a76b81d769
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-28 23:38:16 +00:00
Priyanka Advani (xWF)
33b3a638a5 Revert^3 "Implement detecting container violations."
2a88491afc

Change-Id: Iba4527f391a093703978fe01177b56fec4604b28
2024-08-28 23:10:29 +00:00
Jihoon Kang
2ad26bc6ea Merge changes Ia693c4a5,I8e5620d2 into main am: c14be38f1a am: 4e373a7904
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3247222

Change-Id: Ic901c1d2deef5f61e661cd07aa620b8ffdaf39df
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-28 21:52:18 +00:00
Jihoon Kang
2a88491afc Revert^2 "Implement detecting container violations."
This change introduces a method to detect violating inter-container
dependencies between modules. The method is run in
`ModuleBase.GenerateBuildActions`, after the container info provider is
set. Given that the provider of the direct dependencies would have been
set at this time, the method utilizes this information to determine
the violations, which are introduced in https://r.android.com/3141104.

Note that this enforcement does not turn all inter-container
dependencies as errors. Instead, it will only turn dependencies that
matches the pre-defined violations into errors. Even if the dependency
matches the violation, an error will not be thrown if the dependency
satisfies any of the exception functions (e.g. the dependent module is
stubs, or the two modules belong to the same apexes).

Test: m nothing --no-skip-soong-tests
Bug: 338660802
Change-Id: Ia693c4a53369c757a3e96656a769405c759b111c
2024-08-28 18:01:25 +00:00
Satish Yalla
fa0019bf1f Merge "Revert "Implement detecting container violations."" into main am: f2d6e5004f am: b2407feae1
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3244001

Change-Id: Iddc3110928d6d237de002dc65e033e7940e2b11e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-28 06:00:22 +00:00
Satish Yalla
f2d6e5004f Merge "Revert "Implement detecting container violations."" into main 2024-08-28 05:48:21 +00:00
Satish Yalla
b2b1ef63e2 Revert "Implement detecting container violations."
This reverts commit bb678f82d6.

Reason for revert: Droidmonitor created revert due to b/362639013. Will be verifying through ABTD before submission.

Change-Id: I1dcb71672eeb44a17cf176d3731bcaf9aaf81edf
2024-08-28 05:10:31 +00:00
Treehugger Robot
3b407afefb Merge "Implement detecting container violations." into main am: 26f071db92 am: 30f3795688
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3155659

Change-Id: If66625fe313efbbf9b50ebaee77e9ab718db58e9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-28 04:51:30 +00:00
Treehugger Robot
26f071db92 Merge "Implement detecting container violations." into main 2024-08-28 04:39:12 +00:00
Spandan Das
8d3944aab2 Merge changes from topic "cc_prebuilt_stubs" into main am: a6f4b6b104 am: 87f001129a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3221926

Change-Id: Ic7a88d1113374f8934a570c1b8608080092c485f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-27 19:54:58 +00:00
Spandan Das
a6f4b6b104 Merge changes from topic "cc_prebuilt_stubs" into main
* changes:
  Skip `-Wl,--version-script` on libclang_rt.* stubs (temp hack)
  Special case the stubgen args for bionic libs
  Add stub generation support to cc_prebuilt_library
2024-08-27 19:37:08 +00:00
Jihoon Kang
bb678f82d6 Implement detecting container violations.
This change introduces a method to detect violating inter-container
dependencies between modules. The method is run in
`ModuleBase.GenerateBuildActions`, after the container info provider is
set. Given that the provider of the direct dependencies would have been
set at this time, the method utilizes this information to determine
the violations, which are introduced in https://r.android.com/3141104.

Note that this enforcement does not turn all inter-container
dependencies as errors. Instead, it will only turn dependencies that
matches the pre-defined violations into errors. Even if the dependency
matches the violation, an error will not be thrown if the dependency
satisfies any of the exception functions (e.g. the dependent module is
stubs, or the two modules belong to the same apexes).

Test: m nothing --no-skip-soong-tests
Bug: 338660802
Change-Id: I36e9cd956c5a076a53635be0c6ff27f77725516e
2024-08-27 17:30:42 +00:00
Treehugger Robot
40c2548b66 Merge "apex: apex_available with prefix" into main am: d4daa43150 am: 7af3d43dfb
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3223005

Change-Id: I5aecf775722fd2fdd209adb9d1e6a492d544032b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-20 21:46:49 +00:00
Jooyung Han
9a419e28f5 apex: apex_available with prefix
We now support prefix form (com.foo.*) in apex_available list.

Bug: 360265761
Test: m --no-skip-soong-tests
Change-Id: I50ab884651dd6321950cfd4563b59ef3ed0f07fd
2024-08-20 10:50:04 +09:00
Treehugger Robot
61e7802b97 Merge "Clean up: remove com.android.gki.*" into main am: 75b14ee1a6 am: 48f28c9232
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3223004

Change-Id: I8073c82e183c1519885c9c9f64892426c9f3443b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-16 22:47:04 +00:00
Jooyung Han
40b7917fd0 Clean up: remove com.android.gki.*
It's abandoned.

Bug: n/a
Test: m nothing --no-skip-soong-tests
Change-Id: I220bea87329ee532d494cc4eaa4c6a8c1b0bff07
2024-08-16 16:02:42 +09:00
Spandan Das
357ffcc146 Add stub generation support to cc_prebuilt_library
The `stubs` property in `cc_prebuilt_library` currently does not support
generating stubs from an API symbol file. Reverse dependencies are
always linked against the .so file listed in `srcs`. This CL adds
support to generate the shared library from the .map.txt symbol file of
the prebuilt library.

Implementation details:
1. Add a compiler. This will convert the .map.txt file to a stub .c file.
  The build rules for this are common to the compiler of the source cc_*
moudule types. This has been refactored into a new function named
`compileModuleLibApiStubs`
2. Update the linker to link the aforementioned stub.c file into a .so
  file. Since this happens only for stub variants, it is conditionally
called only when p.buildStubs is true.
3. Call `addStubDependencyProviders`. This will populate the impl
   variant of the library with Stub information. cc#ChooseStubOrImpl
will use this information to resolve rdeps to the stub .so file if the
dependency crosses an api domain boundary.

(2) requires some special casing for now, since the module sdk at HEAD
does not contain symbol files, so the stub.c files will be empty. Once
the symbol files are added to module sdk, the special casing will be
removed.

Test: m nothing --no-skip-soong-tests
Bug: 275273834
Change-Id: I57f5b0a97fac4dfc8c24e07b06a330015add977d
2024-08-15 22:18:48 +00:00
Colin Cross
bb5c9f5d82 Merge changes If313580b,I68d50d68 into main am: 08b6061539 am: 6bdec0cbe6
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3214342

Change-Id: Ie9dd3fc7d9d901150257108b92d8ce4079796b44
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-12 18:46:24 +00:00
Colin Cross
a66b4630f6 Add PrepareForTestWithBuildFlag
Add a helper function that creates a test fixture preparer that
sets a build flag, and use it everywhere that was setting build flags
manually.

Test: all soong tests
Flag: EXEMPT refactor
Change-Id: I68d50d68787a30d091f0827e8caa51f5c5a762ef
2024-08-09 16:47:45 -07:00
Treehugger Robot
f99ac31e34 Merge "Revert "Revert "Enable from-text stub generation in non-sdk java..."" into main am: 4f18cfdd7d am: 5d2439b3b1
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3205865

Change-Id: I163753b63bc5b3b495d70ea46a15ebb5f58d2c68
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-06 19:25:01 +00:00
Treehugger Robot
4f18cfdd7d Merge "Revert "Revert "Enable from-text stub generation in non-sdk java..."" into main 2024-08-06 18:50:04 +00:00
Treehugger Robot
7bc808665e Merge "Hide unflagged mainline prebuilts with missing source." into main am: 9b10ca4711 am: fc413ce622
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3203370

Change-Id: I580da7d09016c230e9375667dcf3a7faa87dc7f0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-06 10:36:09 +00:00
Jihoon Kang
377802211b Merge "Revert "Enable from-text stub generation in non-sdk java_sdk_library"" into main am: f6d9965cc5 am: ad5e953a7d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3207397

Change-Id: I411dc190da40073de7d794de9ad7ef8fd5da9ed3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-06 10:35:42 +00:00