aboutsummaryrefslogtreecommitdiff
path: root/apex/apex_test.go
Commit message (Collapse)AuthorAgeFilesLines
* Fix non-determinism in prebuilt selection am: f2c1057586 am: d1816e09f0Spandan Das2024-03-041-2/+2
|\ | | | | | | | | | | | | Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2984036 Change-Id: I6062c3ccd1e864bd2d5cd7790957db99b6a76f63 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| * Fix non-determinism in prebuilt selectionSpandan Das2024-03-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This relands aosp/2978137 with acknowledgement of soong namespaces. If multiple versions of the prebuilt module sdk share the same soong config namespace, then PrebuiltPostDepsMutator rewrites rdeps to one of those prebuilts in a non-deterministic way. This CL uses apex_contributions to make this deterministic. Multiple prebuilts will not be allowed to have their prefer evaluate to true. If this happens, one of the prebuilts must be explicitly declared in apex_contributions. This CL also fixes the special-casing of the top-level java_sdk_library_import in ReplaceDirectDependencies. For framework-foo.v2, it will use BaseModuleName framework-foo instead of SdkLibraryName framework-foo.v2 to determine if the source module has been selected. Test: ran the previously failing cmd of b/327552112 Test: Added a unit test Test: aninja -t query out/soong/.intermediates/packages/modules/Permission/SafetyCenter/Config/safety-center-config/android_common/javac/safety-center-config.jar | grep module_sdk is empty (should not cause a regression for 323454855) Change-Id: Id484a41192085c50b7e34ad415c6e195edb0d006
* | Merge "Some tweaks to the aconfig flag collection logic" into main am: ↵Yu Liu2024-02-291-12/+14
|\| | | | | | | | | | | | | | | | | 6c2cd90232 am: 4782aa50bf Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2983533 Change-Id: I91948e96a5df217441135f631040e80a060197d7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| * Some tweaks to the aconfig flag collection logicYu Liu2024-02-281-12/+14
| | | | | | | | | | | | | | | | | | 1. Output the aconfig flags pb and storage files to /etc 2. Fix a bug where aconfig flags were not collected for java_sdk_library Bug: None Test: manual and unit tests. Change-Id: I0896e91918c1b53c98ac9dc0f4a636f158200891
* | Merge "Revert "Fix non-determinism in prebuilt selection"" into main am: ↵Spandan Das2024-02-291-2/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 5354483c12 am: 1e9810748e Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2984372 Change-Id: Ied7c0c39b23d6187523b31a92c0851c43349149a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| * | Revert "Fix non-determinism in prebuilt selection"Spandan Das2024-02-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2d8884a37757edc6b984e1e073ab5a9e4a85f778. Reason for revert: Build breakage https://groups.google.com/a/google.com/g/android-build-police-core/c/00mM-B9unVg/m/0FxBxpMbAwAJ. The validation does not check for namespace isolation which breaks libtonemap Change-Id: Ieb4d3bc4f3ade856877ebb62a567620f5a1ed08c
* | | Fix non-determinism in prebuilt selection am: 2d8884a377 am: abd735bb6cSpandan Das2024-02-291-2/+2
|\| | | | | | | | | | | | | | | | | | | | Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2978137 Change-Id: I460c2a2fbc0b083f95117265eb1addde08d67c8a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| * | Fix non-determinism in prebuilt selectionSpandan Das2024-02-291-2/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If multiple versions of the prebuilt module sdk share the same soong config namespace, then PrebuiltPostDepsMutator rewrites rdeps to one of those prebuilts in a non-deterministic way. This CL uses apex_contributions to make this deterministic. Multiple prebuilts will not be allowed to have their prefer evaluate to true. If this happens, one of the prebuilts must be explicitly declared in apex_contributions. This CL also fixes the special-casing of the top-level java_sdk_library_import in ReplaceDirectDependencies. For framework-foo.v2, it will use BaseModuleName framework-foo instead of SdkLibraryName framework-foo.v2 to determine if the source module has been selected. Test: Added a unit test Test: aninja -t query out/soong/.intermediates/packages/modules/Permission/SafetyCenter/Config/safety-center-config/android_common/javac/safety-center-config.jar | grep module_sdk is empty (should not cause a regression for 323454855) Bug: TODO Change-Id: I7191200c330c5bcb9d5532006d3c573a60db61cc
* | Merge "Add sh_binary dependencies to primary abi of the target" into main ↵Riya Thakur2024-02-281-0/+1
|\| | | | | | | | | | | | | | | | | am: 88c21f567f am: 54905d0584 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2977494 Change-Id: Id1e9d3f6173cc58909fa210138c01483e19ef83a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| * Add sh_binary dependencies to primary abi of the targetRiya Thakur2024-02-271-0/+1
| | | | | | | | | | | | | | | | | | | | If compile_multilib is set to 'both' for an apex having a sh_binary dependency for which compile_multilib is not set, then the sh_binary dependency should be added for the primary ABI of the target Bug: 325628733,326985291 Test: m Change-Id: Ie9cd12d49f6854c33af3724cb8e2fc3d8b7627a0
* | Merge "Support aconfig stoage files for apex." into main am: 864fd2f1f5 am: ↵Yu Liu2024-02-211-46/+53
|\| | | | | | | | | | | | | | | | | cd72a6387a Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2966056 Change-Id: I86d77269802f6e3f4ef548bc53352edd99acb7f1 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| * Support aconfig stoage files for apex.Yu Liu2024-02-171-46/+53
| | | | | | | | | | | | Bug: 323071835 Test: unit tests and manual build test. Change-Id: I4a1a05b3afdf88058a970040b3f176f36c5c8037
* | Merge "Add environment variable UNBUNDLED_BUILD_TARGET_SDK_WITH_DESSERT_SHA" ↵Jihoon Kang2024-02-131-0/+73
|\| | | | | | | | | | | | | | | | | into main am: a0ccab683b am: 4e0e9d3108 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2952892 Change-Id: I58583de88c9363c44b31d6c92c08aa05ef7557b3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| * Add environment variable UNBUNDLED_BUILD_TARGET_SDK_WITH_DESSERT_SHAJihoon Kang2024-02-121-0/+73
| | | | | | | | | | | | | | | | | | | | UNBUNDLED_BUILD_TARGET_SDK_WITH_DESSERT_SHA enables user to specify ${codename}.${sha} as min_sdk_version and target_sdk_version in order to support mainline train building into android build. Test: TH Bug: 295905124 Change-Id: I032d464aaa7314520f98b8eafa53d962940075ce
* | Merge "Build VNDK with VNDK prebuilts without BOARD_VNDK_VERSION" into main ↵Treehugger Robot2024-02-021-7/+0
|\| | | | | | | | | | | | | | | | | am: b370adbdcc am: 4db5f221cc Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2938002 Change-Id: I7b5aea36a8326ffe1a229517fcdafe1229c77d64 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| * Merge "Build VNDK with VNDK prebuilts without BOARD_VNDK_VERSION" into mainTreehugger Robot2024-02-021-7/+0
| |\
| | * Build VNDK with VNDK prebuilts without BOARD_VNDK_VERSIONKiyoung Kim2024-02-011-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current VNDK prebuilts are disabled if BOARD_VNDK_VERSION is not set, but VNDK prebuilts should be enabled even BOARD_VNDK_VERSION is not set because VNDK APEXes should be available from VNDK deprecation. This change removes some restrictions on VNDK prebuilts to enable those from VNDK deprecation. Bug: 316829758 Test: AOSP Cuttlefish build succeeded without BOARD_VNDK_VERSION Change-Id: Id780811dab26f2125097c3efc5b2b4a59416b826
* | | soong: Add crt_pad_segment to .so's am: f4ffe0a026 am: dc0e1130acKalesh Singh2024-02-011-0/+4
|\| | | | | | | | | | | | | | | | | | | | Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2933932 Change-Id: Ic2fc4f3cd8e351e4614d1886df194f2ff3c5b329 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| * | soong: Add crt_pad_segment to .so'sKalesh Singh2024-01-311-0/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | crt_pad_segment adds a NOTE to the ELF which is used by the binoic loader to determine whether it should pad segments when mapping them into the virtual address space, such that there are no gaps between mappings of consecutive segments. This avoids an increase in unreclaimable kernel slab memory usage for VMAs on devices where the runtime-page-size > elf-segment-p_align. Since -fandroid-pad-segment [1] respects -nostdlib used in android platform builds, soong must link in crt_pad_segment to platform shared libraries. For simplicity, link crt_pad_segment everywhere that crtend_so is applicable, ignoring nocrt property, as there is no other reason to track these separately. Example: ❯ readelf -WS /system/lib64/libc++.so [Output simplified] ... Section Headers: [Nr] Name Type Address Off Size ES Flg Lk Inf Al ... [ 2] .note.android.pad_segment NOTE 0000000000000288 000288 000018 00 A 0 0 4 ... [1] https://github.com/llvm/llvm-project/pull/77244 Bug: 316403210 Test: readelf -WS <lib>.so Change-Id: Icc06611376cfd5ee4de7281b4134f9f8ffe7ca60 Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
* | Merge "Revert "Ensure sscp jars get copied to ↵Asmita Poddar2024-01-251-71/+33
|\| | | | | | | | | | | | | | | | | $OUT/soong/system_server_dexjars"" into main am: 1f4475cee1 am: ef0e9c3cf4 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2927392 Change-Id: Ib8943f63491f5ea54977aea8a57c6132203d3849 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| * Revert "Ensure sscp jars get copied to $OUT/soong/system_server_dexjars"Spandan Das2024-01-251-71/+33
| | | | | | | | | | | | | | | | This reverts commit 0b7089f13420061c8f1732fe6e2e56f1e9cdb21e. Reason for revert: Breaks auto builds https://groups.google.com/a/google.com/g/android-build-police/c/DfXeyxkyfYk/m/4SvZa-jkAAAJ Change-Id: Ia6ebdf64d03284d2318978c35cb87fd4f0b79531
* | Merge "Ensure sscp jars get copied to $OUT/soong/system_server_dexjars" into ↵Spandan Das2024-01-251-33/+71
|\| | | | | | | | | | | | | | | | | main am: 9d4ad66a93 am: a3c8609972 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2923733 Change-Id: I2116caee0a2778574bf49d5f521feda6e4c99693 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| * Ensure sscp jars get copied to $OUT/soong/system_server_dexjarsSpandan Das2024-01-241-33/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (This was missed in aosp/2876756, which copied only the bcp jars) This hardcoded location is used by dex2oat to compile the dexpreopt artifacts. The copy rules are currently generated by java_(sdk)_library for source builds, and their prebuilt counterparts in prebuilt builds. After this change, the copy rule will be bifurcated between source and prebuilt builds 1. For source builds, it will come from java_(sdk)_library 2. For prebuilt builds, it will come from the top-level prebuilt apex. Since there can be multiple prebuilt apexes in trunk stable, HideFromMake will be used to determine which deapexed jar to copy. The bifurfaction is expected to be temporary. It is needed for now since the `apex_contributions` which will be used for source vs prebuilt selection have not been populated completely. Test: Added a unit test Test: Presubmits Test: git_master-art-host: art-gtest (https://android-build.corp.google.com/builds/abtd/run/L40800030001459791) Test: git_main:art_standalone_tests (https://android-build.corp.google.com/builds/abtd/run/L09000030001463855) Bug: 308790457 Change-Id: I3105d3b3a7e5c41cb601d07806f4ea483a61b50a
* | Re-enable strict updatability lintingCole Faust2024-01-191-182/+190
|/ | | | | | | | | Now that all use cases where it would've errored on are removed. Ignore-AOSP-First: the properties were only removed in internal main to make the LSC smaller Bug: 320698986 Test: m nothing --no-skip-soong-tests, and also locally edited soong to add a quick build that runs all the strict updatability checks in the tree and ran that Change-Id: If9e23327a3c0944cc8c6849914fe51dc48bdb626
* Merge "Add better error handling to bootDexJar function" into mainTreehugger Robot2024-01-181-0/+78
|\
| * Add better error handling to bootDexJar functionSpandan Das2024-01-171-0/+78
| | | | | | | | | | | | | | | | | | | | | | | | aosp/2876754 missed adding error handling to one of the places which consumes the dex jar deapexed from prebuilt apexes. This CL ensures that when we have multiple prebuilt apexes _without_ flagging, the hiddenapi processing code emits a more descriptive error "Multiple deapxers..." rather than a cryptic error "<module> does not provide a dex jar" Test: m nothing --no-skip-soong-tests Change-Id: I80849fa7cca17d724ac53c94bb353b169175ee28
* | Merge "Handle installation rules for co-existing prebuilts" into mainTreehugger Robot2024-01-111-23/+185
|\ \
| * | Handle installation rules for co-existing prebuiltsSpandan Das2024-01-111-23/+185
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Every module belonging to a single mainline module family will be hidden from make, except the one which has been flagged using apex_contributions Details - Introduce a new `source_apex_name` property to prebuilt_apex and override_apex. This property will be used to identify the source equivalent of a prebuilt soong apex module. - Create an N-ary tree from source to prebuilt(s). The tree wil be rooted at the source module. - In a subsequent mutator, visit every node in the tree(s). Query apex_contributions and store the handle of the node which is "active" (if any) - In the same mutator, do another pass over the tree. Invoke `HideFromMake` on every node which is not "active". The two-pass approach is needed PrebuiltSelectionInfoProvider does not know about the inter source-prebuilt dependency, this dependency can only be known by doing a graph walk of the N-ary tree. Some tangential implementation details - Each prebuilt apex has an internal deapxer module that is responsible for generating the deapex ninja rules. The name of this internal module uses the BaseModuleName (without the prebuilt_ prefix). Since we can have multiple prebuilt soong modules in trunk stable, change this to follow the name of the prebuilt module in order to avoid name collisions. Update existing unit tests accordingly Bug: 316179314 Test: go test ./apex -run TestInstallationRulesForMultipleApexPrebuilts Test: m nothing --no-skip-soong-tests Test: presubmits Change-Id: I58aa99d5e6a9859954614e6db9a8e9e2e581642d
* / Add container to the path of the merged aconfig files.Yu Liu2024-01-101-4/+4
|/ | | | | | Bug: 312769710 Test: CI Change-Id: I4b8a71cf86a3bcefc4a41360a241aa14b798f6e8
* Replace panic with ModuleErrorfSpandan Das2024-01-091-3/+12
| | | | | | | | | | | | | | | | | | This is a followup cleanup for aosp/2876754 and replaces panic with ctx.ModuleErrorf. The latter creates a more expressive build error. Implementation details - export moduleErrorf interface from build/soong/android. This minimal interface will be used as a parameter for `DexJarBuildPath` - Add ModuleErrorf to the function signature of DexJarBuildPath. This parameter only gets used for Import and SdkLibraryImport structs. These two can have duplicate deapexer definitions, and ModuleErrorf will be used to report that error - Create a minimal implementation of `ModuleErrorf` in tests of java and apex Test: m nothing --no-skip-soong-tests Change-Id: I0febec651f40c3f04deb957e64133c94b80fbd78
* Use the correct bootjars for hiddneapi when multiple prebuilts existSpandan Das2024-01-021-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hiddenapi processing require boot jars from apexes to determine the full set of methods available at runtime. When building with prebuilts, this comes via java_import/java_sdk_library_import, which acts as a hook for prebuilt_apex/apex_set. If we have multiple apexes in the tree, this hook becomes 1:many. This CL prepares platform_bootclasspath to select the right deapexerd .jar files when mutliple prebuilts exist. Implementation details - Create a dependency edge from platform_bootclasspath to all_apex_contributions (DepsMutator) - For every boot jar, query all_apex_contributions to get the path to dexjar file (GenerateAndroidBuildActions) Some other important details - This CL does not drop the old mechanism to get the dex file (i.e. by creating a dep on java_library). Once all mainline modules have been flagged using apex_contributions, the old mechanism will be dropped - This CL has a functional change when building with source apexes. At ToT, the unecoded hiddenapi dex jar is used for package check and generating the monolithic stub file. After this change, the hiddenapi encoded file will be used for these operations. This should be fine since the package and dex signature do not change across the encoded and unencoded dex file. In fact, we already have a split today. When building with prebuilts, we use the encoded dex file. When building with source, we use the unecoded dex file. Test: Added a unit test Test: Manual testing in internal described below - lunch cf_x86_64_phone-next-userdebug - flagged com.google.android.adservices using apex_contributions - aninja -t commands out/soong/hiddenapi/hiddenapi-stubs-flags.txt # no diff before and after Bug: 308790777 Change-Id: I72c70f0ae1b587679203ea254c9c12a48e7aa782
* Use the correct bootjars when multiple prebuilt apexes existSpandan Das2023-12-201-11/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hiddenapi and dexpreopt require boot and system server jars from apexes. When building with prebuilts, this comes via java_import/java_sdk_library_import, which acts as a hook for prebuilt_apex/apex_set. If we have multiple apexes in the tree, this hook becomes 1:many. This CL prepares dex_bootjars to select the right deapexerd .jar files when mutliple prebuilts exist. Implementation details - Update prebuilt module types (prebuilt_apex/apex_set) and source apexes to set a map of library name to dex jar path on host. - dex_bootjars will access the path of the .dex jar on host via the provider. These then copied/installed to the right locations. This CL does not drop the old mechanism to get the dex file (i.e. by creating a dep on java_library). Once all mainline modules have been flagged using apex_contributions, the old mechanism will be dropped Bug: 308790457 Test: git_master-art-host:art-gtest https://android-build.corp.google.com/builds/abtd/run/L21500030000926533 Test: git_main:art_standalone_dexpreopt_tests https://android-build.corp.google.com/builds/abtd/run/L99000030000891212 Test: Added a unit test that checks that the right .jar is selected when multiple prebuilts exists Change-Id: I6ef94135b9303a35135810930af4b641df13a583
* Move validation from FindDeapexerProviderForModule to rdepsSpandan Das2023-12-181-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | FindDeapexerProviderForModule raises an exception if multiple apexes in the tree has an export dep on the java module. In prepartation to support multiple prebuilts, move this error check out of FindDeapexerProviderForModule and into rdeps. i.e. raise an exception only if an rdep calls DexJarBuildPath - This should be a no-op for now. - In the short-term future, a java import module will be allowed to have multiple deapexers. An error will be raised if anyone actually tries to depend on the dexjar - In the long-term future, this function will be removed. All processing will be done at the prebuilt apex level and not at the prebuilt java library level Since this check now happens in the moduleCtx of rdeps, add some additional props to unit tests to ensure that it does not exit early on unrelated validation checks (e.g. hidden_api prop is not set) Test: go test ./apex ./java Bug: 308790457 Change-Id: I3323d993c1ea8f43305834cae8e65b6fe41dfefd
* Move dexpreopt processing from java_*_import to prebuilt_apexSpandan Das2023-12-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dexpreopt of apex system server from prebuilts involves three soong modules 1. prebuilt_apex / apex_set 2. an internal deapexer module created by the prebuilt apex 3. java_import/java_sdk_library (3) acts as a shim for the deapexer to set the dexjar extracted from the prebuilt apex. This methodolody requires a 1:1 correspondence across the three modules This breaks down when we have multiple versions of the same prebuilt apex in the tree. In preparation for this, move the dexpreopt processing from (3) to (1). Each prebuilt_apex will create the necessary rules for dexpreopting the jars deapexed from itself. In the future, apex_contributions will be used to pick which service-foo.{odex|.vdex} to install depending on which prebuilt apex is selected. Implementation details - Embed dexpreopter in prebuiltApex structs so that this module type can register the dexpreopt rules. Since a single apex can have multiple system server jars, this also requires creating an additional scope in dexpreopt.go to prevent name collisions - Add the dexpreopt modules as required in initApexFilesForAndroidMk - Add the depreopt modules to androidMk in AndroidMkEntries. Drop the equivalent from java_import and java_sdk_library_import Bug: 308790457 Test: existing soong unit tests Test: lunch cf_x86_64_phone-next-userdebug && m out/target/product/vsoc_x86_64/system/apex/com.google.android.adservices.apex Test: Verified that the above command installs /out/target/product/vsoc_x86_64/system/framework/oat/x86_64/apex@com.android.adservices@javalib@service-adservices.jar@classes.{odex|vdex} and the equivalent files of service-sdksandbox Test: presubmits Change-Id: I01cea8956d2857fb864b415e73d3d2686d069b5e
* Support rust modules when packaging aconfig files in apex.Yu Liu2023-12-111-37/+149
| | | | | | | | | | Also remove the code to package aconfig files for transitive dependencies since those files should have already been included in the direct dependencies. Bug: 311173471 Test: Unit tests Change-Id: I25637af9381f71a78b70a8de9894618188c9735d
* Merge aconfig files per-moduleColin Cross2023-12-071-2/+2
| | | | | | | | | | | Passing the list of all transitive aconfig files to Make causes extra Kati analysis runs when dependencies are changed in Android.bp files. Since Make is going to merge them anyways, merge them per-module and pass a single aconfig file to Make for each module. Fixes: 313698230 Test: m out/target/product/vsoc_x86_64/system/etc/aconfig_flags.pb Change-Id: Ifde4826bc93bc06e40338f72b4cb39eed26ca08d
* Error if vendor apex adds an LLNDK libraryJooyung Han2023-12-051-0/+27
| | | | | | | | | | | | This is a common mistake when creating a vendor apex. They often try to list all dependencies. Adding an LLNDK results in putting a stub library in APEX, which simply doesn't work. This change prevents stubs from being added to APEX. Bug: 314033460 Test: go test ./apex Change-Id: Ic3365047028d9ab6f06992d52aece5a3890177bb
* Merge changes from topics "libz-no-stubs-for-vendor", ↵Treehugger Robot2023-12-051-0/+66
|\ | | | | | | | | | | | | | | "vendor-etc-linker-config" into main * changes: Generate vendor specific STUB_LIBRARIES Add cc_library.target.vendor.no_stubs
| * Add cc_library.target.vendor.no_stubsJooyung Han2023-12-041-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | This is to handle libz special case. libz has stubs but not an LLNDK. So, libz.vendor should be treated as non-stub-providing libraries and Vendor APEX should bundle it if it's used by its contents. libz will set no_stubs for vendor/product variants. Bug: 313806237 Test: go tests ./apex/... Change-Id: I10759d7073838909126f8bfe87654f11aa02fd32
* | Merge "Add TestContext parameter to ContentFromFileRuleForTests" into mainColin Cross2023-12-051-10/+17
|\ \ | |/ |/|
| * Add TestContext parameter to ContentFromFileRuleForTestsColin Cross2023-12-031-10/+17
| | | | | | | | | | | | | | | | | | | | | | The next CL will need a TestContext parameter in ContentFromFileRuleForTests in order to retrieve the file rule contents from the Config. Add it and update all the tests that use it in order to simply review of the next CL. Bug: 306029038 Test: go test ./... Change-Id: Ia4b4c9854017ea3472fa2f8ba42cf7f72720496e
* | Add container property to aconfig_declarations.Yu Liu2023-11-281-0/+436
|/ | | | | | Bug: 311155208 Test: Unit test Change-Id: I7b187138856d0144203961e82b6dad5e2f8eed9d
* Use the correct mainline BCP jars for app dexpreopt.Jiakai Zhang2023-11-061-3/+3
| | | | | | | | | | | | | | | Before this change, the build system had special logic to find mainline BCP jars and copy them to a special location for app dexpreopt. This logic doesn't work on `next`. In fact, we don't need this logic anymore. Since we are now generating the mainline boot image extension, we can reference the inputs of the mainline boot image extension, which are exactly the mainline BCP jars needed for app dexpreopt. Bug: 309302263 Test: atest art_standalone_dexpreopt_tests (on next) Test: m --no-skip-soong-tests nothing Change-Id: I055018ffbc5d7e5678f305e65a7f1c7e73bf3b99
* Add apex.unwanted_transitive_deps propertyJooyung Han2023-11-021-0/+36
| | | | | | | | | | It can be used as a workaround when the current build system adds more than necessary to APEX. Bug: 263308515 Bug: 295593640 Test: m blueprint_tests Change-Id: Ib59c4ac59e6128b3d112b97876e9e2d1e6ec4211
* Merge changes from topic "fix-apexkeys" into mainJooyung Han2023-11-011-5/+5
|\ | | | | | | | | | | * changes: Rewrite how to generate apexkeys.txt Refactor around apexKeysText singleton
| * Rewrite how to generate apexkeys.txtJooyung Han2023-10-301-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Instead of listing all apexes in the source tree, now each apex emits its own fragment for apexkeys.txt, which is pointed by LOCAL_APEX_KEYS_FILE. Makefile collects apexkeys.txt from installed apex files. This is to avoid listing unrelated apexes (not installed, testdata, unexported namespaces, etc.) Bug: 304914238 Test: m apexkeys.txt Test: m blueprint-tests Change-Id: Iefbe6e486cb418955584ad1a282455307e90be95
* | Stop using VNDK from product partitionJustin Yun2023-10-251-1/+12
|/ | | | | | | | | | | | | | | | | | Product modules install required vndk modules in /product/lib[64]. But still the product modules can link to the llndk from system partition using the list in /system/etc/llndk.libraries.txt. To install /system/etc/llndk.libraries.txt file, use llndk_libraries_txt singleton without versioned name. Until VNDK is fully removed, the vndk apex must install the versioned llndk.libraries.<ver>.txt file to the vndk apex. Use llndk_libraries_txt_for_apex singleton for this purpose. Test: lunch cf_x86_64_phone-next-userdebug; m Test: atest GtsVndkDependencyTestCases Bug: 299867815 Bug: 302255959 Change-Id: I058616081fe31597a9b76b772b69927807436896
* Merge "Generate product variants by default" into mainJustin Yun2023-10-041-4/+2
|\
| * Generate product variants by defaultJustin Yun2023-09-271-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | PRODUCT_PRODUCT_VNDK_VERSION is set to 'current' by default. Now, we can generate product variants without checking the PRODUCT_PRODUCT_VNDK_VERSION build variable. Remove reading the PRODUCT_PRODUCT_VNDK_VERSION variable from soong and generate product variants by default. Bug: 302255959 Test: m Change-Id: I9a9b2076f4367c5ce9a393bbb206f8dee3884bd8
* | Revert "Split Rust crate builds into compile and link phases."Colin Cross2023-10-021-2/+2
|/ | | | | | | | | | | | | This reverts commit e7c71c344d462cac998b37d551bd78baa892082d. The intermediates created by the separated rust compile steps are very large, on the order of 60GB. This is more than CI can support for now, revert the split into compile and link phases. This comes at the expense of incremental build time, especially when modifying C/C++ sources that are dependencies of rust modules. Bug: 293349612 Test: builds Change-Id: I81169e7d0727330c8de5e7688dcdc87fe7b8d3b5