[all-commits] [llvm/llvm-project] 2d6fb6: [lld/mac] Handle symbols from -U in treatUndefined...

Nico Weber via All-commits all-commits at lists.llvm.org
Thu Jul 22 16:44:15 PDT 2021


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

  Changed paths:
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/SymbolTable.cpp
    M lld/test/MachO/dead-strip.s

  Log Message:
  -----------
  [lld/mac] Handle symbols from -U in treatUndefinedSymbol()

In ld64, `-U section$start$FOO$bar` handles `section$start$FOO$bar`
as a regular `section$start` symbol, that is section$start processing
happens before -U processing.

Likely, nobody uses that in practice so it doesn't seem very important
to be compatible with this, but it also moves the -U handling code next
to the `-undefined dynamic_lookup` handling code, which is nice because
they do the same thing. And, in fact, this did identify a bug in a corner
case in the intersection of `-undefined dynamic_lookup` and dead-stripping
(fix for that in D106565).

Vaguely related to PR50760.

No interesting behavior change.

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




More information about the All-commits mailing list