[all-commits] [llvm/llvm-project] 840e50: [lld] Do not implicitly link non "public" librarie...

Daniel Rodríguez Troitiño via All-commits all-commits at lists.llvm.org
Mon Jul 8 09:26:37 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 840e5075447fd2e7ae1f23c112e959b504d8ff42
      https://github.com/llvm/llvm-project/commit/840e5075447fd2e7ae1f23c112e959b504d8ff42
  Author: Daniel Rodríguez Troitiño <drodriguez at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lld/MachO/InputFiles.cpp
    A lld/test/MachO/implicit-and-allowable-clients.test

  Log Message:
  -----------
  [lld] Do not implicitly link non "public" libraries (#97639)

The LC_SUB_CLIENT Mach-O command and the `allowable-clients` TBD entry
specify that the given framework (or library?) can only be linked
directly from the specified names, even if it is sitting in `/usr/lib`
or `/System/Library/Frameworks`.

Add a check for those conditions before checking if a library should be
implicitly linked, and link against their umbrella if they have
allowable clients. The code needs to be in both the binary libraries and
the interface libraries.

Add a test that reproduces the scenario in which a framework reexports a
private framework that sits in `/System/Library/Frameworks`, and check
for the symbols of the reexported framework to be associated with the
public framework, and not the private one.



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