mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00

Invoking `ld` with `-undefined dynamic_lookup` emits a warning starting Xcode 14: ld: warning: -undefined dynamic_lookup may not work with chained fixups Chained fixups is a linker optimisation that results in faster binary load times, and is enabled by default starting Xcode 13 when the target is macOS 12 or newer. However, this interacts poorly with `-undefined dynamic_lookup`, and Xcode will disable chained fixups when it is invoked with this flag starting Xcode 14.3. Until then, we may be shipping binaries that are broken in subtle ways, so let's disable chained fixups when necessary instead. I patterned the changes here after the handling of `-no_weak_imports`. The only difference is that we need to check the flags that were passed to the linker first to see if we do need to disable chained fixups. For additional context, see: https://developer.apple.com/documentation/xcode-release-notes/xcode-13-release-notes https://www.wwdcnotes.com/notes/wwdc22/110362/ https://www.emergetools.com/blog/posts/iOS15LaunchTime https://github.com/python/cpython/issues/97524 https://github.com/pybind/pybind11/pull/4301