#4446: linker symbol name clashes between rts and system libs
------------------------+---------------------------------------------------
    Reporter:  duncan   |       Owner:                
        Type:  bug      |      Status:  new           
    Priority:  normal   |   Component:  Runtime System
     Version:  6.12.1   |    Keywords:                
    Testcase:           |   Blockedby:                
          Os:  Solaris  |    Blocking:                
Architecture:  sparc    |     Failure:  Other         
------------------------+---------------------------------------------------
 Since we are still using static linking then we still have problems with
 linker name clashes since it is just one massive global linker namespace.

 Example, while linking cabal, solaris ld reports:
 {{{
 Linking dist/build/cabal/cabal ...
 ld: warning: symbol `store' has differing types:
         (file /usr/lib/libnsl.so type=FUNC; file
 /opt/ghc/lib/ghc-6.12.1/libHSrts.a(Globals.o) type=OBJT);
         /opt/ghc/lib/ghc-6.12.1/libHSrts.a(Globals.o) definition taken
 ld: warning: symbol `store' has differing types:
         (file /usr/lib/libnsl.so type=FUNC; file
 /opt/ghc/lib/ghc-6.12.1/libHSrts.a(Globals.o) type=OBJT);
 }}}

 The symbol in question is in `rts/Global.c`:
 {{{
 static StgStablePtr store[MaxStoreKey];
 }}}

 This example got flagged up because the symbol type happens to be
 different (function vs data) but there must be loads of other examples
 where the symbol type is the same.

 I've no idea how to systematically eliminate these clashes, nor how
 serious it might be when we do not.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4446>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to