diff options
author | Ben Gamari <ben@smart-cactus.org> | 2016-11-10 23:48:27 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2016-11-10 23:48:39 -0500 |
commit | 60bb9d1ccaa27fe6490ece215deb38ad288a9889 (patch) | |
tree | b29e0b32489ab5fff0091fc62c6499c0d91530b2 /compiler/main | |
parent | 03e8d26fe0a8f7981a76550118f3c584cad76c47 (diff) | |
download | haskell-60bb9d1ccaa27fe6490ece215deb38ad288a9889.tar.gz |
Revert "Pass -no-pie to GCC"
This reverts commit bae4a55b1fb403f610b4b55a1b6fb3f03e9c2026.
This will be superceded by D2693.
Diffstat (limited to 'compiler/main')
-rw-r--r-- | compiler/main/DriverPipeline.hs | 9 | ||||
-rw-r--r-- | compiler/main/SysTools.hs | 13 |
2 files changed, 0 insertions, 22 deletions
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs index 23badbd885..b578612ac4 100644 --- a/compiler/main/DriverPipeline.hs +++ b/compiler/main/DriverPipeline.hs @@ -1859,11 +1859,6 @@ linkBinary' staticLink dflags o_files dep_packages = do ++ map SysTools.Option ( [] -#if GCC_SUPPORTS_NO_PIE - -- See Note [No PIE eating when linking] - ++ ["-no-pie"] -#endif - -- Permit the linker to auto link _symbol to _imp_symbol. -- This lets us link against DLLs without needing an "import library". ++ (if platformOS platform == OSMinGW32 @@ -2162,10 +2157,6 @@ joinObjectFiles dflags o_files output_fn = do SysTools.Option "-nostdlib", SysTools.Option "-Wl,-r" ] -#if GCC_SUPPORTS_NO_PIE - -- See Note [No PIE eating while linking] in SysTools - ++ [SysTools.Option "-no-pie"] -#endif ++ (if any (cc ==) [Clang, AppleClang, AppleClang51] then [] else [SysTools.Option "-nodefaultlibs"]) diff --git a/compiler/main/SysTools.hs b/compiler/main/SysTools.hs index 82a6383dd5..5fb92c8583 100644 --- a/compiler/main/SysTools.hs +++ b/compiler/main/SysTools.hs @@ -1546,15 +1546,6 @@ linesPlatform xs = #endif -{- -Note [No PIE eating while linking] -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -As of 2016 some Linux distributions (e.g. Debian) have started enabling -pie by -default in their gcc builds. This is incompatible with -r as it implies that we -are producing an executable. Consequently, we must manually pass -no-pie to gcc -when joining object files or linking dynamic libraries. See #12759. --} - linkDynLib :: DynFlags -> [String] -> [InstalledUnitId] -> IO () linkDynLib dflags0 o_files dep_packages = do @@ -1720,10 +1711,6 @@ linkDynLib dflags0 o_files dep_packages ++ [ Option "-o" , FileOption "" output_fn ] -#if GCC_SUPPORTS_NO_PIE - -- See Note [No PIE eating when linking] - ++ [ Option "-no-pie" ] -#endif ++ map Option o_files ++ [ Option "-shared" ] ++ map Option bsymbolicFlag |