Right GhcLibWays=v did the job, thanks Simon | -----Original Message----- | From: Austin Seipp [mailto:aseipp@pobox.com] | Sent: 21 November 2013 12:13 | To: Simon Peyton-Jones | Cc: ghc-devs@haskell.org Devs | Subject: Re: Too many symbols | | Hi Simon, | | I believe I've found the problem. The issue is that even with | DYNAMIC_* variables set, GhcLibWays still contains the 'dyn' way as | opposed to just the 'vanilla' way. If you do: | | $ make show VALUE=GhcLibWays | | in your build tree, it will probably say "v dyn", indicating it'll | build the GHC DLL as well as vanilla objects. This makes sense since | we rebuild using different ways in a lot of cases - dynamic-too is | just a special case, and the other variables (DYNAMIC_TOO, | DYNAMIC_GHC_PROGRAMS and DYNAMIC_BY_DEFAULT) don't make a difference | here. | | In the short term, you can hardcode GhcLibWays=v in your build | settings, but the default templates should perhaps expose something | more sensible. (They should also precisely document the impact of | these variables too.) | | On Wed, Nov 20, 2013 at 3:11 PM, Simon Peyton-Jones | <simonpj@microsoft.com> wrote: | > Friends | > | > I’m getting the dreaded “Too many symbols in DLL” problem on Windows | (see | > below). | > | > I believe I can get round it by using static linking only, yes? But | how do | > I do that? I have | > | > DYNAMIC_BY_DEFAULT = NO | > | > DYNAMIC_GHC_PROGRAMS = NO | > | > in my validate.mk, but it still happens. Static only will do me | fine! | > | > Thanks! | > | > Simon | > | > | > | > Number of symbols in | > compiler/stage2/build/libHSghc-7.7.20131119-0-ghc7.7.20131119.dll: | 69595 | > | > case `C:/code/HEAD/inplace/mingw/bin/objdump.exe -p | > compiler/stage2/build/libHSghc-7.7.20131119-0-ghc7.7.20131119.dll | | sed -n | > "1,/^.Ordinal\/Name Pointer/ D; p; /^$/ q" | grep "\[ *0\]" | wc -l` | in 1) | > echo DLL compiler/stage2/build/libHSghc-7.7.20131119-0- | ghc7.7.20131119.dll | > OK;; 0) echo No symbols in DLL | > compiler/stage2/build/libHSghc-7.7.20131119-0-ghc7.7.20131119.dll; | exit 1;; | > [0-9]*) echo Too many symbols in DLL | > compiler/stage2/build/libHSghc-7.7.20131119-0-ghc7.7.20131119.dll; | > C:/code/HEAD/inplace/mingw/bin/objdump.exe -p | > compiler/stage2/build/libHSghc-7.7.20131119-0-ghc7.7.20131119.dll | | sed -n | > "1,/^.Ordinal\/Name Pointer/ D; p; /^$/ q" | tail; exit 1;; *) echo | bad DLL | > compiler/stage2/build/libHSghc-7.7.20131119-0-ghc7.7.20131119.dll; | exit 1;; | > esac | > | > Too many symbols in DLL | > compiler/stage2/build/libHSghc-7.7.20131119-0-ghc7.7.20131119.dll | > | > [4050] ghczm7zi7zi20131119_Var_zdfUniquableVar_closure | > | > [4051] ghczm7zi7zi20131119_Var_zdfUniquableVar_info | > | > [4052] ghczm7zi7zi20131119_Var_zdwsetVarUnique_closure | > | > [4053] ghczm7zi7zi20131119_Var_zdwsetVarUnique_info | > | > [4054] ghczm7zi7zi20131119_Var_zdwupdateTyVarKindM_closure | > | > [4055] ghczm7zi7zi20131119_Var_zdwupdateTyVarKindM_info | > | > [4056] ghczm7zi7zi20131119_Var_zdwzdcgmapMp_closure | > | > [4057] ghczm7zi7zi20131119_Var_zdwzdcgmapMp_info | > | > [4058] setHeapSize | > | > | > | > compiler/ghc.mk:472: recipe for target | > 'compiler/stage2/build/libHSghc-7.7.20131119-0-ghc7.7.20131119.dll' | failed | > | > make[1]: *** | > [compiler/stage2/build/libHSghc-7.7.20131119-0-ghc7.7.20131119.dll] | Error 1 | > | > make[1]: *** Deleting file | > 'compiler/stage2/build/libHSghc-7.7.20131119-0-ghc7.7.20131119.dll' | > | > Makefile:64: recipe for target 'all' failed | > | > make: *** [all] Error 2 | > | > HEAD $ | > | > | > _______________________________________________ | > ghc-devs mailing list | > ghc-devs@haskell.org | > http://www.haskell.org/mailman/listinfo/ghc-devs | > | | | | -- | Regards, | Austin - PGP: 4096R/0x91384671
participants (1)
-
Simon Peyton-Jones