From 749a7e981e76db302f258edbbb07f96da3e8e45a Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Fri, 22 Oct 2021 23:02:50 +0200 Subject: [PATCH] Fix macOS support on Big Sur & Monterey --- lucetc/src/lib.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lucetc/src/lib.rs b/lucetc/src/lib.rs index 2ec54de7..b8e39d3b 100644 --- a/lucetc/src/lib.rs +++ b/lucetc/src/lib.rs @@ -472,9 +472,15 @@ fn ldflags_default(target: &Triple, target_version: &TargetVersion) -> String { | OperatingSystem::Freebsd | OperatingSystem::Dragonfly | OperatingSystem::Netbsd - | OperatingSystem::Openbsd => "-shared", + | OperatingSystem::Openbsd => "-shared".to_string(), OperatingSystem::Darwin | OperatingSystem::MacOSX { .. } => { - "-dylib -dead_strip -export_dynamic -undefined dynamic_lookup" + let sdk_path = std::process::Command::new("xcrun") + .args(&["-sdk", "macosx", "--show-sdk-path"]) + .output() + .expect("xcrun failed") + .stdout; + let sdk_path = std::str::from_utf8(&sdk_path).expect("invalid sdk_path").trim(); + format!("-dylib -dead_strip -export_dynamic -undefined dynamic_lookup -L {}/usr/lib -lSystem", sdk_path) } _ => panic!( "Cannot determine default flags for {}.