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.hs15
1 files changed, 13 insertions, 2 deletions
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
index 8fc44ed81f..7c5bc90647 100644
--- a/compiler/main/DriverPipeline.hs
+++ b/compiler/main/DriverPipeline.hs
@@ -1917,11 +1917,22 @@ linkBinary' staticLink dflags o_files dep_packages = do
-- on x86.
++ (if sLdSupportsCompactUnwind mySettings &&
not staticLink &&
- platformOS platform == OSDarwin &&
- platformArch platform `elem` [ArchX86, ArchX86_64]
+ (platformOS platform == OSDarwin || platformOS platform == OSiOS) &&
+ case platformArch platform of
+ ArchX86 -> True
+ ArchX86_64 -> True
+ ArchARM {} -> True
+ _ -> False
then ["-Wl,-no_compact_unwind"]
else [])
+ -- '-no_pie'
+ -- iOS uses 'dynamic-no-pic', so we must pass this to ld to suppress a warning; see #7722
+ ++ (if platformOS platform == OSiOS &&
+ not staticLink
+ then ["-Wl,-no_pie"]
+ else [])
+
-- '-Wl,-read_only_relocs,suppress'
-- ld gives loads of warnings like:
-- ld: warning: text reloc in _base_GHCziArr_unsafeArray_info to _base_GHCziArr_unsafeArray_closure