parse out additional env vars when running collect2
This commit is contained in:
parent
ccb944c85a
commit
5315efa3d6
1 changed files with 15 additions and 5 deletions
|
@ -48,7 +48,6 @@ parseGhcLink = do
|
||||||
{- Find where gcc calls collect2. -}
|
{- Find where gcc calls collect2. -}
|
||||||
parseGccLink :: Parser CmdParams
|
parseGccLink :: Parser CmdParams
|
||||||
parseGccLink = do
|
parseGccLink = do
|
||||||
void $ many preenv
|
|
||||||
cenv <- collectenv
|
cenv <- collectenv
|
||||||
void $ try $ char ' '
|
void $ try $ char ' '
|
||||||
path <- manyTill anyChar (try $ string collectcmd)
|
path <- manyTill anyChar (try $ string collectcmd)
|
||||||
|
@ -57,10 +56,24 @@ parseGccLink = do
|
||||||
return $ CmdParams (path ++ collectcmd) (escapeDosPaths collect2params) cenv
|
return $ CmdParams (path ++ collectcmd) (escapeDosPaths collect2params) cenv
|
||||||
where
|
where
|
||||||
collectcmd = "collect2.exe"
|
collectcmd = "collect2.exe"
|
||||||
|
collectgccenv = "COLLECT_GCC"
|
||||||
|
collectltoenv = "COLLECT_LTO_WRAPPER"
|
||||||
pathenv = "COMPILER_PATH"
|
pathenv = "COMPILER_PATH"
|
||||||
libpathenv = "LIBRARY_PATH"
|
libpathenv = "LIBRARY_PATH"
|
||||||
optenv = "COLLECT_GCC_OPTIONS"
|
optenv = "COLLECT_GCC_OPTIONS"
|
||||||
collectenv = do
|
collectenv = do
|
||||||
|
void $ many1 $ do
|
||||||
|
notFollowedBy $ string collectgccenv
|
||||||
|
restOfLine
|
||||||
|
void $ string collectgccenv
|
||||||
|
void $ char '='
|
||||||
|
g <- restOfLine
|
||||||
|
void $ string collectltoenv
|
||||||
|
void $ char '='
|
||||||
|
lt <- restOfLine
|
||||||
|
void $ many1 $ do
|
||||||
|
notFollowedBy $ string pathenv
|
||||||
|
restOfLine
|
||||||
void $ string pathenv
|
void $ string pathenv
|
||||||
void $ char '='
|
void $ char '='
|
||||||
p <- restOfLine
|
p <- restOfLine
|
||||||
|
@ -70,10 +83,7 @@ parseGccLink = do
|
||||||
void $ string optenv
|
void $ string optenv
|
||||||
void $ char '='
|
void $ char '='
|
||||||
o <- restOfLine
|
o <- restOfLine
|
||||||
return $ Just [(pathenv, p), (libpathenv, lp), (optenv, o)]
|
return $ Just [(collectgccenv, g), (collectltoenv, lt), (pathenv, p), (libpathenv, lp), (optenv, o)]
|
||||||
preenv = do
|
|
||||||
void $ notFollowedBy collectenv
|
|
||||||
restOfLine
|
|
||||||
|
|
||||||
{- Find where collect2 calls ld. -}
|
{- Find where collect2 calls ld. -}
|
||||||
parseCollect2 :: Parser CmdParams
|
parseCollect2 :: Parser CmdParams
|
||||||
|
|
Loading…
Add table
Reference in a new issue