sentry-cli: fix linking issues

Co-authored-by: Randy Eckenrode <randy@largeandhighquality.com>
This commit is contained in:
Sam
2025-10-16 23:17:20 -05:00
parent eb8c425e18
commit 8831c62bfd
2 changed files with 33 additions and 7 deletions
@@ -1,8 +1,8 @@
diff --git a/apple-catalog-parsing/build.rs b/apple-catalog-parsing/build.rs
index 2ab4c71b..80301b1a 100644
index 2ab4c71b59..6bcf003c0a 100644
--- a/apple-catalog-parsing/build.rs
+++ b/apple-catalog-parsing/build.rs
@@ -30,7 +30,7 @@ fn main() {
@@ -30,7 +30,7 @@
// Add necessary libraries to the linker search path. Without this line, compiling fails
// on systems without Xcode installed (xcode-select is still required).
println!(
@@ -11,3 +11,30 @@ index 2ab4c71b..80301b1a 100644
);
let out_dir = env::var("OUT_DIR").expect("OUT_DIR is set for build scripts");
@@ -87,17 +87,14 @@
println!("cargo:rustc-link-search=framework=/System/Library/PrivateFrameworks");
println!("cargo:rustc-link-lib=framework=CoreUI");
- // Link to swift macOS support libraries for Swift runtime support on older macOS versions
- let developer_dir = Command::new("xcode-select")
- .args(["-p"])
- .output()
- .expect("Failed to get developer directory, please ensure Xcode is installed.");
- let developer_dir_path = String::from_utf8(developer_dir.stdout)
- .expect("Failed to convert developer directory to UTF-8")
- .trim()
- .to_owned();
-
- println!(
- "cargo:rustc-link-search={developer_dir_path}/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx"
+ // Link libobjc to avoid the following error: ld: can't find ordinal for imported symbol '___objc_personality_v0'
+ println!("cargo:rustc-link-lib=objc");
+
+ println!(
+ "cargo:rustc-link-search=/usr/lib/swift"
+ );
+
+ println!(
+ "cargo:rustc-link-search=@swiftLib@/lib/swift/macosx"
);
}
+4 -5
View File
@@ -8,7 +8,7 @@
stdenv,
swift,
swiftpm,
writeShellScriptBin,
replaceVars,
}:
rustPlatform.buildRustPackage rec {
pname = "sentry-cli";
@@ -26,7 +26,9 @@ rustPlatform.buildRustPackage rec {
OPENSSL_NO_VENDOR = 1;
patches = [
./fix-swift-lib-path.patch
(replaceVars ./fix-swift-lib-path.patch {
swiftLib = lib.getLib swift;
})
];
buildInputs = [ openssl ];
@@ -36,9 +38,6 @@ rustPlatform.buildRustPackage rec {
] ++ (lib.optionals stdenv.hostPlatform.isDarwin [
swift
swiftpm
(writeShellScriptBin "xcode-select" ''
echo $DEVELOPER_DIR
'')
]);
# By default including `swiftpm` in `nativeBuildInputs` will take over `buildPhase`