#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