commit | ffaf6f0eed3d751c929575d337e1c4da5f8b313c | [log] [tgz] |
---|---|---|
author | Caslyn Tonelli <caslyn@google.com> | Wed Oct 30 00:55:48 2024 +0000 |
committer | CQ Bot <fuchsia-internal-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Oct 30 00:55:48 2024 +0000 |
tree | 95de70d437f521befd927c717aac1c630dc304a2 | |
parent | 186bd573c148cd6d4e84ae1c1e45f73ba1642677 [diff] |
[dl] Support RTLD_GLOBAL This CL supports the RTLD_GLOBAL flag with dlopen(). The root RuntimeModule and all its dependencies (either previously loaded or new to the session) are marked as global when dlopen-ed with this flag. This action may rearrange the "global load order" of modules: that is, the order in which modules loaded with RTLD_GLOBAL are kept in the dynamic linker's modules_ list. This CL does not yet include global modules in symbol resolution, but tests are introduced to test the following behavior in regards to how global modules relate to load order: - Promote previously loaded module and all its deps to become global. - Promoting a previously loaded module to a global module can change the "global load order" of modules - Calling dlopen(RTLD_GLOBAL) multiple times on a module will not change the "global load order". - Calling dlopen(RTLD_GLOBAL) with previously loaded global modules will not change the "global load order". A forthcoming CL will include global modules in symbol relocations and tests will be enabled then. Bug: 338233824 Cq-Include-Trybots: luci.turquoise.global.try:run-postsubmit-tryjobs Change-Id: I6a21146c48cdd82983cc7bb19040ac8954fe512a Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1124721 Fuchsia-Auto-Submit: Caslyn Tonelli <caslyn@google.com> Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com> Reviewed-by: 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.