summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hadrian/src/Oracles/Setting.hs2
-rw-r--r--hadrian/src/Rules/Library.hs4
-rw-r--r--hadrian/src/Settings/Packages.hs1
m---------libraries/Cabal0
-rw-r--r--rts/rts.cabal.in10
5 files changed, 13 insertions, 4 deletions
diff --git a/hadrian/src/Oracles/Setting.hs b/hadrian/src/Oracles/Setting.hs
index 1cdcddf186..5197b8ea54 100644
--- a/hadrian/src/Oracles/Setting.hs
+++ b/hadrian/src/Oracles/Setting.hs
@@ -218,4 +218,4 @@ libsuf way
extension <- setting DynamicExtension -- e.g., .dll or .so
version <- setting ProjectVersion -- e.g., 7.11.20141222
let suffix = waySuffix (removeWayUnit Dynamic way)
- return ("-ghc" ++ version ++ suffix ++ extension)
+ return (suffix ++ "-ghc" ++ version ++ extension)
diff --git a/hadrian/src/Rules/Library.hs b/hadrian/src/Rules/Library.hs
index b53bcc8a8c..334d687c9d 100644
--- a/hadrian/src/Rules/Library.hs
+++ b/hadrian/src/Rules/Library.hs
@@ -134,7 +134,7 @@ data LibA = LibA String [Integer] Way deriving (Eq, Show)
-- | > <so or dylib>
data DynLibExt = So | Dylib deriving (Eq, Show)
--- | > libHS<pkg name>-<pkg version>-ghc<ghc version>[_<way suffix>].<so or dylib>
+-- | > libHS<pkg name>-<pkg version>[_<way suffix>]-ghc<ghc version>.<so|dylib>
data LibDyn = LibDyn String [Integer] Way DynLibExt deriving (Eq, Show)
-- | > HS<pkg name>-<pkg version>[_<way suffix>].o
@@ -231,8 +231,8 @@ parseLibDynFilename :: String -> Parsec.Parsec String () LibDyn
parseLibDynFilename ext = do
_ <- Parsec.string "libHS"
(pkgname, pkgver) <- parsePkgId
- _ <- optional $ Parsec.string "-ghc" *> parsePkgVersion
way <- addWayUnit Dynamic <$> parseWaySuffix dynamic
+ _ <- optional $ Parsec.string "-ghc" *> parsePkgVersion
_ <- Parsec.string ("." ++ ext)
return (LibDyn pkgname pkgver way $ if ext == "so" then So else Dylib)
diff --git a/hadrian/src/Settings/Packages.hs b/hadrian/src/Settings/Packages.hs
index 4d75e325d4..51a980ca8b 100644
--- a/hadrian/src/Settings/Packages.hs
+++ b/hadrian/src/Settings/Packages.hs
@@ -285,6 +285,7 @@ rtsPackageArgs = package rts ? do
[ any (wayUnit Profiling) rtsWays ? arg "profiling"
, any (wayUnit Debug) rtsWays ? arg "debug"
, any (wayUnit Logging) rtsWays ? arg "logging"
+ , any (wayUnit Dynamic) rtsWays ? arg "dynamic"
]
, builder (Cc FindCDependencies) ? cArgs
, builder (Ghc CompileCWithGhc) ? map ("-optc" ++) <$> cArgs
diff --git a/libraries/Cabal b/libraries/Cabal
-Subproject 3da088e281f5cbc8a731e18ceb698cfea2e4500
+Subproject 064d9e9082c825f538655db1868108c48240377
diff --git a/rts/rts.cabal.in b/rts/rts.cabal.in
index a20aa57186..e9cc7d1b6f 100644
--- a/rts/rts.cabal.in
+++ b/rts/rts.cabal.in
@@ -1,4 +1,4 @@
-cabal-version: 2.1
+cabal-version: 2.5
name: rts
version: 1.0
license: BSD-3-Clause
@@ -39,6 +39,8 @@ flag debug
default: False
flag logging
default: False
+flag dynamic
+ default: False
library
-- rts is a wired in package and
@@ -65,8 +67,14 @@ library
extra-library-flavours: _debug_p _thr_debug_p
if flag(debug)
extra-library-flavours: _debug _thr_debug
+ if flag(dynamic)
+ extra-dynamic-library-flavours: _debug _thr_debug
if flag(logging)
extra-library-flavours: _l _thr_l
+ if flag(dynamic)
+ extra-dynamic-library-flavours: _l _thr_l
+ if flag(dynamic)
+ extra-dynamic-library-flavours: _thr
exposed: True
exposed-modules: