Too many symbols

Simon Peyton-Jones simonpj at microsoft.com
Thu Nov 21 19:05:06 UTC 2013


Right GhcLibWays=v did the job, thanks

Simon

| -----Original Message-----
| From: Austin Seipp [mailto:aseipp at pobox.com]
| Sent: 21 November 2013 12:13
| To: Simon Peyton-Jones
| Cc: ghc-devs at 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 at 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 at haskell.org
| > http://www.haskell.org/mailman/listinfo/ghc-devs
| >
| 
| 
| 
| --
| Regards,
| Austin - PGP: 4096R/0x91384671


More information about the ghc-devs mailing list