On Oct 20, 2008, at 12:49, Michael wrote:
Try to reproduce it in gdb, see if there's a pattern in what
triggers it in different binaries. You mentioned simple Hello World
type programs triggering it - you may want to try different
compiler settings ( optimization and such )
Sadly, it seems to be inconsistent based on compilation. One of
the perl tests that was failing, consistently, gdb showed:
Program received signal SIGILL, Illegal instruction.
0x0000000041502fc0 in __cxa_finalize@plt ()
from /data/obj/lang/perl5/work/perl-5.10.0/t/../lib/auto/PerlIO/
scalar/scalar
.so
(gdb) where
#0 0x0000000041502fc0 in __cxa_finalize@plt ()
from /data/obj/lang/perl5/work/perl-5.10.0/t/../lib/auto/PerlIO/
scalar/scalar
.so
#1 0x0000000041401acc in ?? ()
from /data/obj/lang/perl5/work/perl-5.10.0/t/../lib/auto/PerlIO/
scalar/scalar
.so
#2 0x0000000041401acc in ?? ()
from /data/obj/lang/perl5/work/perl-5.10.0/t/../lib/auto/PerlIO/
scalar/scalar
.so
Previous frame identical to this frame (corrupt stack?)
(gdb)
However, I performed a "make clean" for pkgsrc/lang/perl5, and then
rebuilt it (with a simple "make"), and now it's passing it's tests.
Including ones it had previously consistently failed on.
Apparently, the same input to the build-chain can produce binaries
that do or don't exhibit this problem.
This will be a nightmare to trace. :-( Maybe I should just swap
in Ultra-II processors....