FAQ
I have had some failures with perl@15373

The following configuration fails t/uni/fold.t (segmentation fault)
and ext/Encode/t/CJKalias.t

Robin

Summary of my perl5 (revision 5.0 version 7 subversion 3 patch 15372) configuration:
Platform:
osname=solaris, osvers=2.7, archname=sun4-solaris-thread-multi
uname='sunos tempest 5.7 generic_106541-04 sun4u sparc sunw,ultra-5_10 '
config_args='-des -Dusedevel -Dcc=gcc -Dusethreads'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_REENTRANT -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-D_REENTRANT -fno-strict-aliasing -I/usr/local/include'
ccversion='', gccversion='2.95.2 19991024 (release)', gccosandvers='solaris2.7'
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='gcc', ldflags =' -L/usr/local/lib '
libpth=/usr/local/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -ldb -ldl -lm -lrt -lpthread -lc
perllibs=-lsocket -lnsl -ldl -lm -lrt -lpthread -lc
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'


--
Robin Barker | Email: Robin.Barker@npl.co.uk
CMSC, Building 10, | Phone: +44 (0) 20 8943 7090
National Physical Laboratory, | Fax: +44 (0) 20 8977 7091
Teddington, Middlesex, UK. TW11 OLW | WWW: http://www.npl.co.uk

Search Discussions

  • Jarkko Hietaniemi at Mar 21, 2002 at 6:29 pm

    On Thu, Mar 21, 2002 at 05:29:09PM +0000, Robin Barker wrote:
    I have had some failures with perl@15373

    The following configuration fails t/uni/fold.t (segmentation fault)
    and ext/Encode/t/CJKalias.t
    Well, the CJKalias was first fixed and then expanded and renamed...
    now it's Aliases.t, so it should be solved. But the t/uni/fold.t,
    hummm, I'm both glad and mad that you got it... namely, it's been
    bugging my Solaris tests for several weeks now. The thing is, I can't
    reproduce it elsewhere (especially in the platforms I have better
    debugging tools than gdb). Oh well, maybe I'll have to take a fresh
    look at it.

    (Any Purify-on-Solaris owners, please raise your hand...)

    --
    $jhi++; # http://www.iki.fi/jhi/
    # There is this special biologist word we use for 'stable'.
    # It is 'dead'. -- Jack Cohen
  • Jarkko Hietaniemi at Mar 21, 2002 at 8:23 pm

    On Thu, Mar 21, 2002 at 08:29:33PM +0200, Jarkko Hietaniemi wrote:
    On Thu, Mar 21, 2002 at 05:29:09PM +0000, Robin Barker wrote:
    I have had some failures with perl@15373

    The following configuration fails t/uni/fold.t (segmentation fault)
    and ext/Encode/t/CJKalias.t
    Well, the CJKalias was first fixed and then expanded and renamed...
    now it's Aliases.t, so it should be solved. But the t/uni/fold.t,
    hummm, I'm both glad and mad that you got it... namely, it's been
    bugging my Solaris tests for several weeks now. The thing is, I can't
    reproduce it elsewhere (especially in the platforms I have better
    debugging tools than gdb). Oh well, maybe I'll have to take a fresh
    ....and in Solaris, compiled with -g, run under gdb, the test doesn't
    crash. If run first and looking at the core dump a memory corruption
    of some sort looks likely, a valid SV* going in into sv_setiv() is
    broken (0x41...) when it arrives at the sv_setiv()...

    --
    $jhi++; # http://www.iki.fi/jhi/
    # There is this special biologist word we use for 'stable'.
    # It is 'dead'. -- Jack Cohen
  • Jarkko Hietaniemi at Mar 21, 2002 at 8:32 pm

    On Thu, Mar 21, 2002 at 10:23:32PM +0200, Jarkko Hietaniemi wrote:
    On Thu, Mar 21, 2002 at 08:29:33PM +0200, Jarkko Hietaniemi wrote:
    On Thu, Mar 21, 2002 at 05:29:09PM +0000, Robin Barker wrote:
    I have had some failures with perl@15373

    The following configuration fails t/uni/fold.t (segmentation fault)
    and ext/Encode/t/CJKalias.t
    Well, the CJKalias was first fixed and then expanded and renamed...
    now it's Aliases.t, so it should be solved. But the t/uni/fold.t,
    hummm, I'm both glad and mad that you got it... namely, it's been
    bugging my Solaris tests for several weeks now. The thing is, I can't
    reproduce it elsewhere (especially in the platforms I have better
    debugging tools than gdb). Oh well, maybe I'll have to take a fresh
    ....and in Solaris, compiled with -g, run under gdb, the test doesn't
    crash. If run first and looking at the core dump a memory corruption
    of some sort looks likely, a valid SV* going in into sv_setiv() is
    broken (0x41...) when it arrives at the sv_setiv()...
    I'm starting to suspect a gcc bug... if I do the PM_SETRE() in pp_ctl.c:112
    (which is where things go wrong) in two steps (first fetch the sv, then
    set the iv), no crash. IIRC with Sun cc, no crash. And other platforms,
    no crash, and Tru64's Third Degree sees nothing fishy. I'll retry
    with Sun cc, and if it doesn't crash, I'll rework the PM_SETRE().

    --
    $jhi++; # http://www.iki.fi/jhi/
    # There is this special biologist word we use for 'stable'.
    # It is 'dead'. -- Jack Cohen
  • Jarkko Hietaniemi at Mar 21, 2002 at 9:22 pm
    Change 15400 by jhi@alpha on 2002/03/21 20:19:31

    It seems that the strange failure (core dump) of
    t/uni/fold.t on ithreads Solaris builds is a gcc bug:
    (1) using Sun's cc helps
    (2) rewriting the ithreads PM_SETRE() to do the
    setting in two steps helps
    (3) no other platforms have the crash
    (4) Tru64's Third Degree sees nothing evil
    So we implement (2).

    Affected files ...

    .... //depot/perl/op.h#110 edit

    Differences ...

    ==== //depot/perl/op.h#110 (text) ====
    Index: perl/op.h
    --- perl/op.h.~1~ Thu Mar 21 23:22:05 2002
    +++ perl/op.h Thu Mar 21 23:22:05 2002
    @@ -263,7 +263,7 @@

    #ifdef USE_ITHREADS
    #define PM_GETRE(o) (INT2PTR(REGEXP*,SvIVX(PL_regex_pad[(o)->op_pmoffset])))
    -#define PM_SETRE(o,r) (sv_setiv(PL_regex_pad[(o)->op_pmoffset], PTR2IV(r)))
    +#define PM_SETRE(o,r) STMT_START { SV* sv = PL_regex_pad[(o)->op_pmoffset]; sv_setiv(sv, PTR2IV(r)); } STMT_END
    #define PM_GETRE_SAFE(o) (PL_regex_pad ? PM_GETRE(o) : (REGEXP*)0)
    #define PM_SETRE_SAFE(o,r) if (PL_regex_pad) PM_SETRE(o,r)
    #else
    End of Patch.

    --
    $jhi++; # http://www.iki.fi/jhi/
    # There is this special biologist word we use for 'stable'.
    # It is 'dead'. -- Jack Cohen

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupperl5-porters @
categoriesperl
postedMar 21, '02 at 5:29p
activeMar 21, '02 at 9:22p
posts5
users2
websiteperl.org

2 users in discussion

Jarkko Hietaniemi: 4 posts Robin Barker: 1 post

People

Translate

site design / logo © 2022 Grokbase