Commit Graph

8437 Commits

Author SHA1 Message Date
Treehugger Robot
c9893274e0 Merge "NDK library: switch to stg ABI format" into main 2023-08-02 11:23:05 +00:00
Yi Kong
d6ab48c660 Limit LTO inlining even when profile is present
Reduce the import instr limit from the LLVM default (100) to 40. This
helps reduce the binary size as well as improving performance slightly.

Size:
             Default(100)   40        30
libhwui.so   11059040       11058912  11060872
libart.so    10697576       10697160  10696568

Performance:
40 vs. default:  0.37% improvement
                 http://go/art-benchmark?p=BootImageProfileId:36054
30 vs. default:  0.36% improvement
                 http://go/art-benchmark?p=BootImageProfileId:36058

Test: presubmit
Change-Id: Id800ff7818cde908daab784bac0a312c6a71272d
2023-08-01 18:30:13 +00:00
Kevin Jeon
4b4d61fa2e Merge "Add libdumpstateutil to vendor variant list" into main 2023-08-01 18:25:33 +00:00
Matthias Maennich
e914f2d5c3 NDK library: remove remnants of abidw usage
Now migration to STG is complete, hence remove the legacy extraction
mechanisms.

Bug: 156513478
Change-Id: I55b7626e2bfa78c9bb5157ade73d71a97597da72
Signed-off-by: Matthias Maennich <maennich@google.com>
2023-08-01 17:22:47 +00:00
Matthias Maennich
55486f8674 NDK library: extract ABI representations with STG
Replace the abidw->stg pipeline by just stg for extraction directly from
ELF/DWARF. This is to migrate to STG entirely.

As a migration tooling, keep the existing method active via
`legacy_use_abidw` as a flag on ndk_library.

Bug: 156513478
Change-Id: Ideaa9908b31591f49f9a167cfa3f3d5c95d8b198
Signed-off-by: Matthias Maennich <maennich@google.com>
2023-08-01 17:22:47 +00:00
Matthias Maennich
ca8ae6564f NDK library: switch to stg ABI format
STG's native .stg format has been designed with version control in mind
as is the best format to represent STG's internal data representation.

Hence, migrate the ABI representation dump to .stg. That is done by
converting `abidw` extracted xml to stg at build time. STG has builtin
`abitidy` functionality, so `stg` can replace the prior `abitidy` step
to generate the final format.

Bug: 156513478
Change-Id: Ifcac8998ab899637a5d8c54f9e72d79d3e28ec52
Signed-off-by: Matthias Maennich <maennich@google.com>
2023-08-01 17:22:47 +00:00
Matthias Maennich
658bb4dad9 NDK library: switch abi diffing to STG
Bug: 156513478
Change-Id: Ie45cb7daffb9861ed5bc26792f184bffcbe90bdb
Signed-off-by: Matthias Maennich <maennich@google.com>
2023-08-01 17:22:47 +00:00
Sharjeel Khan
c6a93d853b Created an Orderfile go file for the build system.
In addition, I added a test file to check if flags are added and propagated correctly.

Test: mma build/soong
Output: #### build completed successfully (07:24 (mm:ss)) ####

For testing with an actual binary or shared library, steps are in this
README:
https://android.googlesource.com/toolchain/pgo-profiles/+/refs/heads/main/orderfiles/README.md

Change-Id: Idcf169156ef691bcacb8adc92828ef09450085f8
2023-08-01 16:58:58 +00:00
Prashanth Swaminathan
1e079dfdf2 Merge "Convert preview sdkVersion to int for target-api" into main 2023-08-01 01:40:16 +00:00
Florian Mayer
2d8b555f2e Merge "Reland "[hwasan] remove workaround for fixed toolchain issue"" into main 2023-07-31 20:46:55 +00:00
Treehugger Robot
7b4449ae94 Merge "Revert "Enable CFI for riscv64"" into main 2023-07-31 18:54:11 +00:00
Ivan Lozano
17ac9fa93e Merge "Revert "rust: Add SCS sanitizer option for AArch64"" into main 2023-07-31 18:13:40 +00:00
Treehugger Robot
82c298c240 Merge "Convert coverage libs as alwayslink" into main 2023-07-31 18:13:07 +00:00
Ivan Lozano
22823eed4b Revert "rust: Add SCS sanitizer option for AArch64"
This reverts commit 8827113577.

Reason for revert: hwasan builds breaking

Change-Id: I28094e27d5935c6f371fddddf4b6b0334de9b12c
2023-07-31 18:01:26 +00:00
Treehugger Robot
dc3606a81d Merge "Gen a header library when genrules export includes" into main 2023-07-31 17:48:44 +00:00
Ivan Lozano
0e403456b0 Merge "rust: Add SCS sanitizer option for AArch64" into main 2023-07-31 17:27:01 +00:00
Kevin Jeon
501be146db Add libdumpstateutil to vendor variant list
This change adds libdumpstateutil to VndkMustUseVendorVariantList. This
is done to avoid a VNDK re-spin on aosp/2679475 and aosp/2681060, which
add the dumpstate util function IsStrictRun and make it framework-only.

Test: Presubmit; verify that builds still work on internal (refer to
      aosp/2681060 test).
Bug: 283326935
Change-Id: I3c60dd919a65182937d6e0b233635ff6ca9414d3
2023-07-31 13:08:37 -04:00
Prashanth Swaminathan
49dcf79550 Revert "Enable CFI for riscv64"
This reverts commit 73fe13c9b1.

Reason for revert: b/293884796, crash on boot of riscv64 aosp phone.

Change-Id: Ie90e0e99ddaa7bb5d496e2b1d0ab0302702cb2bc
2023-07-31 16:15:57 +00:00
Prashanth Swaminathan
30f7c79949 Convert preview sdkVersion to int for target-api
If the target SDK of the module is a preview, the current logic passes
it through to llvm-rs-cc, which expects an int. Convert codenames to
their API level first, then extract the final or preview int.

Also simplify the logic to look for 'current' more generically via the
common ApiLevel library functions.

Test: Verified local build of riscv64, confirmed RS attempts to build
with API level 9000+ instead of 'VanillaIceCream'.

Change-Id: I1fa7577181bfd16de0ea4e77f7ab8fbd8fdb55e5
2023-07-29 11:44:33 -07:00
Florian Mayer
f50eda3b9b Reland "[hwasan] remove workaround for fixed toolchain issue"
This reverts commit e72ee14006.

Bug: 293532332
Reason for revert: Test failure fixed in https://r.android.com/2681595

Change-Id: Id40079133e50492a6e2f3e2794012695562c39f6
2023-07-28 21:22:34 +00:00
Christopher Ferris
6ff7d9e532 Merge "Allow ramdisk targets to set cflags/exclude_srcs." into main 2023-07-28 19:02:48 +00:00
Ivan Lozano
8827113577 rust: Add SCS sanitizer option for AArch64
SCS has been supported in Rust since 1.64.0.

This adds SCS as a sanitizer option in Rust.

Bug: 168914033
Test: Built module with sanitize: { scs: true }
Change-Id: Ie54ac4693286878b98704cf052649a267777d764
2023-07-28 14:34:28 -04:00
Florian Mayer
a09c4bf8cb Merge "Revert "[hwasan] remove workaround for fixed toolchain issue"" into main 2023-07-28 18:28:22 +00:00
Mark White
e72ee14006 Revert "[hwasan] remove workaround for fixed toolchain issue"
This reverts commit 07ca220182.

Reason for revert: b/293532332 - bionic unit tests failing

Change-Id: I11412df55d7131ff0bb36dee7258b75a12024100
2023-07-28 13:54:57 +00:00
Aditya Kumar
5c2b3e2ea6 Merge "Enable CFI for riscv64" into main 2023-07-28 00:22:36 +00:00
Christopher Ferris
e0202c4823 Allow ramdisk targets to set cflags/exclude_srcs.
Test: Build a ramdisk target with cflags and exclude_srcs set.
Change-Id: I44b8b379441aeda215f0831bbbadea575ea4c68f
2023-07-27 17:06:46 -07:00
Treehugger Robot
6677600f35 Merge "Emit gtest in BUILD files only if Android.bp sets it" into main 2023-07-27 23:52:46 +00:00
Elliott Hughes
aa204ec49c riscv64: enable V.
Test: treehugger
Change-Id: I5bbbb22074632366c7ffa38bc437d80da692685b
2023-07-27 15:17:34 -07:00
Treehugger Robot
268fad160a Merge "Do not enable AFDO if the option is off, even if there is a profile file" into main 2023-07-27 20:33:41 +00:00
Treehugger Robot
ad18b1467f Merge "[hwasan] remove workaround for fixed toolchain issue" into main 2023-07-27 20:14:35 +00:00
AdityaK
73fe13c9b1 Enable CFI for riscv64
This patch reverts the last remaining piece of commit 1281b99495 as LTO has been enabled in I66c83b1116550179043490a11f66b8630c0e6b1b

Testing:
```
$ source build/envsetup.sh
$ lunch aosp_cf_riscv64_minidroid-userdebug
$ m
$ launch_cvd --num_instances=8 --daemon
$ adb devices
List of devices attached
0.0.0.0:6520    device
0.0.0.0:6521    device
0.0.0.0:6522    device
0.0.0.0:6523    device
0.0.0.0:6524    device
0.0.0.0:6525    device
0.0.0.0:6526    device
0.0.0.0:6527    device
```

Bug: b/282584808, b/254713216


Change-Id: I6fe5b1001c2c64e2a4a55176f4017bb445570176
2023-07-27 18:49:18 +00:00
Steven Moreland
c8a5d7c7df Merge "Linker: no demangle." into main 2023-07-27 18:19:09 +00:00
Treehugger Robot
db195fd4cb Merge changes from topic "reland-hack-rv64-libc++" into main
* changes:
  Revert "Revert "Set VIC as minimum SDK version for riscv64""
  Revert "Revert "Use prebuilt NDK libc++ for rv64.""
2023-07-27 18:17:35 +00:00
Ivan Lozano
7e377d045e Merge "Revert "rust: Add SCS sanitizer option."" into main 2023-07-27 15:08:50 +00:00
Ivan Lozano
f9780422b3 Revert "rust: Add SCS sanitizer option."
This reverts commit 447f5b1ea9.

Reason for revert: b/293445283

Change-Id: Iadc6c7ed196be2a65329f86423730ba7f851002c
2023-07-27 14:52:20 +00:00
Ivan Lozano
c7c29b9b8e Merge "rust: Add SCS sanitizer option." into main 2023-07-27 14:23:33 +00:00
Yi Kong
2dbe160d1a Do not enable AFDO if the option is off, even if there is a profile file
The behaviour is accidentally changed during the Bazel migration.

Test: m
Change-Id: I44158f2518776c68938ad2ddab01431005a333b0
2023-07-27 14:04:05 +09:00
Florian Mayer
07ca220182 [hwasan] remove workaround for fixed toolchain issue
these two upstream commits fixed the issues in global-isel and fast-isel:

* global-isel: https://reviews.llvm.org/D82615
* fast-isel: https://reviews.llvm.org/D138615

Currently used clang r498229 (defined build/soong/cc/config/global.go)
is based on upstream commit 14f0776550b5a49e1c42f49a00213f7f3fa047bf
which includes these two changes.

Bug: 293297826
Test: build oriole_hwasan and boot
Change-Id: I65fabdf0b5edd248b4bf4e138a999f8142370cd5
2023-07-26 21:17:56 +00:00
Liz Kammer
3847f21848 Convert coverage libs as alwayslink
Bug: 291090629
Test: bp2build.sh and CI
Change-Id: I050a870b36b5bc84dbdbca73405e0a0fab1aef86
2023-07-26 19:24:23 +00:00
Liz Kammer
c796de83c8 Merge "Handle xsd config more like other partitions" into main 2023-07-26 19:18:52 +00:00
Spandan Das
e50fd111f3 Emit gtest in BUILD files only if Android.bp sets it
cc_test bazel macro will default `gtest` to True (similar to Soong). So
we can skip explicitly setting this in the generated BUILD files. The
benefit will be that it will make the generated files less verbose,
without loss of information.

This will be implemented by changing its datatype to *bool from bool.

Test: go test ./bp2build
Test: TH
Change-Id: I284e10f1d58c8e7893b170209827f7d5084ca95e
2023-07-26 17:42:21 +00:00
Ivan Lozano
447f5b1ea9 rust: Add SCS sanitizer option.
SCS has been supported in Rust since 1.64.0.

This adds SCS as a sanitizer option in Rust.

Bug: 168914033
Test: Built module with sanitize: { scs: true }
Change-Id: Ibdc116a335339af6d0b0d6dd0bb82c0358fa9087
2023-07-26 13:34:55 -04:00
Spandan Das
d1cd3518a8 Support cc_test.isolated in bp2build
This property implicitly adds `libgtest_isolated_main` to the static
libs of the test. bp2build will make this and `liblog` explicit in BUILD
files

Since the deps are made explicit in BUILD files, `isolated` becomes a
no-op for cc_test. Remove this property from cc_test.

Test: unit tests
Bug: 244432609
Change-Id: I189a7b6b62d9064f4b2abad49ac4975468046498
2023-07-26 17:06:27 +00:00
Spandan Das
f5a8655cd8 Fix difference in default cc_test.isolated in soong and bp2build
Soong defaults to false, while bp2build defaults to true. This CL fixes
bp2build's default to false to match Soong.

To prevent future differences, bp2build now uses the `isolated()`
function used by Soong. The type of the context object has been changed
to EarlyModuleContext so that the ctx object does not depend on
mutations that might not run in bp2build.

Test: TH
Bug: 244432609
Change-Id: I15346107896312961e8d12270cf2f9a2a48827e1
2023-07-26 17:06:27 +00:00
Prashanth Swaminathan
81532c2762 Revert "Revert "Set VIC as minimum SDK version for riscv64""
This reverts commit 02f4e6f559.

Change-Id: I9fb87e2789bbc8437da56faa335de49865e08350
2023-07-26 09:47:10 -07:00
Prashanth Swaminathan
08e634d5ce Revert "Revert "Use prebuilt NDK libc++ for rv64.""
This reverts commit 967e16f3d8.

Change-Id: I78cb0176fd21a8c0c376bee76631621712aeddaa
2023-07-26 09:43:15 -07:00
NaYoung Yun
02f4e6f559 Revert "Set VIC as minimum SDK version for riscv64"
This reverts commit a96a2677b6.

Reason for revert: build break

Reverted changes: /q/submissionid:2676418-hack-rv64-libc%252B%252B
Bug: 293214158
Bug: 293214503
Bug: 293214158
Bug: 293219471

Change-Id: I6eaa1f7c9f498159db4d50840dd91e246314153f
2023-07-26 04:15:47 +00:00
Steven Moreland
8fe37e44b5 Linker: no demangle.
You can c++filt, but you can't c++unfilt.

By having the linker provide the exact name of symbols
that are used, we can much more easily resolve missing
symbols in version script files. For instance, I spent
2 hours today working around not having this... :(

After a while, you get used to it. I don't even see the
code.

Bug: 206145174
Test: hide all symbols from a library and see beautiful
  and lossless raw symbols.
Change-Id: Ie0730cd503358bf2d383a56be902f7aeef1eea01
2023-07-25 23:13:36 +00:00
Prashanth Swaminathan
a96a2677b6 Set VIC as minimum SDK version for riscv64
Bug: 291150284
Test: Local build of Cuttlefish RISCV targets.
Change-Id: I3879fc9480cac4962d0ecbbf4ab116b331987e82
2023-07-25 22:12:45 +00:00
Treehugger Robot
35448be862 Merge "Make libtest_* deps explicit in BUILD files" into main 2023-07-25 18:46:39 +00:00