Re: [GHC] #5987: Too many symbols in ghc package DLL

#5987: Too many symbols in ghc package DLL ---------------------------------+---------------------------------------- Reporter: igloo | Owner: Phyx- Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.5 Resolution: | Keywords: Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: 10352 | Blocking: 5355 Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Changes (by Phyx-): * blockedby: => 10352 Comment: Quick update, dynamic linking now works again: {{{ $ ghc-stage2 -fforce-recomp test.hs -dynamic && ./test [1 of 1] Compiling Main ( test.hs, test.o ) Linking test.exe ... Hello World }}} And loader logs: {{{ Process Started: 0000000000400000 E:\temp\dynamic\test.exe ... DLL Loaded: 0000000070D00000 R:\GHC\libHSghc- prim-0.5.0.0-ghc8.1.20160628.dll DLL Loaded: 0000000067240000 R:\GHC\libHSrts-ghc8.1.20160628.dll ... DLL Loaded: 0000000069F80000 R:\GHC\libHSbase-4.9.0.0-ghc8.1.20160628.dll ... DLL Loaded: 000000006B740000 R:\GHC\libffi-6.dll ... DLL Loaded: 0000000069780000 R:\GHC\libHSinteger- gmp-1.0.0.1-ghc8.1.20160628.dll }}} Approach is written https://ghc.haskell.org/trac/ghc/wiki/WindowsDynamicLinking here and I'll keep updating it as I go. Code is not done but changes can be seen https://github.com/Mistuke/ghc/pull/5 on my Github. The major limitation in this version is that only the normal `rts` can be used. Due to the fact that we can't link with unknown symbols on Windows in the final link. After talking to `rwbarton` I believe this can be solved by a Windows version of #10352 and so temporarily stopping work on this so I can take a look at #10352 instead. Remaining: - Figure out the `ASSERT` failures in `compiler/stgSyn/CoreToStg.hs` - Fix dist building to include split dlls if split occurs - Implement mechanism to select right `rts` version. - Clean up code For reference, the sizes of the produced `dlls` are now also a tad smaller {{{ 695960 /r/GHC/libHSarray-0.5.1.1-ghc8.1.20160628.dll 11997540 /r/GHC/libHSbase-4.9.0.0-ghc8.1.20160628.dll 770941 /r/GHC/libHSbinary-0.8.3.0-ghc8.1.20160628.dll 1222357 /r/GHC/libHSbytestring-0.10.8.1-ghc8.1.20160628.dll 17275289 /r/GHC/libHSCabal-1.25.0.0-ghc8.1.20160628.dll 2327994 /r/GHC/libHScontainers-0.5.7.1-ghc8.1.20160628.dll 183756 /r/GHC/libHSdeepseq-1.4.2.0-ghc8.1.20160628.dll 386058 /r/GHC/libHSdirectory-1.2.6.2-ghc8.1.20160628.dll 224319 /r/GHC/libHSfilepath-1.4.1.0-ghc8.1.20160628.dll 47179898 /r/GHC/libHSghc-8.1-ghc8.1.20160628.dll 583840 /r/GHC/libHSghc-boot-8.1-ghc8.1.20160628.dll 476365 /r/GHC/libHSghc-boot-th-8.1-ghc8.1.20160628.dll 2004675 /r/GHC/libHSghci-8.1-ghc8.1.20160628.dll 3144663 /r/GHC/libHSghc-prim-0.5.0.0-ghc8.1.20160628.dll 1721465 /r/GHC/libHShaskeline-0.7.2.3-ghc8.1.20160628.dll 894721 /r/GHC/libHShoopl-3.10.2.1-ghc8.1.20160628.dll 318805 /r/GHC/libHShpc-0.6.0.3-ghc8.1.20160628.dll 761724 /r/GHC/libHSinteger-gmp-1.0.0.1-ghc8.1.20160628.dll 668894 /r/GHC/libHSpretty-1.1.3.3-ghc8.1.20160628.dll 264811 /r/GHC/libHSprocess-1.4.2.0-ghc8.1.20160628.dll 1680082 /r/GHC/libHSrts_debug-ghc8.1.20160628.dll 2182245 /r/GHC/libHSrts_l-ghc8.1.20160628.dll 1796551 /r/GHC/libHSrts_thr_debug-ghc8.1.20160628.dll 2466036 /r/GHC/libHSrts_thr_l-ghc8.1.20160628.dll 2206968 /r/GHC/libHSrts_thr-ghc8.1.20160628.dll 1949321 /r/GHC/libHSrts-ghc8.1.20160628.dll 4638331 /r/GHC/libHStemplate-haskell-2.11.0.0-ghc8.1.20160628.dll 1448186 /r/GHC/libHStime-1.6.0.1-ghc8.1.20160628.dll 1494791 /r/GHC/libHStransformers-0.5.2.0-ghc8.1.20160628.dll 2644212 /r/GHC/libHSWin32-2.3.1.1-ghc8.1.20160628.dll }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/5987#comment:58 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC