Hi there again! After hours and hours of sitting behind the compiler, we are almost certain that the problem is with the -fdelayed-branch optimization.
Compiling perl with -O2 -fno-delayed-branch in hppa works fine. I have prepared a small patch that forces pp_pack.c (the troublesome one) to be compiled with -fno-delayed-branch. This makes the package build, only reducing the optimization for pp_pack.c. Apparently, the optimization also had to be adjusted for arm, so this problem has some precedent. I'm waiting for reports on how this builds on a mips or mipsel box, but it's difficult, since I don't have access to one. It is our understanding that this is actually a gcc bug, that when performing this optimization in hppa (at least) does not do it correctly. Adding a trivial line (like "counter++;") in the middle of the while loop in pp_pack.c, makes this bug go away; which serves to show how this smells badly of a compiler bug. We are still looking at it, in order to find the root cause. But perl can probably be uploaded with the provided patch -- Love, Marga
diff -u perl-5.8.8/cflags.SH perl-5.8.8/cflags.SH --- perl-5.8.8/cflags.SH +++ perl-5.8.8/cflags.SH @@ -113,6 +113,8 @@ case $archname in arm-*|armeb-*) optimize=-Os;; + hppa-*|mips-*|mipsel-*) + optimize="$optimize -fno-delayed-branch";; esac;; pp_sys) ;; regcomp) ;;