On 23/01/2006, at 6:23 AM, Eric Botcazou wrote:
Attached is a patch to the 4.1 branch, I think it will apply to mainline too. Branch built fine on powerpc-apple-darwin8.4.0 with c,ada enabled.That's not sufficient: the compiler bootstraps fine, but all the ACATS testsfail to link: gnatlink a22006c.ali --GCC=/nile.build/botcazou/gnat6/powerpc-apple-darwin8/gcc/ xgcc -B/nile.build/botcazou/gnat6/powerpc-apple-darwin8/gcc/ /usr/bin/ld: warning -L: directory name (/nile.build/botcazou/gnat6/install_ppc/ lib/gcc/powerpc-apple-darwin8.0.0/4.1.0/adalib/) does not exist /usr/bin/ld: Undefined symbols: __Unwind_Resume __Unwind_ForcedUnwind __Unwind_GetDataRelBase __Unwind_GetIP __Unwind_GetLanguageSpecificData __Unwind_GetRegionStart __Unwind_GetTextRelBase __Unwind_RaiseException __Unwind_SetGR __Unwind_SetIP collect2: ld returned 1 exit statusSo, on Darwin, unlike any other platforms, you need to explicitly pass either -static-libgcc or -shared-libgcc to link the EH machinery. That seems weird.Geoff, any chance to bring Darwin back on par with the other platforms?
As I said before in this thread, the Ada driver should do what the C+ + driver does, which is to pass -shared-libgcc if it's going to need EH support. Or, you could pass -fexceptions to the link, which has the same effect.
No, it's not possible to let people safely 'just use EH' with no extra work. The issue is compatibility with the various Mac OS X versions, including future versions. Passing -static-libgcc creates an executable for which future binary compatibility is not guaranteed. Passing -shared-libgcc creates an executable which will not work before 10.3.9 because the library is not there.
smime.p7s
Description: S/MIME cryptographic signature