On Apr 19, 2005, at 1:12 AM, Matthew Sachs wrote:
In further testing, however, it seems that it also works with g++-3.3 on Tiger and no -fabi-version on Panther without the SDK. I've asked my coworkers for clarification on why we should be using the SDK in this situation.
Ok guys, I've talked with msachs some and apparently this actually works for him:
(Panther) make clean; make CC_LIB=g++ libbreak.dylib (Tiger) make CC=g++-3.3
Previously drm said this didn't work, so I'd like some more testing. Hopefully I had just explained things badly to drm and it really does work. Those with seeds can try the commands above. Or just in Tiger, do:
g++-3.3 -o break.o break.cpp; nm -m break.o | c++filt | grep typeinfo
If you get a bunch of 'datacoal' stuff, it's working. PLEASE TEST if you can, I'd like to be sure this actually works.
If this does work, then GCC 3.3 on Tiger can link to GCC 3.3 on Panther so long as -fabi-version is not used. But GCC 4.0 still cannot link to anything build without -fabi-version on Panther.
So one (new!) option is for 10.4-transitional to enforce g++-3.3 for C++ packages, and for neither 10.3 nor 10.4-transitional to use a -fabi-version flag. Advantage is thaty Fink users would be able to update fairly seamlessly as planned, nothing much should need rebuilding to move to Tiger. C-only packages can still use gcc-4.0.
Later we could move to 10.4 (non-transitional), doing the GCC 4.0 switch *and* the ABI 2 switch all at once for C++ packages. Or we could have some sort of piece-meal switch over, either package by package or based on some kind of auto-detection--that can be decided later.
The second option is to just move everybody to gcc-4.0 with ABI 1, make everybody rebuild everything. And then later move to ABI 2, and make everybody rebuild the C++ stuff again. Advantage is that the current 10.4-transitional tree ought to be fine for this.
Third option is to make a clean break (see Chris's solution), and go straight to 4.0 and ABI 2. Advantage is not having a transitional tree to maintain. Disadvantage is packages that don't work with the new GCC or ABI are in trouble.
So what do we think? I suggest that -core figure this out quickly, I'd rather have my favourite option not chosen but at least have a common goal to work towards, given the time constraints.
Dave
PGP.sig
Description: This is a digitally signed message part
