summaryrefslogtreecommitdiff
path: root/hadrian/src
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2018-11-26 17:21:12 -0500
committerBen Gamari <ben@smart-cactus.org>2018-11-27 14:25:03 -0500
commit730ac880c5dc23e0f32a2f08d89d4e5d2a583512 (patch)
treeaa85ded8d0edd3d465963c8b3870b8270628ae30 /hadrian/src
parentdf570d920fa66db631f936fa377e598fe92bd2a1 (diff)
downloadhaskell-wip/kill-obj-splitter.tar.gz
Rip out object splittingwip/kill-obj-splitter
The splitter is an evil Perl script that processes assembler code. Its job can be done better by the linker's --gc-sections flag. GHC passes this flag to the linker whenever -split-sections is passed on the command line. This is based on @DemiMarie's D2768. Fixes Trac #11315 Fixes Trac #9832 Fixes Trac #8964 Fixes Trac #8685 Fixes Trac #8629
Diffstat (limited to 'hadrian/src')
-rw-r--r--hadrian/src/Rules/Generate.hs3
-rw-r--r--hadrian/src/Rules/Library.hs9
2 files changed, 1 insertions, 11 deletions
diff --git a/hadrian/src/Rules/Generate.hs b/hadrian/src/Rules/Generate.hs
index 7c5989908a..dd46a9ce19 100644
--- a/hadrian/src/Rules/Generate.hs
+++ b/hadrian/src/Rules/Generate.hs
@@ -295,7 +295,6 @@ generateConfigHs = do
| intLib == integerGmp = "IntegerGMP"
| intLib == integerSimple = "IntegerSimple"
| otherwise = error $ "Unknown integer library: " ++ pkgName intLib
- cSupportsSplitObjs <- expr $ yesNo <$> supportsSplitObjects
cGhcWithInterpreter <- expr $ yesNo <$> ghcWithInterpreter
cGhcWithNativeCodeGen <- expr $ yesNo <$> ghcWithNativeCodeGen
cGhcWithSMP <- expr $ yesNo <$> ghcWithSMP
@@ -347,8 +346,6 @@ generateConfigHs = do
, "cIntegerLibrary = " ++ show (pkgName intLib)
, "cIntegerLibraryType :: IntegerLibrary"
, "cIntegerLibraryType = " ++ cIntegerLibraryType
- , "cSupportsSplitObjs :: String"
- , "cSupportsSplitObjs = " ++ show cSupportsSplitObjs
, "cGhcWithInterpreter :: String"
, "cGhcWithInterpreter = " ++ show cGhcWithInterpreter
, "cGhcWithNativeCodeGen :: String"
diff --git a/hadrian/src/Rules/Library.hs b/hadrian/src/Rules/Library.hs
index b53bcc8a8c..d1e8840b11 100644
--- a/hadrian/src/Rules/Library.hs
+++ b/hadrian/src/Rules/Library.hs
@@ -117,14 +117,7 @@ libraryObjects context@Context{..} = do
-- This will create split objects if required (we don't track them
-- explicitly as this would needlessly bloat the Shake database).
need $ noHsObjs ++ hsObjs
-
- split <- interpretInContext context =<< splitObjects <$> flavour
- let getSplitObjs = concatForM hsObjs $ \obj -> do
- let dir = dropExtension obj ++ "_" ++ osuf way ++ "_split"
- contents <- liftIO $ IO.getDirectoryContents dir
- return . map (dir -/-) $ filter (not . all (== '.')) contents
-
- (noHsObjs ++) <$> if split then getSplitObjs else return hsObjs
+ return (noHsObjs ++ hsObjs)
-- * Library paths types and parsers