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) ;;