# New Ticket Created by Andy Dougherty # Please include the string: [perl #20355] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=20355 >
I don't think the ifdef logic is quite right in cpu_dep.c. Specifically, if either __sparc or __ia64__ is defined, then *both* the cpu-dependent register flushing *and* the setjmp-using register flushing tricks are used. This actually shows up as a syntax error on the "frivolous" tinderbox. The enclosed patch changes the logic to what I suspect was actually intended. --- parrot-current/cpu_dep.c Sat Jan 4 03:00:09 2003 +++ parrot-andy/cpu_dep.c Thu Jan 16 13:49:32 2003 @@ -26,7 +26,7 @@ trace_system_areas(struct Parrot_Interp *interpreter) { -#ifdef __sparc /* Flush register windows */ +#if defined(__sparc) /* Flush register windows */ static union { int insns[4]; double align_hack[2]; @@ -42,10 +42,8 @@ static void (*fn_ptr)(void) = (void (*)(void))&u.align_hack[0]; fn_ptr(); -#endif - -#ifdef __ia64__ +#elif defined(__ia64__) struct ucontext ucp; void *current_regstore_top; -- Andy Dougherty [EMAIL PROTECTED]