Opened 4 years ago

Closed 2 years ago

Last modified 2 years ago

#8229 closed bug (fixed)

Linking in Windows is slow

Reported by: ezyang Owned by:
Priority: normal Milestone: 8.0.1
Component: Compiler Version: 7.7
Keywords: Cc:
Operating System: Windows Architecture: x86_64 (amd64)
Type of failure: Compile-time performance bug Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:

Description (last modified by ezyang)

It takes a long time to link ghc-stage2 on Windows; several minutes on what should be a pretty beefy machine. Here is the linker command:

"C:\Users\ezyang\Dev\ghc-validate\inplace\lib/../mingw/bin/gcc.exe" "-U__i686" "-fno-stack-prot
ector" "-DTABLES_NEXT_TO_CODE" "-o" "compiler/stage2/build/libHSghc-7.7.20130904-ghc7.7.2013090
4.dll" "-shared" "-Wl,--out-implib=compiler/stage2/build/libHSghc-7.7.20130904-ghc7.7.20130904.
dll.a" "-Wl,--enable-auto-import" "compiler\stage2\build\GhcMonad.dyn_o" "compiler\stage2\build
\Llvm.dyn_o" "compiler\stage2\build\Llvm\AbsSyn.dyn_o" "compiler\stage2\build\Llvm\MetaData.dyn
_o" "compiler\stage2\build\Llvm\PpLlvm.dyn_o" "compiler\stage2\build\Llvm\Types.dyn_o" "compile
r\stage2\build\LlvmCodeGen.dyn_o" "compiler\stage2\build\LlvmCodeGen\Base.dyn_o" "compiler\stag
e2\build\LlvmCodeGen\CodeGen.dyn_o" "compiler\stage2\build\LlvmCodeGen\Data.dyn_o" "compiler\st
age2\build\LlvmCodeGen\Ppr.dyn_o" "compiler\stage2\build\LlvmCodeGen\Regs.dyn_o" "compiler\stag
e2\build\LlvmMangler.dyn_o" "compiler\stage2\build\CmmBuildInfoTables.dyn_o" "compiler\stage2\b
uild\CmmPipeline.dyn_o" "compiler\stage2\build\CmmCommonBlockElim.dyn_o" "compiler\stage2\build
\CmmContFlowOpt.dyn_o" "compiler\stage2\build\CmmLex.dyn_o" "compiler\stage2\build\CmmLint.dyn_
o" "compiler\stage2\build\CmmLive.dyn_o" "compiler\stage2\build\CmmOpt.dyn_o" "compiler\stage2\
build\CmmParse.dyn_o" "compiler\stage2\build\CmmProcPoint.dyn_o" "compiler\stage2\build\CmmRewr
iteAssignments.dyn_o" "compiler\stage2\build\CmmSink.dyn_o" "compiler\stage2\build\CmmLayoutSta
ck.dyn_o" "compiler\stage2\build\PprBase.dyn_o" "compiler\stage2\build\PprC.dyn_o" "compiler\st
age2\build\CgUtils.dyn_o" "compiler\stage2\build\StgCmm.dyn_o" "compiler\stage2\build\StgCmmBin
d.dyn_o" "compiler\stage2\build\StgCmmCon.dyn_o" "compiler\stage2\build\StgCmmExpr.dyn_o" "comp
iler\stage2\build\StgCmmForeign.dyn_o" "compiler\stage2\build\StgCmmHeap.dyn_o" "compiler\stage
2\build\StgCmmHpc.dyn_o" "compiler\stage2\build\StgCmmPrim.dyn_o" "compiler\stage2\build\StgCmm
ExtCode.dyn_o" "compiler\stage2\build\CoreLint.dyn_o" "compiler\stage2\build\CorePrep.dyn_o" "c
ompiler\stage2\build\ExternalCore.dyn_o" "compiler\stage2\build\MkExternalCore.dyn_o" "compiler
\stage2\build\PprExternalCore.dyn_o" "compiler\stage2\build\Check.dyn_o" "compiler\stage2\build
\Coverage.dyn_o" "compiler\stage2\build\Desugar.dyn_o" "compiler\stage2\build\DsArrows.dyn_o" "
compiler\stage2\build\DsBinds.dyn_o" "compiler\stage2\build\DsCCall.dyn_o" "compiler\stage2\bui
ld\DsExpr.dyn_o" "compiler\stage2\build\DsForeign.dyn_o" "compiler\stage2\build\DsGRHSs.dyn_o" 
"compiler\stage2\build\DsListComp.dyn_o" "compiler\stage2\build\DsMonad.dyn_o" "compiler\stage2
\build\DsUtils.dyn_o" "compiler\stage2\build\Match.dyn_o" "compiler\stage2\build\MatchCon.dyn_o
" "compiler\stage2\build\MatchLit.dyn_o" "compiler\stage2\build\BinIface.dyn_o" "compiler\stage
2\build\BuildTyCl.dyn_o" "compiler\stage2\build\IfaceEnv.dyn_o" "compiler\stage2\build\LoadIfac
e.dyn_o" "compiler\stage2\build\MkIface.dyn_o" "compiler\stage2\build\TcIface.dyn_o" "compiler\
stage2\build\FlagChecker.dyn_o" "compiler\stage2\build\CodeOutput.dyn_o" "compiler\stage2\build
\DriverMkDepend.dyn_o" "compiler\stage2\build\DriverPipeline.dyn_o" "compiler\stage2\build\Find
er.dyn_o" "compiler\stage2\build\GHC.dyn_o" "compiler\stage2\build\GhcMake.dyn_o" "compiler\sta
ge2\build\GhcPlugins.dyn_o" "compiler\stage2\build\DynamicLoading.dyn_o" "compiler\stage2\build
\HeaderInfo.dyn_o" "compiler\stage2\build\HscMain.dyn_o" "compiler\stage2\build\HscStats.dyn_o"
 "compiler\stage2\build\InteractiveEval.dyn_o" "compiler\stage2\build\PprTyThing.dyn_o" "compil
er\stage2\build\SysTools.dyn_o" "compiler\stage2\build\TidyPgm.dyn_o" "compiler\stage2\build\Ct
ype.dyn_o" "compiler\stage2\build\HaddockUtils.dyn_o" "compiler\stage2\build\LexCore.dyn_o" "co
mpiler\stage2\build\Lexer.dyn_o" "compiler\stage2\build\Parser.dyn_o" "compiler\stage2\build\Pa
rserCore.dyn_o" "compiler\stage2\build\ParserCoreUtils.dyn_o" "compiler\stage2\build\RdrHsSyn.d
yn_o" "compiler\stage2\build\PrelInfo.dyn_o" "compiler\stage2\build\ProfInit.dyn_o" "compiler\s
tage2\build\SCCfinal.dyn_o" "compiler\stage2\build\RnBinds.dyn_o" "compiler\stage2\build\RnEnv.
dyn_o" "compiler\stage2\build\RnExpr.dyn_o" "compiler\stage2\build\RnHsDoc.dyn_o" "compiler\sta
ge2\build\RnNames.dyn_o" "compiler\stage2\build\RnPat.dyn_o" "compiler\stage2\build\RnSource.dy
n_o" "compiler\stage2\build\RnTypes.dyn_o" "compiler\stage2\build\CoreMonad.dyn_o" "compiler\st
age2\build\CSE.dyn_o" "compiler\stage2\build\FloatIn.dyn_o" "compiler\stage2\build\FloatOut.dyn
_o" "compiler\stage2\build\LiberateCase.dyn_o" "compiler\stage2\build\SAT.dyn_o" "compiler\stag
e2\build\SetLevels.dyn_o" "compiler\stage2\build\SimplCore.dyn_o" "compiler\stage2\build\SimplE
nv.dyn_o" "compiler\stage2\build\SimplMonad.dyn_o" "compiler\stage2\build\SimplUtils.dyn_o" "co
mpiler\stage2\build\Simplify.dyn_o" "compiler\stage2\build\SimplStg.dyn_o" "compiler\stage2\bui
ld\StgStats.dyn_o" "compiler\stage2\build\UnariseStg.dyn_o" "compiler\stage2\build\SpecConstr.d
yn_o" "compiler\stage2\build\Specialise.dyn_o" "compiler\stage2\build\CoreToStg.dyn_o" "compile
r\stage2\build\StgLint.dyn_o" "compiler\stage2\build\DmdAnal.dyn_o" "compiler\stage2\build\Work
Wrap.dyn_o" "compiler\stage2\build\WwLib.dyn_o" "compiler\stage2\build\FamInst.dyn_o" "compiler
\stage2\build\Inst.dyn_o" "compiler\stage2\build\TcAnnotations.dyn_o" "compiler\stage2\build\Tc
Arrows.dyn_o" "compiler\stage2\build\TcBinds.dyn_o" "compiler\stage2\build\TcClassDcl.dyn_o" "c
ompiler\stage2\build\TcDefaults.dyn_o" "compiler\stage2\build\TcDeriv.dyn_o" "compiler\stage2\b
uild\TcEnv.dyn_o" "compiler\stage2\build\TcExpr.dyn_o" "compiler\stage2\build\TcForeign.dyn_o" 
"compiler\stage2\build\TcGenDeriv.dyn_o" "compiler\stage2\build\TcGenGenerics.dyn_o" "compiler\
stage2\build\TcHsSyn.dyn_o" "compiler\stage2\build\TcHsType.dyn_o" "compiler\stage2\build\TcIns
tDcls.dyn_o" "compiler\stage2\build\TcMType.dyn_o" "compiler\stage2\build\TcValidity.dyn_o" "co
mpiler\stage2\build\TcMatches.dyn_o" "compiler\stage2\build\TcPat.dyn_o" "compiler\stage2\build
\TcRnDriver.dyn_o" "compiler\stage2\build\TcRnMonad.dyn_o" "compiler\stage2\build\TcRnTypes.dyn
_o" "compiler\stage2\build\TcRules.dyn_o" "compiler\stage2\build\TcSimplify.dyn_o" "compiler\st
age2\build\TcErrors.dyn_o" "compiler\stage2\build\TcTyClsDecls.dyn_o" "compiler\stage2\build\Tc
TyDecls.dyn_o" "compiler\stage2\build\TcUnify.dyn_o" "compiler\stage2\build\TcInteract.dyn_o" "
compiler\stage2\build\TcCanonical.dyn_o" "compiler\stage2\build\TcSMonad.dyn_o" "compiler\stage
2\build\FunDeps.dyn_o" "compiler\stage2\build\GraphBase.dyn_o" "compiler\stage2\build\GraphColo
r.dyn_o" "compiler\stage2\build\GraphOps.dyn_o" "compiler\stage2\build\GraphPpr.dyn_o" "compile
r\stage2\build\IOEnv.dyn_o" "compiler\stage2\build\State.dyn_o" "compiler\stage2\build\Vectoris
e\Builtins\Base.dyn_o" "compiler\stage2\build\Vectorise\Builtins\Initialise.dyn_o" "compiler\st
age2\build\Vectorise\Builtins.dyn_o" "compiler\stage2\build\Vectorise\Monad\Base.dyn_o" "compil
er\stage2\build\Vectorise\Monad\Naming.dyn_o" "compiler\stage2\build\Vectorise\Monad\Local.dyn_
o" "compiler\stage2\build\Vectorise\Monad\Global.dyn_o" "compiler\stage2\build\Vectorise\Monad\
InstEnv.dyn_o" "compiler\stage2\build\Vectorise\Monad.dyn_o" "compiler\stage2\build\Vectorise\U
tils\Base.dyn_o" "compiler\stage2\build\Vectorise\Utils\Closure.dyn_o" "compiler\stage2\build\V
ectorise\Utils\Hoisting.dyn_o" "compiler\stage2\build\Vectorise\Utils\PADict.dyn_o" "compiler\s
tage2\build\Vectorise\Utils\Poly.dyn_o" "compiler\stage2\build\Vectorise\Utils.dyn_o" "compiler
\stage2\build\Vectorise\Generic\Description.dyn_o" "compiler\stage2\build\Vectorise\Generic\PAM
ethods.dyn_o" "compiler\stage2\build\Vectorise\Generic\PADict.dyn_o" "compiler\stage2\build\Vec
torise\Generic\PData.dyn_o" "compiler\stage2\build\Vectorise\Type\Env.dyn_o" "compiler\stage2\b
uild\Vectorise\Type\Type.dyn_o" "compiler\stage2\build\Vectorise\Type\TyConDecl.dyn_o" "compile
r\stage2\build\Vectorise\Type\Classify.dyn_o" "compiler\stage2\build\Vectorise\Convert.dyn_o" "
compiler\stage2\build\Vectorise\Vect.dyn_o" "compiler\stage2\build\Vectorise\Var.dyn_o" "compil
er\stage2\build\Vectorise\Env.dyn_o" "compiler\stage2\build\Vectorise\Exp.dyn_o" "compiler\stag
e2\build\Vectorise.dyn_o" "compiler\stage2\build\AsmCodeGen.dyn_o" "compiler\stage2\build\Targe
tReg.dyn_o" "compiler\stage2\build\NCGMonad.dyn_o" "compiler\stage2\build\Instruction.dyn_o" "c
ompiler\stage2\build\Size.dyn_o" "compiler\stage2\build\PIC.dyn_o" "compiler\stage2\build\CPrim
.dyn_o" "compiler\stage2\build\X86\Regs.dyn_o" "compiler\stage2\build\X86\RegInfo.dyn_o" "compi
ler\stage2\build\X86\Instr.dyn_o" "compiler\stage2\build\X86\Cond.dyn_o" "compiler\stage2\build
\X86\Ppr.dyn_o" "compiler\stage2\build\X86\CodeGen.dyn_o" "compiler\stage2\build\PPC\Regs.dyn_o
" "compiler\stage2\build\PPC\RegInfo.dyn_o" "compiler\stage2\build\PPC\Instr.dyn_o" "compiler\s
tage2\build\PPC\Cond.dyn_o" "compiler\stage2\build\PPC\Ppr.dyn_o" "compiler\stage2\build\PPC\Co
deGen.dyn_o" "compiler\stage2\build\SPARC\Base.dyn_o" "compiler\stage2\build\SPARC\Regs.dyn_o" 
"compiler\stage2\build\SPARC\Imm.dyn_o" "compiler\stage2\build\SPARC\AddrMode.dyn_o" "compiler\
stage2\build\SPARC\Cond.dyn_o" "compiler\stage2\build\SPARC\Instr.dyn_o" "compiler\stage2\build
\SPARC\Stack.dyn_o" "compiler\stage2\build\SPARC\ShortcutJump.dyn_o" "compiler\stage2\build\SPA
RC\Ppr.dyn_o" "compiler\stage2\build\SPARC\CodeGen.dyn_o" "compiler\stage2\build\SPARC\CodeGen\
Amode.dyn_o" "compiler\stage2\build\SPARC\CodeGen\Base.dyn_o" "compiler\stage2\build\SPARC\Code
Gen\CondCode.dyn_o" "compiler\stage2\build\SPARC\CodeGen\Gen32.dyn_o" "compiler\stage2\build\SP
ARC\CodeGen\Gen64.dyn_o" "compiler\stage2\build\SPARC\CodeGen\Sanity.dyn_o" "compiler\stage2\bu
ild\SPARC\CodeGen\Expand.dyn_o" "compiler\stage2\build\RegAlloc\Liveness.dyn_o" "compiler\stage
2\build\RegAlloc\Graph\Main.dyn_o" "compiler\stage2\build\RegAlloc\Graph\Stats.dyn_o" "compiler
\stage2\build\RegAlloc\Graph\ArchBase.dyn_o" "compiler\stage2\build\RegAlloc\Graph\ArchX86.dyn_
o" "compiler\stage2\build\RegAlloc\Graph\Coalesce.dyn_o" "compiler\stage2\build\RegAlloc\Graph\
Spill.dyn_o" "compiler\stage2\build\RegAlloc\Graph\SpillClean.dyn_o" "compiler\stage2\build\Reg
Alloc\Graph\SpillCost.dyn_o" "compiler\stage2\build\RegAlloc\Graph\TrivColorable.dyn_o" "compil
er\stage2\build\RegAlloc\Linear\Main.dyn_o" "compiler\stage2\build\RegAlloc\Linear\JoinToTarget
s.dyn_o" "compiler\stage2\build\RegAlloc\Linear\State.dyn_o" "compiler\stage2\build\RegAlloc\Li
near\Stats.dyn_o" "compiler\stage2\build\RegAlloc\Linear\FreeRegs.dyn_o" "compiler\stage2\build
\RegAlloc\Linear\StackMap.dyn_o" "compiler\stage2\build\RegAlloc\Linear\Base.dyn_o" "compiler\s
tage2\build\RegAlloc\Linear\X86\FreeRegs.dyn_o" "compiler\stage2\build\RegAlloc\Linear\X86_64\F
reeRegs.dyn_o" "compiler\stage2\build\RegAlloc\Linear\PPC\FreeRegs.dyn_o" "compiler\stage2\buil
d\RegAlloc\Linear\SPARC\FreeRegs.dyn_o" "compiler\stage2\build\DsMeta.dyn_o" "compiler\stage2\b
uild\TcSplice.dyn_o" "compiler\stage2\build\Convert.dyn_o" "compiler\stage2\build\ByteCodeGen.d
yn_o" "compiler\stage2\build\Debugger.dyn_o" "compiler\stage2\build\LibFFI.dyn_o" "compiler\sta
ge2\build\Linker.dyn_o" "compiler\stage2\build\RtClosureInspect.dyn_o" "compiler\stage2\build\D
ebuggerUtils.dyn_o" "compiler\stage2\build\parser\cutils.dyn_o" "compiler\stage2\build\ghci\kee
pCAFsForGHCi.dyn_o" "compiler\stage2\build\cbits\genSym.dyn_o" "-lHSghc-7.7.20130904-0-ghc7.7.2
0130904.dll" "-Lcompiler/stage2/build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\transforme
rs\dist-install\build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\template-haskell\dist-inst
all\build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\hpc\dist-install\build" "-Lc:\Users\ez
yang\Dev\ghc-validate\libraries\hoopl\dist-install\build" "-Lc:\Users\ezyang\Dev\ghc-validate\l
ibraries\bin-package-db\dist-install\build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\binar
y\dist-install\build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\Cabal\Cabal\dist-install\bu
ild" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\process\dist-install\build" "-Lc:\Users\ezya
ng\Dev\ghc-validate\libraries\pretty\dist-install\build" "-Lc:\Users\ezyang\Dev\ghc-validate\li
braries\directory\dist-install\build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\time\dist-i
nstall\build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\old-locale\dist-install\build" "-Lc
:\Users\ezyang\Dev\ghc-validate\libraries\filepath\dist-install\build" "-Lc:\Users\ezyang\Dev\g
hc-validate\libraries\Win32\dist-install\build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\c
ontainers\dist-install\build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\bytestring\dist-ins
tall\build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\deepseq\dist-install\build" "-Lc:\Use
rs\ezyang\Dev\ghc-validate\libraries\array\dist-install\build" "-Lc:\Users\ezyang\Dev\ghc-valid
ate\libraries\base\dist-install\build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\integer-gm
p\dist-install\build" "-Lc:\Users\ezyang\Dev\ghc-validate\libraries\ghc-prim\dist-install\build
" "-Lc:/Users/ezyang/Dev/ghc-validate/rts/dist/build" "-lHStransformers-0.3.0.0-ghc7.7.20130904
" "-lHStemplate-haskell-2.9.0.0-ghc7.7.20130904" "-lHShpc-0.6.0.1-ghc7.7.20130904" "-lHShoopl-3
.10.0.0-ghc7.7.20130904" "-lHSbin-package-db-0.0.0.0-ghc7.7.20130904" "-lHSbinary-0.7.1.0-ghc7.
7.20130904" "-lHSCabal-1.18.0-ghc7.7.20130904" "-lHSprocess-1.2.0.0-ghc7.7.20130904" "-lHSprett
y-1.1.1.0-ghc7.7.20130904" "-lHSdirectory-1.2.0.1-ghc7.7.20130904" "-lHStime-1.4.1-ghc7.7.20130
904" "-lHSold-locale-1.0.0.5-ghc7.7.20130904" "-lHSfilepath-1.3.0.2-ghc7.7.20130904" "-lHSWin32
-2.3.0.0-ghc7.7.20130904" "-lHScontainers-0.5.2.1-ghc7.7.20130904" "-lHSbytestring-0.10.3.0-ghc
7.7.20130904" "-lHSdeepseq-1.3.0.2-ghc7.7.20130904" "-lHSarray-0.4.0.2-ghc7.7.20130904" "-lHSba
se-4.7.0.0-ghc7.7.20130904" "-lHSinteger-gmp-0.5.1.0-ghc7.7.20130904" "-lHSghc-prim-0.3.1.0-ghc
7.7.20130904" "-lHSrts_thr-ghc7.7.20130904" "-lffi-6" "-lkernel32" "-luser32" "-lgdi32" "-lwinm
m" "-ladvapi32" "-lshell32" "-lshfolder" "-lwsock32" "-luser32" "-lshell32" "-lm" "-lwsock32" "
-lgdi32" "-lwinmm" "-lmingwex" "-Wl,-u,_ghczmprim_GHCziTypes_Izh_static_info" "-Wl,-u,_ghczmpri
m_GHCziTypes_Czh_static_info" "-Wl,-u,_ghczmprim_GHCziTypes_Fzh_static_info" "-Wl,-u,_ghczmprim
_GHCziTypes_Dzh_static_info" "-Wl,-u,_base_GHCziPtr_Ptr_static_info" "-Wl,-u,_ghczmprim_GHCziTy
pes_Wzh_static_info" "-Wl,-u,_base_GHCziInt_I8zh_static_info" "-Wl,-u,_base_GHCziInt_I16zh_stat
ic_info" "-Wl,-u,_base_GHCziInt_I32zh_static_info" "-Wl,-u,_base_GHCziInt_I64zh_static_info" "-
Wl,-u,_base_GHCziWord_W8zh_static_info" "-Wl,-u,_base_GHCziWord_W16zh_static_info" "-Wl,-u,_bas
e_GHCziWord_W32zh_static_info" "-Wl,-u,_base_GHCziWord_W64zh_static_info" "-Wl,-u,_base_GHCziSt
able_StablePtr_static_info" "-Wl,-u,_ghczmprim_GHCziTypes_Izh_con_info" "-Wl,-u,_ghczmprim_GHCz
iTypes_Czh_con_info" "-Wl,-u,_ghczmprim_GHCziTypes_Fzh_con_info" "-Wl,-u,_ghczmprim_GHCziTypes_
Dzh_con_info" "-Wl,-u,_base_GHCziPtr_Ptr_con_info" "-Wl,-u,_base_GHCziPtr_FunPtr_con_info" "-Wl
,-u,_base_GHCziStable_StablePtr_con_info" "-Wl,-u,_ghczmprim_GHCziTypes_False_closure" "-Wl,-u,
_ghczmprim_GHCziTypes_True_closure" "-Wl,-u,_base_GHCziPack_unpackCString_closure" "-Wl,-u,_bas
e_GHCziIOziException_stackOverflow_closure" "-Wl,-u,_base_GHCziIOziException_heapOverflow_closu
re" "-Wl,-u,_base_ControlziExceptionziBase_nonTermination_closure" "-Wl,-u,_base_GHCziIOziExcep
tion_blockedIndefinitelyOnMVar_closure" "-Wl,-u,_base_GHCziIOziException_blockedIndefinitelyOnS
TM_closure" "-Wl,-u,_base_ControlziExceptionziBase_nestedAtomically_closure" "-Wl,-u,_base_GHCz
iWeak_runFinalizzerBatch_closure" "-Wl,-u,_base_GHCziTopHandler_flushStdHandles_closure" "-Wl,-
u,_base_GHCziTopHandler_runIO_closure" "-Wl,-u,_base_GHCziTopHandler_runNonIO_closure" "-Wl,-u,
_base_GHCziConcziIO_ensureIOManagerIsRunning_closure" "-Wl,-u,_base_GHCziConcziIO_ioManagerCapa
bilitiesChanged_closure" "-Wl,-u,_base_GHCziConcziSync_runSparks_closure" "-Wl,-u,_base_GHCziCo
ncziSignal_runHandlers_closure" "-Wl,--hash-size=31" "-Wl,--reduce-memory-overheads"

This guy took 7m57.574s to link on my box.

Change History (8)

comment:1 Changed 4 years ago by ezyang

Architecture: Unknown/Multiplex86_64 (amd64)

Apparently this is a known issue with MingW linker, but is exacerbated by dynamic-GHC, since the DLL linking is dramatically slower than the static linking. http://web.archive.org/web/20100417084537/http://lists.trolltech.com/qt-interest/2004-11/msg00516.html

Last edited 4 years ago by ezyang (previous) (diff)

comment:2 Changed 4 years ago by ezyang

Description: modified (diff)

comment:3 Changed 4 years ago by ezyang

Here is a drop-in replacement for ld and ar which I have found to run a bit faster: http://iweb.dl.sourceforge.net/project/upp/uldar/1.0.15/uldar-1.0.15.zip

The source can be found in the U++ project under the 'coff' directory.

comment:4 Changed 4 years ago by thoughtpolice

Milestone: 7.8.37.10.1

Moving to 7.10.1

comment:5 Changed 3 years ago by gintas

I'd like to try this with the newer mingw-w64 / gcc 4.8.3. What do I need to do to build a dynamic GHC?

comment:6 Changed 3 years ago by thoughtpolice

Milestone: 7.10.17.12.1

Moving to 7.12.1 milestone; if you feel this is an error and should be addressed sooner, please move it back to the 7.10.1 milestone.

comment:7 Changed 2 years ago by ezyang

Resolution: fixed
Status: newclosed

With updated mingw it looks like linker is doing better, marking as fixed.

comment:8 Changed 2 years ago by thoughtpolice

Milestone: 7.12.18.0.1

Milestone renamed

Note: See TracTickets for help on using tickets.