Too many symbols

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Too many symbols

Simon Peyton Jones
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 $
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20131120/b4bceb21/attachment.html>

Reply | Threaded
Open this post in threaded view
|

Too many symbols

Kyra-3
I had a similar problem until I removed these lines:

ifeq "$(PlatformSupportsSharedLibs)" "YES"
GhcLibWays += dyn
endif

from my build.mk.

On 11/21/2013 01:11, Simon Peyton-Jones 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20131121/25bac64c/attachment.html>

Reply | Threaded
Open this post in threaded view
|

Too many symbols

Simon Peyton Jones
In reply to this post by Simon Peyton Jones
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