diff options
author | Randy Eckenrode <randy@largeandhighquality.com> | 2023-08-12 09:11:05 -0400 |
---|---|---|
committer | Randy Eckenrode <randy@largeandhighquality.com> | 2023-08-12 09:17:13 -0400 |
commit | 8e56a2635fe3fe31a03f0d60d90cb476ddb8619c (patch) | |
tree | 4331dc68af2d3e1a5b3298f460da5380a1acf016 | |
parent | 09f5e7d840154e63b710ece7c66a4d4a130b14d3 (diff) | |
download | nixpkgs-8e56a2635fe3fe31a03f0d60d90cb476ddb8619c.tar nixpkgs-8e56a2635fe3fe31a03f0d60d90cb476ddb8619c.tar.gz nixpkgs-8e56a2635fe3fe31a03f0d60d90cb476ddb8619c.tar.bz2 nixpkgs-8e56a2635fe3fe31a03f0d60d90cb476ddb8619c.tar.lz nixpkgs-8e56a2635fe3fe31a03f0d60d90cb476ddb8619c.tar.xz nixpkgs-8e56a2635fe3fe31a03f0d60d90cb476ddb8619c.tar.zst nixpkgs-8e56a2635fe3fe31a03f0d60d90cb476ddb8619c.zip |
CoreFoundation: specify the tbd explicitly
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).
-rw-r--r-- | pkgs/os-specific/darwin/apple-sdk-11.0/cf-setup-hook.sh | 2 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/pkgs/os-specific/darwin/apple-sdk-11.0/cf-setup-hook.sh b/pkgs/os-specific/darwin/apple-sdk-11.0/cf-setup-hook.sh index 3b08c51d196..b64eb95f2de 100644 --- a/pkgs/os-specific/darwin/apple-sdk-11.0/cf-setup-hook.sh +++ b/pkgs/os-specific/darwin/apple-sdk-11.0/cf-setup-hook.sh @@ -1,6 +1,6 @@ forceLinkCoreFoundationFramework() { NIX_CFLAGS_COMPILE="-F@out@/Library/Frameworks${NIX_CFLAGS_COMPILE:+ }${NIX_CFLAGS_COMPILE-}" - NIX_LDFLAGS+=" @out@/Library/Frameworks/CoreFoundation.framework/CoreFoundation" + NIX_LDFLAGS+=" @out@/Library/Frameworks/CoreFoundation.framework/CoreFoundation.tbd" } preConfigureHooks+=(forceLinkCoreFoundationFramework) diff --git a/pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh b/pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh index bbf9625e655..5d0f58f48b4 100644 --- a/pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh +++ b/pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh @@ -3,7 +3,7 @@ linkSystemCoreFoundationFramework() { # 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" + NIX_LDFLAGS+=" @out@/Library/Frameworks/CoreFoundation.framework/CoreFoundation.tbd" } preConfigureHooks+=(linkSystemCoreFoundationFramework) |