Blame hints/linux.pl

Packit 14c646
# gcc -O3 (and higher) can cause code produced from Storable.xs that
Packit 14c646
# dumps core immediately in recurse.t and retrieve.t, in is_storing()
Packit 14c646
# and last_op_in_netorder(), respectively.  In both cases the cxt is
Packit 14c646
# full of junk (and according to valgrind the cxt was never stack'd,
Packit 14c646
# malloc'd or free'd).  Observed in Debian 3.0 x86, with gccs 2.95.4
Packit 14c646
# 20011002 and 3.3, and in Redhat 7.1 with gcc 3.3.1. The failures
Packit 14c646
# happen only for unthreaded builds, threaded builds work okay.
Packit 14c646
use Config;
Packit 14c646
if ($Config{gccversion} and !$Config{usethreads}) {
Packit 14c646
    my $optimize = $Config{optimize};
Packit 14c646
    # works fine with gcc 4 or clang
Packit 14c646
    if ($optimize =~ s/(^| )-O[3-9]( |$)/$1-O2$2/ and $Config{gccversion} =~ /^[23]\./) {
Packit 14c646
	$self->{OPTIMIZE} = $optimize;
Packit 14c646
    }
Packit 14c646
}
Packit 14c646