Commit graph

76977 commits

Author SHA1 Message Date
Spandan Das
af66212522 Revert "Fix non-determinism in prebuilt selection"
This reverts commit 2d8884a377.

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
2024-02-29 08:57:08 +00:00
Spandan Das
2d8884a377 Fix non-determinism in prebuilt selection
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
2024-02-29 06:34:49 +00:00
Inseob Kim
688f824e1a Merge "Sort jarjar rename keys before using" into main 2024-02-29 01:04:40 +00:00
Jihoon Kang
641bd9daee Merge "Enable non-"everything" stubs generation in java_api_library" into main 2024-02-28 22:38:52 +00:00
Aditya Kumar
592b54c443 Merge "Update unaligned-vector-mem to -munaligned-access" into main 2024-02-28 19:35:39 +00:00
Spandan Das
4dc449593a Merge "Use BaseModuleName of dep when writing to make" into main 2024-02-28 18:03:41 +00:00
Spandan Das
3faa792093 Use BaseModuleName of dep when writing to make
Since BaseModuleName of the dep becomes its LOCAL_MODULE name in the
generated mk file, we should also use BaseModuleName of dep for populating
properties such as LOCAL_SHARED_LIBS of rdeps

Test: m nothing --no-skip-soong-tests
Bug: 322175508

Change-Id: I6b47112faa63f85d19b5b71e0e102cea0ab68e3b
2024-02-28 18:03:00 +00:00
Jihoon Kang
5d701272e4 Enable non-"everything" stubs generation in java_api_library
This change adds support to generate non-"everything" (i.e. "runtime"
and "exportable") stubs in java_api_library, which generates the stubs
from the api signature files.

Unlike droidstubs module that generates "everything", "exportable" and
"runtime" stubs in a single module, java_api_library generates a single
set of stubs per module, which is set by the default-"everything"
property `stubs_type`. This is because java_api_library is responsible
for both generation and the compilation of the stubs srcjar, and
compilation of the stubs srcjar are done in separate java_library
modules for from-source stubs.

Utilization of this feature will be done in a follow up change that
generates the "exportable" java_api_library modules in java_sdk_library.

Test: m nothing --no-skip-soong-tests
Bug: 318009570
Change-Id: I1051544ac3bcdb3ba1f78bfec28eba4e9fad9c2d
2024-02-28 07:55:32 +00:00
AdityaK
2c90a92d77 Update unaligned-vector-mem to -munaligned-access
Latest compiler has merged both unaligned access flags into one.

TODO:  This is needed until we change clang driver to enable -munaligned access by default.for Android b/327307773

Bug: 326790418
Change-Id: Ia8c29dc56104d2cffb8ac41aae6eeacccae68e61
2024-02-28 06:14:57 +00:00
Inseob Kim
3c0c9d7816 Sort jarjar rename keys before using
To make it deterministic

Bug: 327302642
Test: compare build commands among different targets
Change-Id: I890dcd67c62db58938a6e6d1c4e3fbd323c72b18
2024-02-28 14:28:59 +09:00
Riya Thakur
88c21f567f Merge "Add sh_binary dependencies to primary abi of the target" into main 2024-02-28 02:37:09 +00:00
Jihoon Kang
60bdd05b21 Merge changes I14928b7b,Ia009df3d into main
* changes:
  Generate runtime stubs in droidstubs
  Additional cleanup prior to adding the runtime stubs
2024-02-28 00:29:08 +00:00
Riya Thakur
654461cde9 Add sh_binary dependencies to primary abi of the target
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
2024-02-27 07:23:45 +00:00
Treehugger Robot
8bf3013844 Merge "Support new property "arch_dpi" for android_import" into main 2024-02-27 02:56:45 +00:00
Jihoon Kang
ca2f9e8bf4 Generate runtime stubs in droidstubs
Similar to how the exportable stubs are generated in droidstubs, this
change adds the rule to generate the runtime stubs in droidstubs. Unlike
the exportable stubs, which the artifacts are dist'ed during the sdk
build, the runtime stubs will only used in the hiddenapi flags
generation. Therefore, only the stubs are generated and no other
artifacts are generated during the "runtime" metalava invocation. When
`aconfig_declarations` property is not defined (i.e. no flags are
enabled, thus the exportable and the runtime stubs are identical), the
runtime stubs are simple copied from the exportable stubs.

Note that the runtime stubs are not a dependency of `droid` as of now.
The dependency of the hiddenapi flags will be replaced to the runtime
stubs in the child CL.

Test: m nothing --no-skip-soong-tests && m api-stubs-docs-non-updatable
Bug: 319162970
Change-Id: I14928b7b5619522c4caab1dfc795bc9c7e929639
2024-02-27 01:51:05 +00:00
Jihoon Kang
6b93b38e34 Additional cleanup prior to adding the runtime stubs
This change performs additional cleanups in the build rules of the
droidstubs module, specifically optionalizing annotationFlags(...) and
apiLevelsAnnotationsFlags(...). This is required as "runtime" stubs
would not generate other artifacts than the stubs, and thus
`stubsArtifacts` would not be generated for "runtime".

Test: m nothing
Bug: 319162970
Change-Id: Ia009df3d01f49841d5041fb2dfdfa7ef8671bf18
2024-02-27 01:01:44 +00:00
Spandan Das
bffd7fbaba Ignore prebuilt apex_contributions in coverage builds
This CL unsets the prebuilt contents of a selected apex_contribution
in coverage builds. The effect of this will be that mainline modules
will be built from source with the following in coverage builds
1. Instrumentation turned on
2. RELEASE_ACONFIG_VALUE_SETS for that release config

Test: Added a unit test
Test: lunch cf_x86_64_phone-next-userdebug && EMMA_INSTRUMENT=true m nothing (with ag/26298763)
Bug: 325666427
Change-Id: Ic4e1f0612072377261602842dfd303c064095035
2024-02-26 10:07:45 +00:00
Mårten Kongstad
50bfc34894 Merge "Include all_aconfig_declarations in droid dist" into main 2024-02-26 07:12:36 +00:00
Herbert Xue
04354ae88b Support new property "arch_dpi" for android_import
Support the feature with new property combined with architecture and dpi
resolution.

Bug: 319381869
Test: go test -run TestAndroidAppImport_ArchVariants
Change-Id: Ib43cbae8868fc35701e6666867b2325f5abbb2c7
2024-02-26 10:46:18 +08:00
Yi Kong
52e5e6b1a7 bindgen: set -Wno-unknown-warning-option flag by default
Test: presubmit
Change-Id: Id8547c0b3263f4e3b060f8b0fce2aef8a494b1b2
2024-02-25 12:49:41 +08:00
Mårten Kongstad
c61353222c Include all_aconfig_declarations in droid dist
Include all_aconfig_declarations in the droid dist directory
(identically to how it is already included in the sdk dist).

For local builds, `printflags` is still the recommended way to read
all_aconfig_declarations; the dist-ed files are intended as a way to
inspect remote builds, such as CI builds.

Bug: 324281288
Test: lunch aosp_oriole-trunk-eng && m droid dist && test -e out/dist/flags.pb && test -e out/dist/flags.textproto
Change-Id: Ic29d69ab5014593a3f9213f8a5b55e0569922cc9
2024-02-23 09:22:56 +01:00
Treehugger Robot
df3f773e78 Merge changes I67893f8c,I5f29258e into main
* changes:
  Ensure that filesystem module can track modules with prefer32
  bpf modules can be included in filesystem modules
2024-02-23 03:58:16 +00:00
Jihoon Kang
35349466cd Convert the build flag RELEASE_EXPORT_RUNTIME_APIS to a product variable
RELEASE_EXPORT_RUNTIME_APIS build flag is currently used to modify the
filter condition for the "exportable" stubs, so that it exposes wider
set of flagged apis (ENABLED && READ_ONLY vs ENABLED || READ_WRITE).
This flag was originally introduced as a build flag to be enabled in
specific release configurations, but instead this is used as a product
variable that will be enabled in the product `sdk_with_runtime_apis`,
which will be introduced in a future change.

Test: m nothing --no-skip-soong-tests
Bug: 326312949
Change-Id: Ieb3cee517dd6cedcca844a9eab270aedf8199d4e
2024-02-22 20:10:22 +00:00
Jihoon Kang
b36fc547c0 Introduce product variable PRODUCT_HIDDEN_API_EXPORTABLE_STUBS
The new product variable behaves identical to the build flag
RELEASE_HIDDEN_API_EXPORTABLE_STUBS: if the variable is set to true, the
hiddenapi flags are generated from the "exportable" stubs (i.e. the
stubs that does not include READ_WRITE permission or DISABLE state
flagged apis) instead of the "everything" stubs (i.e. the stubs that
includes all flagged apis regardless of the state of the flags). If the
variable is set to false, the stubs are generated from the "everything"
stubs.

This product variable will be utilized for `sdk_with_runtime_apis`
product in the future changes.

Test: m nothing
Bug: 326310637
Change-Id: I8872d0b0617eb0f25da32611837ad823c77b0df7
2024-02-22 20:09:46 +00:00
Cole Faust
c7a806a657 Merge "Allow soong config value variables to set nested properties" into main 2024-02-22 18:22:02 +00:00
Stephen Hines
b0e708d03d Merge "rustc-1.75.0 Build 11471753" into main 2024-02-22 07:29:40 +00:00
Nishant Panwar
6636216116 Merge "Add SDK library framework-pdf-v in MediaProvider" into main 2024-02-22 06:32:14 +00:00
Cole Faust
1da0b20575 Allow soong config value variables to set nested properties
Previously, it would error out if it saw anything that wasn't a string
or slice of strings. Now it will also recurse in sub-structs.

Fixes: 326255534
Test: go test
Change-Id: Icbca8e4a2cf54b5610599a10805550fed05eb396
2024-02-21 11:38:09 -08:00
Aditya Kumar
6edbaa369f Merge "Remove wtautological warnings added during toolchain update" into main 2024-02-21 18:43:28 +00:00
Yu Liu
864fd2f1f5 Merge "Support aconfig stoage files for apex." into main 2024-02-21 17:42:58 +00:00
Andrew Walbran
c0a6d29e49 Merge "Revert^4 "Integrate Rust-specific System Properties into rules generation."" into main 2024-02-21 11:53:45 +00:00
Andrew Walbran
a5deb7307d Revert^4 "Integrate Rust-specific System Properties into rules generation."
This reverts commit 2766baa922.

Reason for revert: Relanding after fix in I3b190ebc1a1096972d0a1273e490972e04684dd2

Change-Id: Ie34301c506d3469ec3306f433631b0842b66d032
2024-02-21 11:53:18 +00:00
Jihoon Kang
5135a0df57 Merge "Modify sdk_library to dist exportable api files by default" into main 2024-02-21 07:30:30 +00:00
Aditya Kumar
30aec0dfb1 Merge "Error on the usage of -target flag" into main 2024-02-21 06:30:45 +00:00
Treehugger Robot
d741b7f9f2 Merge "Ignore modules which are not exported to Make." into main 2024-02-21 04:54:36 +00:00
Jihoon Kang
d1799f6835 Modify sdk_library to dist exportable api files by default
Currently, the "exportable" stubs are copied to the dist directory by
default when building the java_sdk_library module. However, "everything"
api files (current & removed) are copied to the dist directory, causing
confusion to the developers. This change modifies the default behavior
so that the "exportable" api files are copied to the dist directory and
match the behavior of the stubs.

Test: m nothing
Bug: 325639165
Change-Id: I2e3b158bb638d30629120b32aa3e88bb26231020
2024-02-20 23:06:11 +00:00
Stephen Hines
41f2ab846a rustc-1.75.0 Build 11471753
Bug: https://issuetracker.google.com/issues/321303117
Test: m rust
Change-Id: I90f0efb4eb3b6fcc41fbe256a9079e0e5647663c
2024-02-20 14:59:31 -08:00
Treehugger Robot
dcda79b5e7 Merge "AOSP platform_apis violations" into main 2024-02-20 22:46:31 +00:00
Chris Wailes
f49f7d58ca Merge "Revert "Re-land "Make building Rust targets faster in eng builds""" into main 2024-02-20 22:10:14 +00:00
Chris Wailes
99180c23d2 Revert "Re-land "Make building Rust targets faster in eng builds""
This reverts commit e3da5ea86b.

Reason for revert: b/326108486

Change-Id: Ia99c6024f41f863d7a2a2eaea0567c330c2b1a89
2024-02-20 21:39:40 +00:00
Mårten Kongstad
cbc967ffc2 Merge "Include all_aconfig_declarations in sdk dist" into main 2024-02-20 20:27:37 +00:00
Chris Wailes
431f004e59 Merge "Re-land "Make building Rust targets faster in eng builds"" into main 2024-02-20 19:02:02 +00:00
Andrew Walbran
fb7566456c Ignore modules which are not exported to Make.
Bug: 323833345
Test: forrest run on git_udc-qpr-dev-plus-aosp/aosp_arm64-trunk_staging-userdebug
Change-Id: I3b190ebc1a1096972d0a1273e490972e04684dd2
2024-02-20 18:13:58 +00:00
Spandan Das
8469e939f3 AOSP platform_apis violations
This allowlist contains java_library modules which set the no-op
property `platform_apis`. This allowlist will help enforce that there
are no new violations.

This should be a no-op till
https://android-review.git.corp.google.com/c/platform/build/soong/+/2969451
is submitted

Test: presubmits
Bug: 215379393
Change-Id: I49372e1d476201f607cd717be26aa3909668ff26
2024-02-20 17:22:22 +00:00
Mårten Kongstad
2a1adcc63a Include all_aconfig_declarations in sdk dist
Include all_aconfig_declarations in the sdk dist directory, in both
binary protobuf (for machine consumption) and text protobuf (for human
consumption) format.

Bug: 324281288
Test: m sdk dist && test -e out/dist/flags.pb && test -e out/dist/flags.textproto
Change-Id: Icfb4841c3fe6478ddc233ef6d092ca700a8acb20
2024-02-20 12:51:25 +01:00
Spandan Das
4bec95e2f6 Merge "Disable dexpreopt if optional_uses_libs does not have an impl" into main 2024-02-20 08:08:35 +00:00
Spandan Das
73f4a4a481 Merge "Revert "Revert "Create a product variable for skipping apex cont..."" into main 2024-02-20 07:53:03 +00:00
Treehugger Robot
3ce80aef7f Merge "Version LLNDK ABI dumps with VendorApiLevel" into main 2024-02-17 05:58:03 +00:00
Spandan Das
8ab28dd61d Revert "Revert "Create a product variable for skipping apex cont..."
Revert submission 2966055-revert-2964509-skip-apex-contributions-EOKWOFHENC

Reason for revert: The root cause CL has been reverted https://googleplex-android-review.git.corp.google.com/c/platform/vendor/google/build/+/26268799

Reverted changes: /q/submissionid:2966055-revert-2964509-skip-apex-contributions-EOKWOFHENC

Change-Id: I93e8f60124a09b4fba4675ac7f128ab553102bf7
2024-02-17 03:31:45 +00:00
Treehugger Robot
3e48d693f4 Merge "Revert "Create a product variable for skipping apex contribution..."" into main 2024-02-17 02:24:02 +00:00