Front page | perl.perl5.porters |
Postings from May 2013
[perl #118055] miniperl fails with SIGBUS on sparc (usethreads+use64bitint)
Thread Next
From:
Niko Tyni
Date:
May 19, 2013 19:51
Subject:
[perl #118055] miniperl fails with SIGBUS on sparc (usethreads+use64bitint)
Message ID:
rt-3.6.HEAD-2650-1368993057-1276.118055-75-0@perl.org
# New Ticket Created by Niko Tyni
# Please include the string: [perl #118055]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=118055 >
This is a bug report for perl from Niko Tyni <ntyni@debian.org>,
generated with the help of perlbug 1.39 running under perl 5.18.0.
-----------------------------------------------------------------
[ Sorry about the timing, it took a week for our sparc build server to get
round to building 5.18.0-RC1, and we got the result just hours after
the 5.18.0 release. ]
5.18.0 build fails on sparc with -Dusethreads -Duse64bitint.
miniperl gets a SIGBUS with just about any non-trivial program.
./miniperl -w -Ilib -MExporter -e '<?>' || /usr/bin/make minitest
./miniperl -Ilib make_patchnum.pl
make[1]: *** [lib/Config_git.pl] Bus error
An example backtrace:
Starting program: /home/ntyni/perl/miniperl -e s/a/b/
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/sparc-linux-gnu/libthread_db.so.1".
Program received signal SIGBUS, Bus error.
0x0002ffcc in Perl_newPMOP (my_perl=0x26e008, type=33, flags=0) at op.c:4458
4458 pmop->op_pmoffset = av_len(PL_regex_padav);
(gdb) bt
#0 0x0002ffcc in Perl_newPMOP (my_perl=0x26e008, type=33, flags=0) at op.c:4458
#1 0x0008c56c in S_scan_subst (my_perl=0x26e008, start=0x28c8f1 "/a/b/\n") at toke.c:9650
#2 0x0008421c in Perl_yylex (my_perl=0x26e008) at toke.c:8353
#3 0x000957e8 in Perl_yyparse (my_perl=0x26e008, gramtype=258) at perly.c:341
#4 0x00018294 in S_parse_body (my_perl=0x26e008, env=0x0, xsinit=0x4cfa4 <xs_init>) at perl.c:2309
#5 0x00016d94 in perl_parse (my_perl=0x26e008, xsinit=0x4cfa4 <xs_init>, argc=3, argv=0xffffdd04,
env=0x0) at perl.c:1626
#6 0x0004ce68 in main (argc=3, argv=0xffffdd04, env=0xffffdd14) at miniperlmain.c:111
This is also
http://bugs.debian.org/708792
and a full build log is at
https://buildd.debian.org/status/fetch.php?pkg=perl&arch=sparc&ver=5.18.0~rc1-1&stamp=1368891868
Perlbugging this with a non-threaded build. All the tests pass with that.
The actual Configure arguments used for testing were
./Configure -Doptimize="-g -O0" -des -Dusethreads -Duse64bitint
and both -Dusethreads -Duse64bitint are needed to trigger it.
Seen with gcc 4.4, 4.6 and 4.8, at both -O0 and -O2.
Also tried -DDEBUGGING with no visible difference.
Bisecting says the first bad commit is
commit 8be227ab5eaa23f2d21fd15f70190e494496dcbe
Author: Father Chrysostomos <sprout@cpan.org>
Date: Sat Jun 23 09:54:31 2012 -0700
CV-based slab allocation for ops
-----------------------------------------------------------------
---
Flags:
category=core
severity=high
---
Site configuration information for perl 5.18.0:
Configured by ntyni at Sun May 19 16:39:10 UTC 2013.
Summary of my perl5 (revision 5 version 18 subversion 0) configuration:
Commit id: a9acda3b5f74585852a57b51b724804ac586cb0b
Platform:
osname=linux, osvers=2.6.32-5-sparc64-smp, archname=sparc-linux-64int
uname='linux smetana 2.6.32-5-sparc64-smp #1 smp mon feb 25 02:19:08 utc 2013 sparc gnulinux '
config_args='-Doptimize=-g -O0 -des -Duse64bitint'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-g -O0',
cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.6.3', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=87654321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/sparc-linux-gnu /lib/../lib /usr/lib/sparc-linux-gnu /usr/lib/../lib /lib /usr/lib /lib64 /usr/lib64
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.13'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags=' -fPIC', lddlflags='-shared -g -O0 -L/usr/local/lib -fstack-protector'
Locally applied patches:
---
@INC for perl 5.18.0:
lib
/usr/local/lib/perl5/site_perl/5.18.0/sparc-linux-64int
/usr/local/lib/perl5/site_perl/5.18.0
/usr/local/lib/perl5/5.18.0/sparc-linux-64int
/usr/local/lib/perl5/5.18.0
.
---
Environment for perl 5.18.0:
HOME=/home/ntyni
LANG=en_US.UTF-8
LANGUAGE (unset)
LC_CTYPE=fi_FI.UTF-8
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
PERL_BADLANG (unset)
SHELL=/bin/zsh
Thread Next
-
[perl #118055] miniperl fails with SIGBUS on sparc (usethreads+use64bitint)
by Niko Tyni