In http://www.gnu-pascal.de/crystal/gpc/en/mail12869.html I wrote
- Third, we have to fix a problem in config/darwin-crt2 with a system
routine that is no longer present on i686-apple-darwin8 (see http://www.opensource.apple.com/darwinsource/WWDC2004/keymgr-9/ keymgr.c).
--- gcc/config/darwin-crt2.orig.c 2005-11-11 00:31:10.000000000 +0100 +++ gcc/config/darwin-crt2.c 2005-11-11 17:34:48.000000000 +0100 @@ -47,7 +47,14 @@ extern void __darwin_gcc3_preregister_frame_info (void);
/* These are from "keymgr.h". */
+/* _init_keymgr is no longer needed and it breaks the build on i686-apple-darwin8,
- see
http://www.opensource.apple.com/darwinsource/WWDC2004/keymgr-9/ keymgr.c */ +#ifdef __PPC__ extern void _init_keymgr (void); +#endif
- extern void *_keymgr_get_and_lock_processwide_ptr (unsigned key); extern void _keymgr_set_and_unlock_processwide_ptr (unsigned key,
void *ptr);
@@ -137,7 +144,9 @@ __darwin_gcc3_preregister_frame_info (void) { const _Tinfo_Node *info; +#ifdef __PPC__ _init_keymgr (); +#endif info = (_Tinfo_Node *)__keymgr_global[2]; if (info != NULL) {
That was wrong, I should have used __ppc__ instead of __PPC__ ! Interestingly, not calling _init_keymgr on powerpc-apple-darwin7 causes mir047h.pas to fail. Having a testsuite is really invaluable.
Regards,
Adriaan van Os