Commit 8002c9d5 authored by duncan.coutts@worc.ox.ac.uk's avatar duncan.coutts@worc.ox.ac.uk
Browse files

Use extraGHCiLibraries (if supplied) in GHCi linker rather than extraLibraries

Also extend the parser.
parent d4c88dc2
...@@ -756,8 +756,19 @@ linkPackage :: DynFlags -> PackageConfig -> IO () ...@@ -756,8 +756,19 @@ linkPackage :: DynFlags -> PackageConfig -> IO ()
linkPackage dflags pkg linkPackage dflags pkg
= do = do
let dirs = Packages.libraryDirs pkg let dirs = Packages.libraryDirs pkg
let libs = Packages.hsLibraries pkg ++ Packages.extraLibraries pkg
++ [ lib | '-':'l':lib <- Packages.ldOptions pkg ] let libs = Packages.hsLibraries pkg
-- Because of slight differences between the GHC dynamic linker and
-- the native system linker some packages have to link with a
-- different list of libraries when using GHCi. Examples include: libs
-- that are actually gnu ld scripts, and the possability that the .a
-- libs do not exactly match the .so/.dll equivalents. So if the
-- package file provides an "extra-ghci-libraries" field then we use
-- that instead of the "extra-libraries" field.
++ (if null (Packages.extraGHCiLibraries pkg)
then Packages.extraLibraries pkg
else Packages.extraGHCiLibraries pkg)
++ [ lib | '-':'l':lib <- Packages.ldOptions pkg ]
classifieds <- mapM (locateOneObj dirs) libs classifieds <- mapM (locateOneObj dirs) libs
-- Complication: all the .so's must be loaded before any of the .o's. -- Complication: all the .so's must be loaded before any of the .o's.
......
...@@ -82,6 +82,7 @@ field :: { PackageConfig -> PackageConfig } ...@@ -82,6 +82,7 @@ field :: { PackageConfig -> PackageConfig }
"libraryDirs" -> p{libraryDirs = $3} "libraryDirs" -> p{libraryDirs = $3}
"hsLibraries" -> p{hsLibraries = $3} "hsLibraries" -> p{hsLibraries = $3}
"extraLibraries" -> p{extraLibraries = $3} "extraLibraries" -> p{extraLibraries = $3}
"extraGHCiLibraries"-> p{extraGHCiLibraries= $3}
"includeDirs" -> p{includeDirs = $3} "includeDirs" -> p{includeDirs = $3}
"includes" -> p{includes = $3} "includes" -> p{includes = $3}
"hugsOptions" -> p{hugsOptions = $3} "hugsOptions" -> p{hugsOptions = $3}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment