[all-commits] [llvm/llvm-project] 3e7a86: [lld-macho] Fall back to raw path if we don't find...

Jez Ng via All-commits all-commits at lists.llvm.org
Wed Aug 26 19:27:01 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3e7a86e3664a118924bae7306e7f9a7fadf45648
      https://github.com/llvm/llvm-project/commit/3e7a86e3664a118924bae7306e7f9a7fadf45648
  Author: Jez Ng <jezng at fb.com>
  Date:   2020-08-26 (Wed, 26 Aug 2020)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/test/MachO/syslibroot.test

  Log Message:
  -----------
  [lld-macho] Fall back to raw path if we don't find anything under syslibroot

This matches ld64's behavior

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


  Commit: 6336c042f66baa32b8f731a2d4edc1c1d07abe7d
      https://github.com/llvm/llvm-project/commit/6336c042f66baa32b8f731a2d4edc1c1d07abe7d
  Author: Jez Ng <jezng at fb.com>
  Date:   2020-08-26 (Wed, 26 Aug 2020)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/InputFiles.h
    A lld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libc++.tbd
    A lld/test/MachO/reexport-stub.s

  Log Message:
  -----------
  [lld-macho] Make it possible to re-export .tbd files

Two things needed fixing for that to work:

1. getName() no longer returns null for DylibFiles constructed from TAPIs
2. markSubLibrary() now accepts .tbd as a possible extension

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


  Commit: 7394460d8759be5afc3322a2b8cab5e6865e431a
      https://github.com/llvm/llvm-project/commit/7394460d8759be5afc3322a2b8cab5e6865e431a
  Author: Jez Ng <jezng at fb.com>
  Date:   2020-08-26 (Wed, 26 Aug 2020)

  Changed paths:
    M lld/MachO/CMakeLists.txt
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    A lld/MachO/DriverUtils.cpp
    A lld/MachO/DriverUtils.h
    M lld/MachO/InputFiles.cpp
    M lld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libc++.tbd
    A lld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libc++abi.tbd
    M lld/test/MachO/Inputs/iPhoneSimulator.sdk/usr/lib/libSystem.tbd
    M lld/test/MachO/invalid/stub-link.s
    M lld/test/MachO/reexport-stub.s
    M lld/test/MachO/stub-link.s
    M lld/test/MachO/sub-library.s

  Log Message:
  -----------
  [lld-macho] Handle TAPI and regular re-exports uniformly

The re-exports list in a TAPI document can either refer to other inlined
TAPI documents, or to on-disk files (which may themselves be TBD or
regular files.) Similarly, the re-exports of a regular dylib can refer
to a TBD file.

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


  Commit: cf918c809bb0efc43c911e0df079d78a02e85f60
      https://github.com/llvm/llvm-project/commit/cf918c809bb0efc43c911e0df079d78a02e85f60
  Author: Jez Ng <jezng at fb.com>
  Date:   2020-08-26 (Wed, 26 Aug 2020)

  Changed paths:
    M lld/MachO/CMakeLists.txt
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/InputFiles.h
    A lld/MachO/ObjC.cpp
    A lld/MachO/ObjC.h
    A lld/test/MachO/objc.s

  Log Message:
  -----------
  [lld-macho] Implement -ObjC

It's roughly like -force_load with some filtering.

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


  Commit: b84d72d89324eeeec2336a4f4ff26bc5f0a39905
      https://github.com/llvm/llvm-project/commit/b84d72d89324eeeec2336a4f4ff26bc5f0a39905
  Author: Jez Ng <jezng at fb.com>
  Date:   2020-08-26 (Wed, 26 Aug 2020)

  Changed paths:
    M lld/MachO/Arch/X86_64.cpp
    M lld/MachO/SyntheticSections.cpp
    M lld/MachO/SyntheticSections.h
    M lld/MachO/Target.h
    M lld/MachO/Writer.cpp
    A lld/test/MachO/no-unneeded-dyld-info.s

  Log Message:
  -----------
  [lld-macho][NFC] Handle GOT bindings and regular bindings more uniformly

Previously, the BindingEntry struct could only store bindings to offsets
within InputSections. Since the GOTSection and TLVPointerSections are
OutputSections, I handled those in a separate code path. However, this
makes it awkward to support weak bindings properly without code
duplication. This diff allows BindingEntries to point directly to
OutputSections, simplifying the upcoming weak binding implementation.

Along the way, I also converted a bunch of functions taking references
to symbols to take pointers instead. Given how much casting we do for
Symbol (especially in the upcoming weak binding diffs), it's cleaner
this way.

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


  Commit: cbe27316efce6fe1854f2c5b3428c6a74946877f
      https://github.com/llvm/llvm-project/commit/cbe27316efce6fe1854f2c5b3428c6a74946877f
  Author: Jez Ng <jezng at fb.com>
  Date:   2020-08-26 (Wed, 26 Aug 2020)

  Changed paths:
    M lld/MachO/Arch/X86_64.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/SymbolTable.cpp
    M lld/MachO/Symbols.h
    M lld/MachO/SyntheticSections.cpp
    M lld/MachO/SyntheticSections.h
    M lld/MachO/Writer.cpp
    A lld/test/MachO/weak-binding.s

  Log Message:
  -----------
  [lld-macho] Implement weak bindings for GOT/TLV

Previously, we were only emitting regular bindings to weak
dynamic symbols; this diff adds support for the weak bindings too, which
can overwrite the regular bindings at runtime. We also treat weak
defined global symbols similarly -- since they can also be interposed at
runtime, they need to be treated as potentially dynamic symbols.

Note that weak bindings differ from regular bindings in that they do not
specify the dylib to do the lookup in (i.e. weak symbol lookup happens
in a flat namespace.)

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


  Commit: 62b39b3a0cb287809d208fb4959526d37d4ded02
      https://github.com/llvm/llvm-project/commit/62b39b3a0cb287809d208fb4959526d37d4ded02
  Author: Jez Ng <jezng at fb.com>
  Date:   2020-08-26 (Wed, 26 Aug 2020)

  Changed paths:
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/test/MachO/archive.s

  Log Message:
  -----------
  [lld-macho] Implement -all_load

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


Compare: https://github.com/llvm/llvm-project/compare/ce3f26c1d070...62b39b3a0cb2


More information about the All-commits mailing list