Commit Graph

93141 Commits

Author SHA1 Message Date
Spandan Das
debf166cad Create a product variable for skipping apex contribution contents
This denylist will be used to ignore the prebuilt google apexes listed
in apex_contributions of vendor/google/build when building aosp products
in next.

Test: in main, lunch aosp_cf_x86_64_phone-next-userdebug && m nothing
(with ag/25842580)
Bug: 308187268

Change-Id: I5330b44caf15193a00f1e255cef24b67c794382b
Merged-In: I5330b44caf15193a00f1e255cef24b67c794382b
2024-02-15 01:38:50 +00:00
Evgenii Stepanov
f6109a1842 Merge "Add missing linker flags for memtag sanitizers." into main 2024-02-05 21:04:03 +00:00
Zhi Dou
b7d4bedd99 Merge "aconfig_proto: add doc in aconfig.proto file" into main 2024-02-05 18:37:29 +00:00
Zhi Dou
d43b446ebb aconfig_proto: add doc in aconfig.proto file
This change adds docs in aconfig.proto file and adds more detail in the
error message for bad package, name and namespace.

Bug: 318759389
Test: atest aconfig.test
Change-Id: I0d45495cd864506b2fcc06ad47e3ffbd6caca9fb
2024-02-05 16:41:56 +00:00
Joe Onorato
62bc1b46f1 Merge "Add build/soong/bin to the paths" into main 2024-02-04 00:19:21 +00:00
Joe Onorato
84e61d0d07 Add build/soong/bin to the paths
This gives us a good place to put scripts on the PATH instead of adding
more functions to envsetup.sh

Test: GENERATE_SOONG_DEBUG=true m nothing ; soongdbg ...
Change-Id: I3c1a80fc8aae8de548bfe9036dc86fa006fc58c6
2024-02-03 14:44:41 -08:00
Treehugger Robot
81c7511fed Merge "Revert "Rename LOCAL_USE_VNDK"" into main 2024-02-02 10:38:49 +00:00
Kiyoung Kim
0bf6c284e0 Revert "Rename LOCAL_USE_VNDK"
Revert submission 2931430-local_use_vndk

Reason for revert: build fails with barbet targets

Reverted changes: /q/submissionid:2931430-local_use_vndk

Change-Id: I40277cfb26bb4da5dc398b99fc4ab009d91405fc
2024-02-02 08:06:57 +00:00
Treehugger Robot
639fde3a4d Merge "Determine GC type based on BUILT_KERNEL_VERSION_FILE." into main 2024-02-02 03:01:57 +00:00
Treehugger Robot
5058eac78b Merge "Rename LOCAL_USE_VNDK" into main 2024-02-02 02:48:35 +00:00
Paul Scovanner
67f1b704bb Merge "Update release team OWNERS for SPL updates" into main 2024-02-02 00:21:06 +00:00
Paul Scovanner
55b6567017 Update release team OWNERS for SPL updates
Bug: 323384238
Change-Id: I8d9ea3507b21a68ad2c3b61232d5e91d7f720a7f
2024-02-02 00:15:06 +00:00
Evgenii Stepanov
8566eb0ee8 Add missing linker flags for memtag sanitizers.
This fixes a discrepancy between Make and Soong build systems.
Memtag sanitizers rely on the linker to mark the executable as
requesting heap/stack/globals tagging.

Test: readelf -n <binary> | grep .note.android.memtag
Bug: 322107634
Change-Id: I4a25509ff280e25d14576157903a2bbf162a4895
2024-02-01 11:34:59 -08:00
Jiakai Zhang
53dd895407 Determine GC type based on BUILT_KERNEL_VERSION_FILE.
How it works:
1. build/make/core/Makefile generates a txt file with the kernel
   version, which is taken from an explicit BOARD_KERNEL_VERSION value,
   or extracted from the kernel image on the source tree, or extracted
   from the kernel image extracted from the prebuilt boot.img.
   The file is saved at
   $ANDROID_PRODUCT_OUT/obj/PACKAGING/check_vintf_all_intermediates/kernel_version.txt.
2. If PRODUCT_ENABLE_UFFD_GC is "default", meaning the GC type needs to
   be determined by the kernel version, build/make/core/Makefile copies
   kernel_version.txt to
   out/soong/dexpreopt/kernel_version_for_uffd_gc.txt.
3. build/soong/dexpreopt/config.go writes the the UFFD GC flag to
   out/soong/dexpreopt/uffd_gc_flag.txt. The flag is determined by an
   explicit PRODUCT_ENABLE_UFFD_GC value or by contruct_uffd_gc_flag.py,
   which reads kernel_version_for_uffd_gc.txt and determines the flag
   accordingly.
4. dex2oat takes the UFFD GC flag from uffd_gc_flag.txt.
5. post_process_props.py mangles ro.dalvik.vm.enable_uffd_gc based on
   the same logic.

Bug: 321751629
Bug: 319554951
Bug: 318763448
Bug: 319648491
Test: m --no-skip-soong-tests nothing
Test: atest uffd_gc_utils_test
Test: Build with `OVERRIDE_ENABLE_UFFD_GC=default m` for device with no
  UFFD support -
  1. Check the existence of `-Xgc:CMC` in
     out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.invocation
     (dex2oat invocation for a boot image)
  2. Check the existence of `-Xgc:CMC` in
     out/soong/.intermediates/packages/apps/Settings/Settings/android_common/dexpreopt/Settings/oat/arm64/package.invocation
     (dex2oat invocation for an app defined in .bp)
  3. Check the existence of `-Xgc:CMC` in
     $ANDROID_PRODUCT_OUT/obj/APPS/Dialer_intermediates/oat/arm64/package.invocation
     (dex2oat invocation for an app defined in .mk)
  4. Check the value of ro.dalvik.vm.enable_uffd_gc in
     $ANDROID_PRODUCT_OUT/product/etc/build.prop
Test: Build with `OVERRIDE_ENABLE_UFFD_GC=default m` for device with
  UFFD support, and do the steps above.
Test: Build with `OVERRIDE_ENABLE_UFFD_GC=true m`, and do the steps
  above.
Test: Build with `OVERRIDE_ENABLE_UFFD_GC=false m`, and do the steps
  above.

Change-Id: I8df6e5be1644da05d2d5c57b3520f29601dfd7a4
2024-02-01 22:10:33 +08:00
LaMont Jones
7ba1e17dcc Merge changes Ife5eb1f8,I8d29c7ee into main
* changes:
  Add alias-release-config function
  Override release configs in depth
2024-01-31 23:45:13 +00:00
Dennis Shen
0a45b9e89f Merge "aconfig: update mapped_file" into main 2024-01-31 20:32:28 +00:00
Dennis Shen
7bb9cda6c4 aconfig: update mapped_file
Minor change to mapped_file module, create utility function to verify
file is readonly and map. Also, update the unit test to create temp pb
file instead of writing to the test dir.

Bug: 321077378
Test: atest aconfig_storage_file.test
Change-Id: Id903ed458613e4aac8d2cbb1664fd8293de1a494
2024-01-31 19:01:56 +00:00
Treehugger Robot
0296ef0081 Merge "Store metrics for each run of a benchmark." into main 2024-01-31 18:44:16 +00:00
Treehugger Robot
9918afcb1d Merge "Add benchmarks for lunch" into main 2024-01-31 18:44:16 +00:00
Dennis Shen
c4cb665612 Merge "aconfig: create memory map file module" into main 2024-01-31 17:10:35 +00:00
Liz Kammer
0b7bdeeb9b Store metrics for each run of a benchmark.
Enables a breakdown to understand where time is being spent on each CUJ.

Test: run ./build/make/tools/perf/benchmarks --store-metrics
Change-Id: I28f3f62b2b2c1fd810ecce9238c7177c1eb382d7
2024-01-31 09:49:47 -05:00
Liz Kammer
efb6650d45 Add benchmarks for lunch
Test: ./benchmarks --benchmark full_lunch
Change-Id: Id6be3b41a518d4ca9cad882a913f1dcc59f0d01a
2024-01-31 09:46:05 -05:00
Liz Kammer
898efbfb78 Merge "Update benchmarks to handle cog workflows" into main 2024-01-31 14:35:03 +00:00
Dennis Shen
19370a0a31 aconfig: create memory map file module
This module is repsonsible for finding the storage file location based on a
pb file and then map these storage files into memory using memmap2
crate. The mapped files are cached in a static hashmap in this module.

Note that memmap2 crate has not been introduced to AOSP yet as a 3p
crate. It is in the process of importing to AOSP ATM. So in src/lib.rs,
we only include this module if we are building the target using cargo.

Also, the test storage files: package.map, flag.map and flag.val are
generated based on the storage test aconfig files in
aconfig/aconfig/tests dir. With aconfig create-cache command first to
produce cache files, and then aconfig create-storage command to create
each storage file.

aconfig create-cache --package com.android.aconfig.storage.test_1 --container system --declarations ./storage_test_1.aconfig --cache com.android.aconfig.storage.test_1.cache

aconfig create-cache --package com.android.aconfig.storage.test_2 --container system --declarations ./storage_test_2.aconfig --cache com.android.aconfig.storage.test_2.cache

aconfig create-cache --package com.android.aconfig.storage.test_4 --container system --declarations ./storage_test_4.aconfig --cache com.android.aconfig.storage.test_4.cache

aconfig create-storage --container system  --cache ./com.android.aconfig.storage.test_1.cache --cache ./com.android.aconfig.storage.test_2.cache --cache ./com.android.aconfig.storage.test_4.cache --file flag_val --out ./flag.value

aconfig create-storage --container system  --cache ./com.android.aconfig.storage.test_1.cache --cache ./com.android.aconfig.storage.test_2.cache --cache ./com.android.aconfig.storage.test_4.cache --file package_map --out ./package.map

aconfig create-storage --container system  --cache ./com.android.aconfig.storage.test_1.cache --cache ./com.android.aconfig.storage.test_2.cache --cache ./com.android.aconfig.storage.test_4.cache --file flag_map --out ./flag.map

Bug: 321077378
Test: atest aconfig_storage_file.test
Change-Id: Id4bd26ce1a2513cdda201b479cec2b8c04faabfe
2024-01-31 13:54:16 +00:00
Treehugger Robot
675aef236a Merge "aconfig: fix formatting warnings" into main 2024-01-31 13:50:04 +00:00
Mårten Kongstad
6fdaa11d7c aconfig: fix formatting warnings
Update the rust toolchain to 1.75.0 and run `cargo fmt`.

Bug: N/A
Test: cargo fmt --check
Test: atest :all
Change-Id: I718c350f4c346b85ff3608f3101278c2ee776b36
2024-01-31 09:40:21 +01:00
LaMont Jones
2135347927 Merge "Add device_aconfig_declarations target" into main 2024-01-30 23:25:25 +00:00
LaMont Jones
61b0f799e2 Add alias-release-config function
This should be used to declare that a release config is an alias for
another one.  Aliases have no release config files of their own, and are
primarily used to simplify continuous integration as releases happen.

Bug: None
Test: manual
Change-Id: Ife5eb1f8f4bf8e06832dc55bbc390ce2f741ebb8
2024-01-30 23:07:15 +00:00
LaMont Jones
55d5fc504b Override release configs in depth
When overriding a release config, make sure that the overriden config is
fully present (by processing any of its overrides) before overriding it.

Bug: None
Test: manual
Change-Id: I8d29c7ee7208acf7fe63876f617c5b9e2c26c434
2024-01-30 23:06:08 +00:00
Treehugger Robot
f350b7afc7 Merge "Fix doing preroll for postroll" into main 2024-01-30 21:59:01 +00:00
LaMont Jones
2e47c7bbd3 Add device_aconfig_declarations target
Building device_aconfig_declarations creates simplifies listing all
aconfig flags used on the device by creating a build artifact at:
$(OUT_DIR)/target/product/$(TARGET_PRODUCT)/device_aconfig_declarations.pb

Bug: b/308625757
Test: manual
Change-Id: Ic5eef9c6a26f7893b3f4bdfed2cd4ac82a54a8f9
2024-01-30 19:15:28 +00:00
Automerger Merge Worker
59dad11fa9 Merge "Merge "Support test runnner option in auto generated test configs" into android14-tests-dev am: 7b944b6220" into main 2024-01-30 18:11:38 +00:00
Steven Moreland
8a29e9b345 Merge "Support test runnner option in auto generated test configs" into android14-tests-dev am: 7b944b6220
Original change: https://android-review.googlesource.com/c/platform/build/+/2924816

Change-Id: I742b21bf2cb2d3ea3aad49f70fa4dec5e8143a76
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-01-30 18:11:27 +00:00
Dennis Shen
4767d785c1 Merge "aconfig: remove bucket_index from PackageTableNode/FlagTableNode struct" into main 2024-01-30 15:20:46 +00:00
Dennis Shen
eef9192987 aconfig: remove bucket_index from PackageTableNode/FlagTableNode struct
bucket index currently is a field in PackageTableNode/FlagTableNode, but this is
purely aux info that is never searilized or deserialized. Therefore we
should remove it from the struct definition. Instead aconfig should
define a wrapper struct that wraps around an instance PackageTableNode/FlagTableNode
as well as aux info like bucket_index.

Bug: 321077378
Test: atest aconfig.test && atest aconfig_storage_file.test
Change-Id: I20f2565d20b7feb5d39754e91cd6a9affb1f0e70
2024-01-30 15:16:29 +00:00
Kiyoung Kim
f4c9330e24 Rename LOCAL_USE_VNDK
LOCAL_USE_VNDK property refers if the module uses VNDK, and this
property is being used to check if the module is installed in vendor or
product. However, the term no longer makes sense with VNDK deprecation,
so it should be renamed. Similar to change in aosp/2897612, rename
LOCAL_USE_VNDK as LOCAL_IN_VENDOR or LOCAL_IN_PRODUCT.

Bug: 316829758
Test: AOSP CF build succeeded
Change-Id: Icfd1707953eba2e29044468ab6728b39d7998048
2024-01-30 17:10:39 +09:00
Kangping Dong
e2799f42ef Merge "[Thread] add ot-ctl to userdebug for testing" into main 2024-01-30 07:50:48 +00:00
Steven Moreland
7b944b6220 Merge "Support test runnner option in auto generated test configs" into android14-tests-dev 2024-01-29 21:22:00 +00:00
Dennis Shen
f39e4a2273 Merge "aconfig: add flag value query pub function" into main 2024-01-29 20:48:48 +00:00
Treehugger Robot
1cc902690e Merge "Fix ext4 size estimates" into main 2024-01-29 20:06:18 +00:00
Daniel Zheng
6a34ceb68e Merge "Allow cow_version to be overwriteable" into main 2024-01-29 20:00:09 +00:00
Dennis Shen
9a76f645a2 Merge "aconfig: add flag table offset query function" into main 2024-01-29 19:47:23 +00:00
Dennis Shen
043a1eec4d Merge "aconfig: create package table query public function" into main 2024-01-29 19:47:15 +00:00
David Dai
d1316f463c Merge "Propagate virtual cpufreq related flags to soong" into main 2024-01-29 19:16:09 +00:00
Liz Kammer
864dd43c07 Update benchmarks to handle cog workflows
Test: run ./build/make/tools/benchmarks in a cog workspace
Change-Id: I421d1d08b4e90a79b8416486025229d4f3263fbe
2024-01-29 14:13:57 -05:00
Liz Kammer
f67a6e8114 Fix doing preroll for postroll
Test: ./build/make/tools/perf/benchmarks
Change-Id: Ib64ddd53ea9234dc2934fd6dea988add02729d29
2024-01-29 14:09:43 -05:00
Dennis Shen
78bea3d66c aconfig: add flag value query pub function
Bug: b/321077378
Test: atest aconfig_storage_file.test
Change-Id: I83dd93c5f8d640ddbe85493a470af68df1e3e69d
2024-01-29 18:54:13 +00:00
Treehugger Robot
c4e6b40594 Merge "Remove workaround to copy reclient binaries" into main 2024-01-29 17:21:38 +00:00
Dennis Shen
9fd970198d aconfig: add flag table offset query function
Bug: b/321077378
Test: atest aconfig.test; atest aconfig_storage_file.test
Change-Id: Ib0ec1ec809c65d8f9f1284e4214cfbb683812f1d
2024-01-29 15:11:55 +00:00
Treehugger Robot
bc7f1a2e67 Merge "aconfig: fix workspace resolver warning" into main 2024-01-29 14:52:58 +00:00