summaryrefslogtreecommitdiff
path: root/compiler/main/DriverPipeline.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/main/DriverPipeline.hs')
-rw-r--r--compiler/main/DriverPipeline.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
index b328c3fb4d..b1f50acfb8 100644
--- a/compiler/main/DriverPipeline.hs
+++ b/compiler/main/DriverPipeline.hs
@@ -1666,6 +1666,17 @@ linkBinary dflags o_files dep_packages = do
then ["-Wl,--enable-auto-import"]
else [])
+ -- '-no_pie' - On OS X, the linker otherwise complains that it cannot build
+ -- position independent code due to some offensive code in GMP.
+ -- '-no_compact_unwind'
+ -- - C++/Objective-C exceptions cannot use optimised stack
+ -- unwinding code (the optimised form is the default in Xcode 4 on
+ -- x86_64).
+ ++ (if platformOS (targetPlatform dflags) == OSDarwin &&
+ platformArch (targetPlatform dflags) == ArchX86_64
+ then ["-Wl,-no_pie", "-Wl,-no_compact_unwind"]
+ else [])
+
++ o_files
++ extra_ld_inputs
++ lib_path_opts