On 25/08/2010 16:37, Christian Maeder wrote:
Christian Maeder schrieb:
Simon Marlow schrieb:
On 23/08/2010 17:45, Brandon S Allbery KF8NH wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 8/23/10 11:57 , Christian Maeder wrote:
However, when I try to compile the simplest source with on older
gcc-3.4.4 I get the link error below, but only for the threaded rts!
With ghc-6.12.1 and gcc-4.x.y (x< 3) I did not have such a problem when
switching to a machine that only has gcc-3.4.4.
You got lucky; mixing GCC major versions like that is not expected (much
less guaranteed) to work in general. GCC evidently changed the way it
implements some thread support routines between gcc3 and gcc4.
Why should it not be possible to create object files (like also dynamic
libs) with (very) different compilers?
This is a case where the ABI changed between versions of gcc (I
presume). It rarely happens with C code, but happens more often with
C++, and, of course, in GHC we change the ABI with every single release
so you should be used to this by now :-)
In particular, thread-local variables, which are used by the parallel GC.
I'm just testing if I get runtime problems, but the linking error goes
away, if I put libgcc_eh.a from gcc-4.3.3 into ghc's libdir.
The hack seems to work, although it looks dangerous regarding other
symbols from libgcc_eh.a that should be in sync with the used gcc-3.4.4.
I wouldn't trust it. Why do you need to mix code compiled by two
different gcc versions?
Cheers,
Simon
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users