[all-commits] [llvm/llvm-project] 04e8d0: [lld/mac] Implement support for section$start and ...

Nico Weber via All-commits all-commits at lists.llvm.org
Fri Jul 23 13:04:37 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 04e8d0b62dca05c396422048b467bea31988cac3
      https://github.com/llvm/llvm-project/commit/04e8d0b62dca05c396422048b467bea31988cac3
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-07-23 (Fri, 23 Jul 2021)

  Changed paths:
    M lld/MachO/OutputSection.cpp
    M lld/MachO/OutputSection.h
    M lld/MachO/SymbolTable.cpp
    M lld/MachO/Writer.cpp
    A lld/test/MachO/start-end.s

  Log Message:
  -----------
  [lld/mac] Implement support for section$start and section$ end symbols

With this, libclang_rt.profile_osx.a can be linked, that is coverage
and PGO-instrumented builds should now work with lld.

section$start and section$end symbols can create non-existing sections.
They're also undefined symbols that are only magic if there isn't a
regular symbol with their name, which means the need to be handled
in treatUndefined() instead of just looping over all existing
sections and adding start and end symbols like the ELF port does.

To represent the actual symbols, this uses absolute symbols that
get their value updated once an output section is layed out.

segment$start and segment$end are still missing for now, but they produce a
nicer error message after this patch.

Main part of PR50760.

Differential Revision: https://reviews.llvm.org/D106629




More information about the All-commits mailing list