commit | 1c7632d9c27877570cd8325703690b856728a95c | [log] [tgz] |
---|---|---|
author | Roland McGrath <mcgrathr@fuchsia.infra.roller.google.com> | Wed Nov 20 01:09:04 2024 +0000 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Nov 19 17:10:44 2024 -0800 |
tree | b68d94458b443c8dde1f4cc05da2592fd2fae93a | |
parent | 63f74cf7352cafa9e1073ef1675c46c63a717123 [diff] |
[roll] Roll fuchsia [ld] RemotePerfectSymbolFilter This builds on the <lib/elfldltl/perfect-symbol-table.h> API to provide a full, integrated solution for static symbol allow-lists to use with the <lib/ld/remote-dynamic-linker.h> API. The new <lib/ld/remote-perfect-symbol-filter.h> header is used by the perfect_symbol_filter() GN template to automate defining a function of generated code that encapsulates a symbol list. The template also generates an IFS file and linking stub for the shared-library ABI that a module so filtered will export. The generated function is a template that can be instantiated for multiple ELF formats, e.g. to support loading both Elf64 (LP64) and Elf32 (ILP32). Instantiating for Elf32 to test this turned up a handful of places where there was incorrect or missing use of template parameters to make the Elf32 instantiation compile. ld::RemoteDecodedModule no longer checks the e_machine field, but stores it--any ELF file in the right format will be decoded, regardless of its e_machine. Cross-linking can be allowed by ld::RemoteDynamicLinker:Init with an optional new argument to specify a different machine or to not check at all. To enable testing Elf32, test modules are now built for armv7-linux-gnu. This entailed completing a port of the (Linux) startup dynamic linker to AArch32, though this is not yet tested at runtime. Only the small bits of assembly code needed for each machine's dynamic linker and test executable entry points had to be added. Two additional mangled symbol names were needed in the trivial-allocator stub delete implementations for the difference in the normalization of size_t in signatures between machines. Also in aid of easing the testing, generated_ifs_file() is enhanced to allow plain strings as shorthand for the most common case of STB_GLOBAL, STT_FUNC symbols. Original-Bug: 326524302 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1156973 Original-Revision: ba261031189259d6c604d45dd80a9f587e9ee9e8 GitOrigin-RevId: 368c1c85fb95b332df89ca17e71b7c25e1b0dac1 Change-Id: Ic4b11529f4c0ec477dcb529c54ab75981d993557
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party
.