On OS X x86_64, use "-Wl,-no_pie" and "-Wl,-no_compact_unwind" to avoid linker warnings
authorManuel M T Chakravarty <chak@cse.unsw.edu.au>
Wed, 27 Jul 2011 13:05:01 +0000 (23:05 +1000)
committerManuel M T Chakravarty <chak@cse.unsw.edu.au>
Wed, 27 Jul 2011 13:09:10 +0000 (23:09 +1000)
- "-Wl,-no_pie" can be removed once GMP gets updated

compiler/main/DriverPipeline.hs

index b328c3f..b1f50ac 100644 (file)
@@ -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