I should probably expound a little on
the changes related to the new versioned
libgcc_ext shared library in gcc45. With
gcc 4.5.0, FSF gcc no longer builds or
packages its own copies of the versioned
libgcc_s.10.4 or libgcc_s.10.5. Rather it
relies entirely on the system copies for
linking. The versioned libgcc_ext.10.4
and libgcc_ext.10.5 provide all of the
symbols in the FSF gcc libgcc_s that aren't
listed in the system versioned libgcc's.
Finally, the linkage order will end up as...
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version
1.0.0)
/sw/lib/gcc4.5/lib/libgcc_s.1.dylib (compatibility version 1.0.0,
current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 111.1.5)
on Leopard. On Snow Leopard, all of the
libgcc symbols have been subsumed into
libSystem and those from the system
libgcc are ignored in favor of those
in libSystem. This behavior can not be
overridden.
Currently gcj is fully functional on
10.6 whereas on 10.5 we still have issues
with gcj compiling java source files (that now
extends to the powerpc architecture as
well). This is because on 10.6, we use
a compatibility-mode unwinder in libSystem
whereas in 10.5 we are now *always* using
the system libgcc rather than the FSF libgcc.
So in 10.5, we are using different unwinder
code from 10.6 and hence different sets of
bugs. I'll look into whether the problem can
be fixed by re-exporting a different subset of
FSF libgcc symbols to force their use under
10.5 (which was the fix for the issues
with 10.6).
A couple last issues to be aware on 10.6.
In order to fix exception handling, we had to
default the compilers to build with the
-no_compact_unwind linker option. This is
because the FSF gcc 4.5.0 compilers now emit
epilogue unwind info that the default compact
unwinder can't parse. Apple may reverse this
linker behavior in a later Xcode 3.2 update
or 10.7 such that the new compact unwinder
is an opt-in rather than an opt-out.
Finally, in order to allow for hot/cold
partitioning in profiling, we had to leverage
the fact that the 10.6 linker no longer requires
eh labels and so gcc45 doesn't emit those. This causes
linker noise on two testcases but is a bogus
issue that can be ignored. On 10.4/10.5, we
were forced to disable hot/cold partitioning
since it was impossible to fix at the moment.
Jack
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Fink-devel mailing list
[email protected]
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel