mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-11 08:13:04 +00:00
8e56a2635f
The current hook specifies the path to the framework library, but nixpkgs does not actually provide the library when linking against the system framework. It provides a text-based stub (`.tbd`) instead. ld64 will find the stub and use it, but lld will not when the full path is specified. Both linkers work if the extension is included, so do that for compatibility with both. This fixes using lld with CoreFoundation (e.g., to support LTO on Darwin).
10 lines
489 B
Bash
10 lines
489 B
Bash
linkSystemCoreFoundationFramework() {
|
|
NIX_CFLAGS_COMPILE="-F@out@/Library/Frameworks${NIX_CFLAGS_COMPILE:+ }${NIX_CFLAGS_COMPILE-}"
|
|
# gross! many symbols (such as _OBJC_CLASS_$_NSArray) are defined in system CF, but not
|
|
# in the opensource release
|
|
# if the package needs private headers, we assume they also want to link with system CF
|
|
NIX_LDFLAGS+=" @out@/Library/Frameworks/CoreFoundation.framework/CoreFoundation.tbd"
|
|
}
|
|
|
|
preConfigureHooks+=(linkSystemCoreFoundationFramework)
|