[all-commits] [llvm/llvm-project] 0778f5: [ELF] Support NOCROSSREFS and NOCROSSERFS_TO

Fangrui Song via All-commits all-commits at lists.llvm.org
Wed Jul 17 10:46:20 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0778f5c1f11da599b71d6c9f5990fd880ff7cb46
      https://github.com/llvm/llvm-project/commit/0778f5c1f11da599b71d6c9f5990fd880ff7cb46
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lld/ELF/LinkerScript.h
    M lld/ELF/Relocations.cpp
    M lld/ELF/Relocations.h
    M lld/ELF/ScriptParser.cpp
    M lld/ELF/Writer.cpp
    M lld/docs/ReleaseNotes.rst
    A lld/test/ELF/linkerscript/nocrossrefs.test

  Log Message:
  -----------
  [ELF] Support NOCROSSREFS and NOCROSSERFS_TO

Implement the two commands described by
https://sourceware.org/binutils/docs/ld/Miscellaneous-Commands.html

After `outputSections` is available, check each output section described
by at least one `NOCROSSREFS`/`NOCROSSERFS_TO` command. For each checked
output section, scan relocations from its input sections.
This step is slow, therefore utilize `parallelForEach(isd->sections, ...)`.

To support non SHF_ALLOC sections, `InputSectionBase::relocations`
(empty) cannot be used. In addition, we may explore eliminating this
member to speed up relocation scanning.

Some parse code is adapted from #95714.

Close #41825

Pull Request: https://github.com/llvm/llvm-project/pull/98773



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list