[all-commits] [llvm/llvm-project] 3eb2fc: [lld/mac] Partially implement -export_dynamic

Nico Weber via All-commits all-commits at lists.llvm.org
Tue Jul 6 08:22:44 PDT 2021


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

  Changed paths:
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/LTO.cpp
    M lld/MachO/MarkLive.cpp
    M lld/MachO/Options.td
    M lld/test/MachO/dead-strip.s

  Log Message:
  -----------
  [lld/mac] Partially implement -export_dynamic

This implements the part of -export_dynamic that adds external
symbols as dead strip roots even for executables.

It does not yet implement the effect -export_dynamic has for LTO.
I tried just replacing `config->outputType != MH_EXECUTE` with
`(config->outputType != MH_EXECUTE || config->exportDynamic)` in
LTO.cpp, but then local symbols make it into the symbol table too,
which is too much (and also doesn't match ld64). So punt on this
for now until I understand it better.
(D91583 may or may not be related too).

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




More information about the All-commits mailing list