diff options
author | Joey Hess <joeyh@joeyh.name> | 2015-09-01 14:37:02 -0700 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2015-09-01 14:51:14 -0700 |
commit | 6d66a81ca98f8579bf06f7fb724ed733670d39b9 (patch) | |
tree | 1acad0170e35d49cc6ff732fbf539648de7073e7 /Build | |
parent | 6e4a1f7a771ca10ede528776ed126ef11f802dfd (diff) |
Fix Windows build to work with ghc 7.10
It was failing at link time, some problem with terminatePID.
Re-implemented that to not use a C wrapper function, which cleared up the
problem. Removed old EvilLinker hack with must have been related to the
same problem.
Note that I have not tested this with older ghc's. In
4f59f9439687cccfb7aac6aca62dbe97038179bf I mention having tried this
approach before, and getting segfaults.. So, who knows. It seems to work
fine with ghc 7.10 at least.
Diffstat (limited to 'Build')
-rw-r--r-- | Build/EvilLinker.hs | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/Build/EvilLinker.hs b/Build/EvilLinker.hs index d1b0cc746..fa260edab 100644 --- a/Build/EvilLinker.hs +++ b/Build/EvilLinker.hs @@ -95,19 +95,13 @@ parseCollect2 = do path <- manyTill anyChar (try $ string ldcmd) void $ char ' ' params <- restOfLine - return $ CmdParams (path ++ ldcmd) (skipHack $ escapeDosPaths params) Nothing + return $ CmdParams (path ++ ldcmd) (escapeDosPaths params) Nothing where ldcmd = "ld.exe" versionline = do void $ string "collect2 version" restOfLine -{- For unknown reasons, asking the linker to link this in fails, - - with error about multiple definitions of a symbol from the library. - - This is a horrible hack. -} -skipHack :: String -> String -skipHack = replace "dist/build/git-annex/git-annex-tmp/Utility/winprocess.o" "" - {- Input contains something like - c:/program files/haskell platform/foo -LC:/Program Files/Haskell Platform/ -L... - and the *right* spaces must be escaped with \ |