commit | 77f5b93b413a8c30f4e53442976c44c54c2f77b8 | [log] [tgz] |
---|---|---|
author | Leonard Chan <leonardchan@pigweed.infra.roller.google.com> | Thu Aug 08 04:33:21 2024 +0000 |
committer | CQ Bot Account <pigweed-internal-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Aug 08 04:33:21 2024 +0000 |
tree | df5737537321b0b07f922fe9ae5718018febfafc | |
parent | 576e679d961ae0716b096e321121a111f8a121d4 [diff] |
roll: pigweed, pw_toolchain: pw_libcxx: Add alwayslink=True to pw_libcxx libc++ has weak definitions for the operator new/delete functions that depend on symbols included in __lcxx_override. That sections has all libc++'s weak definitions for these operator new/delete symbols. The bazel build though places this section right after boot2 which should not happen since the vector table should come immediately after boot2. I belive this is legal from the linker perspective since boot2 and __lcxx_override have the same flags but we don't also want to edit the linker script upstream to move the section elsewhere. The alternative we can do is have __lcxx_override gc'd. pw_libcxx provides its own strong definitions for operator new/delete but those don't win at link time due to linking order. Wrapping it with -[no-]whole-archive allows the strong definitions pw_libcxx provides to win, allowing --gc-sections to remove the section. Note this only fixes this issue for pw users for rp. Original-Bug: 358109466 Original-Reviewed-on: https://pigweed-internal-review.git.corp.google.com/c/pigweed/pigweed/+/74450 https://pigweed-internal.googlesource.com/pigweed/pigweed pigweed, pw_toolchain Rolled-Commits: 676d754f6f1a87a..093010b2e645ba6 Roller-URL: https://ci.chromium.org/b/8740202386489570641 GitWatcher: ignore CQ-Do-Not-Cancel-Tryjobs: true Change-Id: Ie969ebc15cce1bd5df9071a82ccda98b1078d7ff Reviewed-on: https://pigweed-internal-review.git.corp.google.com/c/pigweed/showcase/rp2/+/74437 Commit-Queue: Pigweed-Internal-Roller <pigweed-internal-roller@pw-internal-service-accounts.iam.gserviceaccount.com> Bot-Commit: Pigweed-Internal-Roller <pigweed-internal-roller@pw-internal-service-accounts.iam.gserviceaccount.com>
git clone https://pigweed.googlesource.com/pigweed/showcase/sense
Welcome to Pigweed Sense, a tour of key Pigweed components experienced through an imagined air quality product.
Please visit the tutorial to get started: https://pigweed.dev/docs/showcase/sense/tutorial/