diff --git a/Cabal/Distribution/Simple/Doctest.hs b/Cabal/Distribution/Simple/Doctest.hs index b7c448812f4..7505d2c8e85 100644 --- a/Cabal/Distribution/Simple/Doctest.hs +++ b/Cabal/Distribution/Simple/Doctest.hs @@ -37,7 +37,6 @@ import Distribution.Simple.Register (internalPackageDBPath) import Distribution.Simple.BuildPaths import Distribution.Simple.Utils import Distribution.System -import Distribution.Utils.NubList import Distribution.Version import Distribution.Verbosity @@ -132,7 +131,7 @@ mkDoctestArgs verbosity tmp lbi clbi inFiles bi = do , ghcOptFPic = toFlag True , ghcOptHiSuffix = toFlag "dyn_hi" , ghcOptObjSuffix = toFlag "dyn_o" - , ghcOptExtra = toNubListR (hcSharedOptions GHC bi)} + , ghcOptExtra = hcSharedOptions GHC bi} opts <- if withVanillaLib lbi then return vanillaOpts else if withSharedLib lbi diff --git a/Cabal/Distribution/Simple/GHC.hs b/Cabal/Distribution/Simple/GHC.hs index 7b5bbfd94f2..d8a22b39231 100644 --- a/Cabal/Distribution/Simple/GHC.hs +++ b/Cabal/Distribution/Simple/GHC.hs @@ -582,7 +582,7 @@ buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do (withProfLibDetail lbi), ghcOptHiSuffix = toFlag "p_hi", ghcOptObjSuffix = toFlag "p_o", - ghcOptExtra = toNubListR $ hcProfOptions GHC libBi, + ghcOptExtra = hcProfOptions GHC libBi, ghcOptHPCDir = hpcdir Hpc.Prof } @@ -591,23 +591,20 @@ buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do ghcOptFPic = toFlag True, ghcOptHiSuffix = toFlag "dyn_hi", ghcOptObjSuffix = toFlag "dyn_o", - ghcOptExtra = toNubListR $ hcSharedOptions GHC libBi, + ghcOptExtra = hcSharedOptions GHC libBi, ghcOptHPCDir = hpcdir Hpc.Dyn } linkerOpts = mempty { - ghcOptLinkOptions = toNubListR $ PD.ldOptions libBi, - ghcOptLinkLibs = toNubListR $ extraLibs libBi, + ghcOptLinkOptions = PD.ldOptions libBi, + ghcOptLinkLibs = extraLibs libBi, ghcOptLinkLibPath = toNubListR $ extraLibDirs libBi, - ghcOptLinkFrameworks = toNubListR $ - PD.frameworks libBi, - ghcOptLinkFrameworkDirs = toNubListR $ - PD.extraFrameworkDirs libBi, + ghcOptLinkFrameworks = toNubListR $ PD.frameworks libBi, + ghcOptLinkFrameworkDirs = toNubListR $ PD.extraFrameworkDirs libBi, ghcOptInputFiles = toNubListR [libTargetDir x | x <- cObjs] } replOpts = vanillaOpts { - ghcOptExtra = overNubListR - Internal.filterGhciFlags $ + ghcOptExtra = Internal.filterGhciFlags $ ghcOptExtra vanillaOpts, ghcOptNumJobs = mempty } @@ -794,8 +791,7 @@ buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do ghcOptDynLinkMode = toFlag GhcDynamicOnly, ghcOptInputFiles = toNubListR dynamicObjectFiles, ghcOptOutputFile = toFlag sharedLibFilePath, - ghcOptExtra = toNubListR $ - hcSharedOptions GHC libBi, + ghcOptExtra = hcSharedOptions GHC libBi, -- For dynamic libs, Mac OS/X needs to know the install location -- at build time. This only applies to GHC < 7.8 - see the -- discussion in #1660. @@ -822,7 +818,7 @@ buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do _ -> [], ghcOptPackages = toNubListR $ Internal.mkGhcOptPackages clbi , - ghcOptLinkLibs = toNubListR $ extraLibs libBi, + ghcOptLinkLibs = extraLibs libBi, ghcOptLinkLibPath = toNubListR $ extraLibDirs libBi, ghcOptLinkFrameworks = toNubListR $ PD.frameworks libBi, ghcOptLinkFrameworkDirs = @@ -834,8 +830,7 @@ buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do ghcOptStaticLib = toFlag True, ghcOptInputFiles = toNubListR staticObjectFiles, ghcOptOutputFile = toFlag staticLibFilePath, - ghcOptExtra = toNubListR $ - hcStaticOptions GHC libBi, + ghcOptExtra = hcStaticOptions GHC libBi, ghcOptHideAllPackages = toFlag True, ghcOptNoAutoLinkPackages = toFlag True, ghcOptPackageDBs = withPackageDB lbi, @@ -855,7 +850,7 @@ buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do _ -> [], ghcOptPackages = toNubListR $ Internal.mkGhcOptPackages clbi , - ghcOptLinkLibs = toNubListR $ extraLibs libBi, + ghcOptLinkLibs = extraLibs libBi, ghcOptLinkLibPath = toNubListR $ extraLibDirs libBi } @@ -1242,8 +1237,7 @@ gbuild verbosity numJobs pkg_descr lbi bm clbi = do (withProfExeDetail lbi), ghcOptHiSuffix = toFlag "p_hi", ghcOptObjSuffix = toFlag "p_o", - ghcOptExtra = toNubListR - (hcProfOptions GHC bnfo), + ghcOptExtra = (hcProfOptions GHC bnfo), ghcOptHPCDir = hpcdir Hpc.Prof } dynOpts = baseOpts `mappend` mempty { @@ -1252,8 +1246,7 @@ gbuild verbosity numJobs pkg_descr lbi bm clbi = do ghcOptFPic = toFlag True, ghcOptHiSuffix = toFlag "dyn_hi", ghcOptObjSuffix = toFlag "dyn_o", - ghcOptExtra = toNubListR $ - hcSharedOptions GHC bnfo, + ghcOptExtra = hcSharedOptions GHC bnfo, ghcOptHPCDir = hpcdir Hpc.Dyn } dynTooOpts = staticOpts `mappend` mempty { @@ -1263,8 +1256,8 @@ gbuild verbosity numJobs pkg_descr lbi bm clbi = do ghcOptHPCDir = hpcdir Hpc.Dyn } linkerOpts = mempty { - ghcOptLinkOptions = toNubListR $ PD.ldOptions bnfo, - ghcOptLinkLibs = toNubListR $ extraLibs bnfo, + ghcOptLinkOptions = PD.ldOptions bnfo, + ghcOptLinkLibs = extraLibs bnfo, ghcOptLinkLibPath = toNubListR $ extraLibDirs bnfo, ghcOptLinkFrameworks = toNubListR $ PD.frameworks bnfo, @@ -1277,8 +1270,7 @@ gbuild verbosity numJobs pkg_descr lbi bm clbi = do ghcOptRPaths = rpaths } replOpts = baseOpts { - ghcOptExtra = overNubListR - Internal.filterGhciFlags + ghcOptExtra = Internal.filterGhciFlags (ghcOptExtra baseOpts) } -- For a normal compile we do separate invocations of ghc for @@ -1423,19 +1415,18 @@ gbuild verbosity numJobs pkg_descr lbi bm clbi = do `mappend` mempty { ghcOptLinkNoHsMain = toFlag True, ghcOptShared = toFlag True, - ghcOptLinkLibs = toNubListR [ - if needDynamic - then rtsDynamicLib rtsInfo - else rtsStaticLib rtsInfo - ], + ghcOptLinkLibs = [ if needDynamic + then rtsDynamicLib rtsInfo + else rtsStaticLib rtsInfo + ], ghcOptLinkLibPath = toNubListR $ rtsLibPaths rtsInfo, ghcOptFPic = toFlag True, ghcOptLinkModDefFiles = toNubListR $ gbuildModDefFiles bm } -- See Note [RPATH] `mappend` ifNeedsRPathWorkaround lbi mempty { - ghcOptLinkOptions = toNubListR ["-Wl,--no-as-needed"] - , ghcOptLinkLibs = toNubListR ["ffi"] + ghcOptLinkOptions = ["-Wl,--no-as-needed"] + , ghcOptLinkLibs = ["ffi"] } ForeignLibNativeStatic -> -- this should be caught by buildFLib @@ -1663,7 +1654,7 @@ libAbiHash verbosity _pkg_descr lbi lib clbi = do ghcOptFPic = toFlag True, ghcOptHiSuffix = toFlag "dyn_hi", ghcOptObjSuffix = toFlag "dyn_o", - ghcOptExtra = toNubListR $ hcSharedOptions GHC libBi + ghcOptExtra = hcSharedOptions GHC libBi } profArgs = vanillaArgs `mappend` mempty { ghcOptProfilingMode = toFlag True, @@ -1671,7 +1662,7 @@ libAbiHash verbosity _pkg_descr lbi lib clbi = do (withProfLibDetail lbi), ghcOptHiSuffix = toFlag "p_hi", ghcOptObjSuffix = toFlag "p_o", - ghcOptExtra = toNubListR $ hcProfOptions GHC libBi + ghcOptExtra = hcProfOptions GHC libBi } ghcArgs | withVanillaLib lbi = vanillaArgs diff --git a/Cabal/Distribution/Simple/GHC/Internal.hs b/Cabal/Distribution/Simple/GHC/Internal.hs index 5e70fa93110..a2cedfd784e 100644 --- a/Cabal/Distribution/Simple/GHC/Internal.hs +++ b/Cabal/Distribution/Simple/GHC/Internal.hs @@ -284,8 +284,7 @@ componentCcGhcOptions verbosity _implInfo lbi bi clbi odir filename = ghcOptHideAllPackages= toFlag True, ghcOptPackageDBs = withPackageDB lbi, ghcOptPackages = toNubListR $ mkGhcOptPackages clbi, - ghcOptCcOptions = toNubListR $ - (case withOptimization lbi of + ghcOptCcOptions = (case withOptimization lbi of NoOptimisation -> [] _ -> ["-O2"]) ++ (case withDebugInfo lbi of @@ -321,8 +320,7 @@ componentCxxGhcOptions verbosity _implInfo lbi bi clbi odir filename = ghcOptHideAllPackages= toFlag True, ghcOptPackageDBs = withPackageDB lbi, ghcOptPackages = toNubListR $ mkGhcOptPackages clbi, - ghcOptCxxOptions = toNubListR $ - (case withOptimization lbi of + ghcOptCxxOptions = (case withOptimization lbi of NoOptimisation -> [] _ -> ["-O2"]) ++ (case withDebugInfo lbi of @@ -378,7 +376,7 @@ componentGhcOptions verbosity implInfo lbi bi clbi odir = -- potential includes generated by `configure' -- in the build directory ++ [buildDir lbi dir | dir <- PD.includeDirs bi], - ghcOptCppOptions = toNubListR $ cppOptions bi, + ghcOptCppOptions = cppOptions bi, ghcOptCppIncludes = toNubListR $ [autogenComponentModulesDir lbi clbi cppHeaderName], ghcOptFfiIncludes = toNubListR $ PD.includes bi, @@ -388,7 +386,7 @@ componentGhcOptions verbosity implInfo lbi bi clbi odir = ghcOptOutputDir = toFlag odir, ghcOptOptimisation = toGhcOptimisation (withOptimization lbi), ghcOptDebugInfo = toFlag (withDebugInfo lbi), - ghcOptExtra = toNubListR $ hcOptions GHC bi, + ghcOptExtra = hcOptions GHC bi, ghcOptExtraPath = toNubListR $ exe_paths, ghcOptLanguage = toFlag (fromMaybe Haskell98 (defaultLanguage bi)), -- Unsupported extensions have already been checked by configure diff --git a/Cabal/Distribution/Simple/GHCJS.hs b/Cabal/Distribution/Simple/GHCJS.hs index b342b87768e..02673c8d835 100644 --- a/Cabal/Distribution/Simple/GHCJS.hs +++ b/Cabal/Distribution/Simple/GHCJS.hs @@ -309,7 +309,7 @@ buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do jsSrcs = jsSources libBi baseOpts = componentGhcOptions verbosity lbi libBi clbi libTargetDir linkJsLibOpts = mempty { - ghcOptExtra = toNubListR $ + ghcOptExtra = [ "-link-js-lib" , getHSLibraryName uid , "-js-lib-outputdir", libTargetDir ] ++ concatMap (\x -> ["-js-lib-src",x]) jsSrcs @@ -324,28 +324,25 @@ buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do profOpts = adjustExts "p_hi" "p_o" vanillaOpts `mappend` mempty { ghcOptProfilingMode = toFlag True, - ghcOptExtra = toNubListR $ - ghcjsProfOptions libBi, + ghcOptExtra = ghcjsProfOptions libBi, ghcOptHPCDir = hpcdir Hpc.Prof } sharedOpts = adjustExts "dyn_hi" "dyn_o" vanillaOpts `mappend` mempty { ghcOptDynLinkMode = toFlag GhcDynamicOnly, ghcOptFPic = toFlag True, - ghcOptExtra = toNubListR $ - ghcjsSharedOptions libBi, + ghcOptExtra = ghcjsSharedOptions libBi, ghcOptHPCDir = hpcdir Hpc.Dyn } linkerOpts = mempty { - ghcOptLinkOptions = toNubListR $ PD.ldOptions libBi, - ghcOptLinkLibs = toNubListR $ extraLibs libBi, + ghcOptLinkOptions = PD.ldOptions libBi, + ghcOptLinkLibs = extraLibs libBi, ghcOptLinkLibPath = toNubListR $ extraLibDirs libBi, ghcOptLinkFrameworks = toNubListR $ PD.frameworks libBi, ghcOptInputFiles = toNubListR $ [libTargetDir x | x <- cObjs] ++ jsSrcs } replOpts = vanillaOptsNoJsLib { - ghcOptExtra = overNubListR - Internal.filterGhciFlags + ghcOptExtra = Internal.filterGhciFlags (ghcOptExtra vanillaOpts), ghcOptNumJobs = mempty } @@ -466,13 +463,12 @@ buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do ghcOptDynLinkMode = toFlag GhcDynamicOnly, ghcOptInputFiles = toNubListR dynamicObjectFiles, ghcOptOutputFile = toFlag sharedLibFilePath, - ghcOptExtra = toNubListR $ - ghcjsSharedOptions libBi, + ghcOptExtra = ghcjsSharedOptions libBi, ghcOptNoAutoLinkPackages = toFlag True, ghcOptPackageDBs = withPackageDB lbi, ghcOptPackages = toNubListR $ Internal.mkGhcOptPackages clbi, - ghcOptLinkLibs = toNubListR $ extraLibs libBi, + ghcOptLinkLibs = extraLibs libBi, ghcOptLinkLibPath = toNubListR $ extraLibDirs libBi } @@ -564,7 +560,7 @@ buildOrReplExe forRepl verbosity numJobs _pkg_descr lbi ghcOptInputModules = toNubListR $ [ m | not isHaskellMain, m <- exeModules exe], ghcOptExtra = - if buildRunner then toNubListR ["-build-runner"] + if buildRunner then ["-build-runner"] else mempty } staticOpts = baseOpts `mappend` mempty { @@ -573,13 +569,12 @@ buildOrReplExe forRepl verbosity numJobs _pkg_descr lbi } profOpts = adjustExts "p_hi" "p_o" baseOpts `mappend` mempty { ghcOptProfilingMode = toFlag True, - ghcOptExtra = toNubListR $ ghcjsProfOptions exeBi, + ghcOptExtra = ghcjsProfOptions exeBi, ghcOptHPCDir = hpcdir Hpc.Prof } dynOpts = adjustExts "dyn_hi" "dyn_o" baseOpts `mappend` mempty { ghcOptDynLinkMode = toFlag GhcDynamicOnly, - ghcOptExtra = toNubListR $ - ghcjsSharedOptions exeBi, + ghcOptExtra = ghcjsSharedOptions exeBi, ghcOptHPCDir = hpcdir Hpc.Dyn } dynTooOpts = adjustExts "dyn_hi" "dyn_o" staticOpts `mappend` mempty { @@ -587,16 +582,15 @@ buildOrReplExe forRepl verbosity numJobs _pkg_descr lbi ghcOptHPCDir = hpcdir Hpc.Dyn } linkerOpts = mempty { - ghcOptLinkOptions = toNubListR $ PD.ldOptions exeBi, - ghcOptLinkLibs = toNubListR $ extraLibs exeBi, + ghcOptLinkOptions = PD.ldOptions exeBi, + ghcOptLinkLibs = extraLibs exeBi, ghcOptLinkLibPath = toNubListR $ extraLibDirs exeBi, ghcOptLinkFrameworks = toNubListR $ PD.frameworks exeBi, ghcOptInputFiles = toNubListR $ [exeDir x | x <- cObjs] ++ jsSrcs } replOpts = baseOpts { - ghcOptExtra = overNubListR - Internal.filterGhciFlags + ghcOptExtra = Internal.filterGhciFlags (ghcOptExtra baseOpts) } -- For a normal compile we do separate invocations of ghc for @@ -784,7 +778,7 @@ libAbiHash verbosity _pkg_descr lbi lib clbi = do } profArgs = adjustExts "js_p_hi" "js_p_o" vanillaArgs `mappend` mempty { ghcOptProfilingMode = toFlag True, - ghcOptExtra = toNubListR (ghcjsProfOptions libBi) + ghcOptExtra = ghcjsProfOptions libBi } ghcArgs | withVanillaLib lbi = vanillaArgs | withProfLib lbi = profArgs @@ -819,8 +813,7 @@ componentGhcOptions verbosity lbi bi clbi odir = let opts = Internal.componentGhcOptions verbosity implInfo lbi bi clbi odir comp = compiler lbi implInfo = getImplInfo comp - in opts { ghcOptExtra = ghcOptExtra opts `mappend` toNubListR - (hcOptions GHCJS bi) + in opts { ghcOptExtra = ghcOptExtra opts `mappend` (hcOptions GHCJS bi) } ghcjsProfOptions :: BuildInfo -> [String] diff --git a/Cabal/Distribution/Simple/Haddock.hs b/Cabal/Distribution/Simple/Haddock.hs index 68b46eef24f..5d5938e24f2 100644 --- a/Cabal/Distribution/Simple/Haddock.hs +++ b/Cabal/Distribution/Simple/Haddock.hs @@ -288,7 +288,7 @@ fromFlags env flags = os -> os, argOutputDir = maybe mempty Dir . flagToMaybe $ haddockDistPref flags, - argGhcOptions = mempty { ghcOptExtra = toNubListR ghcArgs } + argGhcOptions = mempty { ghcOptExtra = ghcArgs } } where ghcArgs = fromMaybe [] . lookup "ghc" . haddockProgramArgs $ flags @@ -346,8 +346,7 @@ mkHaddockArgs verbosity tmp lbi clbi htmlTemplate haddockVersion inFiles bi = do ghcOptFPic = toFlag True, ghcOptHiSuffix = toFlag "dyn_hi", ghcOptObjSuffix = toFlag "dyn_o", - ghcOptExtra = - toNubListR $ hcSharedOptions GHC bi + ghcOptExtra = hcSharedOptions GHC bi } opts <- if withVanillaLib lbi @@ -450,7 +449,7 @@ getGhcCppOpts :: Version getGhcCppOpts haddockVersion bi = mempty { ghcOptExtensions = toNubListR [EnableExtension CPP | needsCpp], - ghcOptCppOptions = toNubListR defines + ghcOptCppOptions = defines } where needsCpp = EnableExtension CPP `elem` usedExtensions bi diff --git a/Cabal/Distribution/Simple/Program/GHC.hs b/Cabal/Distribution/Simple/Program/GHC.hs index b77a2bd0611..5659f08f42c 100644 --- a/Cabal/Distribution/Simple/Program/GHC.hs +++ b/Cabal/Distribution/Simple/Program/GHC.hs @@ -220,6 +220,12 @@ normaliseGhcArgs _ _ args = args -- | A structured set of GHC options/flags -- +-- Note that options containing lists fall into two categories: +-- +-- * options that can be safely deduplicated, e.g. input modules or +-- enabled extensions; +-- * options that cannot be deduplicated in general without changing +-- semantics, e.g. extra ghc options or linking options. data GhcOptions = GhcOptions { -- | The major mode for the ghc invocation. @@ -227,11 +233,11 @@ data GhcOptions = GhcOptions { -- | Any extra options to pass directly to ghc. These go at the end and hence -- override other stuff. - ghcOptExtra :: NubListR String, + ghcOptExtra :: [String], -- | Extra default flags to pass directly to ghc. These go at the beginning -- and so can be overridden by other stuff. - ghcOptExtraDefault :: NubListR String, + ghcOptExtraDefault :: [String], ----------------------- -- Inputs and outputs @@ -303,13 +309,13 @@ data GhcOptions = GhcOptions { -- Linker stuff -- | Names of libraries to link in; the @ghc -l@ flag. - ghcOptLinkLibs :: NubListR FilePath, + ghcOptLinkLibs :: [FilePath], -- | Search path for libraries to link in; the @ghc -L@ flag. ghcOptLinkLibPath :: NubListR FilePath, -- | Options to pass through to the linker; the @ghc -optl@ flag. - ghcOptLinkOptions :: NubListR String, + ghcOptLinkOptions :: [String], -- | OSX only: frameworks to link in; the @ghc -framework@ flag. ghcOptLinkFrameworks :: NubListR String, @@ -332,13 +338,13 @@ data GhcOptions = GhcOptions { -- C and CPP stuff -- | Options to pass through to the C compiler; the @ghc -optc@ flag. - ghcOptCcOptions :: NubListR String, + ghcOptCcOptions :: [String], -- | Options to pass through to the C++ compiler. - ghcOptCxxOptions :: NubListR String, + ghcOptCxxOptions :: [String], -- | Options to pass through to CPP; the @ghc -optP@ flag. - ghcOptCppOptions :: NubListR String, + ghcOptCppOptions :: [String], -- | Search path for CPP includes like header files; the @ghc -I@ flag. ghcOptCppIncludePath :: NubListR FilePath, @@ -489,7 +495,7 @@ renderGhcOptions comp _platform@(Platform _arch os) opts -- Just GhcModeDepAnalysis -> ["-M"] -- Just GhcModeEvaluate -> ["-e", expr] - , flags ghcOptExtraDefault + , ghcOptExtraDefault opts , [ "-no-link" | flagBool ghcOptNoLink ] @@ -584,17 +590,17 @@ renderGhcOptions comp _platform@(Platform _arch os) opts -- CPP, C, and C++ stuff , [ "-I" ++ dir | dir <- flags ghcOptCppIncludePath ] - , [ "-optP" ++ opt | opt <- flags ghcOptCppOptions ] + , [ "-optP" ++ opt | opt <- ghcOptCppOptions opts] , concat [ [ "-optP-include", "-optP" ++ inc] | inc <- flags ghcOptCppIncludes ] - , [ "-optc" ++ opt | opt <- flags ghcOptCcOptions ] - , [ "-optc" ++ opt | opt <- flags ghcOptCxxOptions ] + , [ "-optc" ++ opt | opt <- ghcOptCcOptions opts] + , [ "-optc" ++ opt | opt <- ghcOptCxxOptions opts] ----------------- -- Linker stuff - , [ "-optl" ++ opt | opt <- flags ghcOptLinkOptions ] - , ["-l" ++ lib | lib <- flags ghcOptLinkLibs ] + , [ "-optl" ++ opt | opt <- ghcOptLinkOptions opts] + , ["-l" ++ lib | lib <- ghcOptLinkLibs opts] , ["-L" ++ dir | dir <- flags ghcOptLinkLibPath ] , if isOSX then concat [ ["-framework", fmwk] @@ -679,7 +685,7 @@ renderGhcOptions comp _platform@(Platform _arch os) opts --------------- -- Extra - , flags ghcOptExtra + , ghcOptExtra opts ] diff --git a/cabal-install/Distribution/Client/SetupWrapper.hs b/cabal-install/Distribution/Client/SetupWrapper.hs index fed24c7bfe5..67c369d2d21 100644 --- a/cabal-install/Distribution/Client/SetupWrapper.hs +++ b/cabal-install/Distribution/Client/SetupWrapper.hs @@ -896,7 +896,7 @@ getExternalSetupMethod verbosity options pkg bt = do , ghcOptPackages = toNubListR $ map addRenaming selectedDeps , ghcOptCppIncludes = toNubListR [ cppMacrosFile | useVersionMacros options' ] - , ghcOptExtra = toNubListR extraOpts + , ghcOptExtra = extraOpts } let ghcCmdLine = renderGhcOptions compiler platform ghcOptions when (useVersionMacros options') $