On Tue, 2005-07-12 at 13:27 +0100, Simon Marlow wrote:
> On 12 July 2005 13:14, Axel Simon wrote:
> 
> > On Tue, 2005-07-12 at 12:54 +0100, Simon Marlow wrote:
> >> On 12 July 2005 11:52, Christian Maeder wrote:
> >> 
> >>> Sven Panne wrote:
> >>>> FYI: I've just committed a fix to CVS HEAD for GHC on SPARC to
> >>>> reduce the register pressure on gcc, which will probably make its
> >>>> way into GHC 6.4.1. The OpenGL/GLUT packages compile fine now with
> >>>> gcc 3.4.4 on SPARC, success stories and/or tragic failures with
> >>>> this patch are highly welcome...
> >>> 
> >>> Good, I'm trying to create a release. Would you also dare to look
> >>> into the mangler to fix the linking problem of ghci? Or do you have
> >>> clue how to do this, Simon?
> >> 
> >> Sorry, I don't have any idea what's causing that problem.
> > 
> > ...but it would be nice to get it fixed. The symbol seens to stem from
> > ghc/compiler/cmm/CLabel.hs where it says:
> > 
> > pprCLbl ModuleRegdLabel
> >   = ptext SLIT("_module_registered")
> > 
> > Is this meant to be an external symbol? And what does it do?
> 
> _module_registered is a single word-sized variable in every module.  The
> symbol is supposed to be local, and hence not visible to other modules
> (otherwise it clashes, of course).  On Sparc, it appears that something
> is going wrong either in the mangler or the splitter or the linker, and
> this symbol is leaking(?).
> 
> You could check whether it is indeed local as it is supposed to be in
> the library modules.  eg. if I say 'nm libHSbase.a | grep
> module_registered' on Linux, I get nothing back.

[EMAIL PROTECTED]:~/source/ghc-6.4-branch:519$ nm libraries/base/libHSbase.a |
grep module_registered
[11]    |         4|       4|OBJT |GLOB |0    |COMMON |
_module_registered
[23]    |         4|       4|OBJT |GLOB |0    |COMMON |
_module_registered
[11]    |         4|       4|OBJT |GLOB |0    |COMMON |
_module_registered
[9]     |         4|       4|OBJT |GLOB |0    |COMMON |
_module_registered
[9]     |         4|       4|OBJT |GLOB |0    |COMMON |
_module_registered
[10]    |         4|       4|OBJT |GLOB |0    |COMMON |
_module_registered

...and so on. So it is global in every single source file. Do I know
check how the .c file looks like? The symbol is defined in e.g.
Arrow__84.o

Axel.


_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to