commit | 9f1b3e21cf6e0211d1c9ab78c2880a23f17f463a | [log] [tgz] |
---|---|---|
author | Roland McGrath <mcgrathr@google.com> | Wed Jul 19 21:24:50 2023 +0000 |
committer | CQ Bot <fuchsia-internal-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Jul 19 21:24:50 2023 +0000 |
tree | a0ebe572496704722f56c981f1bc1744131fc559 | |
parent | 4383c0b47e4395a9b00f64bc6045e3d5c7d8094c [diff] |
[ld] Partially plumb llvm-profdata in startup dynamic linker This sets up the machinery for the instrumented builds of the startup dynamic linker to collect their llvm-profdata into a VMO for publication via the debugdata protocol. There isn't yet a way to get that VMO anywhere, so it's just dropped on the floor; fxbug.dev/130542 tracks actually getting the VMO published. Unfortunately, this doesn't entirely work as intended because live function invocations continue to use a stale pointer into the data segment location of the instrumentation counters. This means the tails of functions still running after the counters are redirected to the debugdata VMO will have their updates lost, so in future we may need to reorganize the code to avoid that problem. For now, the more pressing problem is that writing via the stale pointer after protecting the data segment will get a page fault. So for now protecting the data segment is disabled in the builds using llvm-profdata instrumentation. Bug: 130542 Fixed: 130542 Change-Id: I8bfb1dada108ce1f178b7b612e952ab004b66aef Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/886591 Reviewed-by: Petr Hosek <phosek@google.com> Reviewed-by: Caslyn Tonelli <caslyn@google.com> Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com> Fuchsia-Auto-Submit: Roland McGrath <mcgrathr@google.com>
Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.
We expect everyone interacting with our project to respect our code of conduct.
Read more about Fuchsia's principles.
See Getting Started.
See fuchsia.dev.