Subject: Re: cygwin-1.3.11-3: still cannot compile perl-5.8
From: "Gerrit P. Haase" <[email-masked]>
To: Christopher Faylor <[email-masked]>
Cc: [email-masked]
Date: Tue, 25 Jun 2002 21:44:33 +0200

Hallo Christopher,

Am Dienstag, 25. Juni 2002 um 20:51 schriebst du:

>>>>Still having problems compiling the Perl RC2.
>>>>It works well to build RC2 with the cygwin-1.3.11-1 testrelease.
>>>>Now that 1.3.11-3 is not a test release I need someone to verify
>>>>at another box that this is not a basically problem with my setup.
>>>>Everything works well up to then point miniperl is used to:
>>>>
>>>>make[1]: Entering directory `/sourcecode/perl/perl58/buildperl/x2p'
>>>>../miniperl -I../lib s2p.PL
>>>>Signal 11
>>>>make[1]: *** [s2p] Error 139
>>>>make[1]: Leaving directory `/sourcecode/perl/perl58/buildperl/x2p'
>>>>make: *** [x2p/s2p] Error 2
>>>>
>>>>$ cat miniperl.exe.stackdump
>>>>Exception: STATUS_ACCESS_VIOLATION at eip=77F34AC4
>>>>eax=00000000 ebx=00233378 ecx=FFFFFFFF edx=FFFFFFFF esi=0000000C edi=0000000C
>>>>ebp=0022F3C0 esp=0022F394 program=d:\sourcecode\perl\perl58\buildperl\miniperl.exe
>>>>cs=001B ds=0023 es=0023 fs=0038 gs=0000 ss=0023
>>>>Stack trace:
>>>>Frame     Function  Args
>>>>0022F3C0  77F34AC4  (00000000, 00000000, 0000000C, FFFFFFFF)
>>>>0022FCE0  6107120A  (0A0B0AB4, 0A0BA5C8, 0022FD20, 00477B6A)
>>>>0022FD20  0049262F  (0A010450, 61681570, 0022FD70, 00435D46)
>>>>0022FD50  0048990D  (0A010450, 0A018010, 0A019818, 00000001)
>>>>0022FD80  00415671  (0A010450, 00000001, 0022FE98, 004531B3)
>>>>0022FEB0  00415343  (0A010450, 00000001, 0022FEE0, 00401069)
>>>>0022FEE0  004010D7  (00000003, 61681570, 0A010278, 77F75B75)
>>>>0022FF30  61005A9E  (00000008, FFFFFFFE, 000000E0, 610C08A0)
>>>>0022FF90  61005D28  (00000000, 00000000, 00000246, 8011748B)
>>>>0022FFB0  004BE312  (00401040, 037F0009, 0022FFF0, 77F1B9EA)
>>>>0022FFC0  0040103C  (0022E640, 6104BD1C, 7FFDF000, 7FFDF000)
>>>>0022FFF0  77F1B9EA  (00401000, 00000000, 000000B0, 00000100)
>>>>End of stack trace
>>
>>> Seems like running miniperl in gdb would be instructive.  You'd need to
>>> have debugging symbols in miniperl, of course.
>>
>>> I used to debug stuff like this all of the time when I was maintaining
>>> perl for cygwin.
>>
>>(gdb) run -Ilib utils/c2ph.PL
>>Starting program: /sourcecode/perl/perl58/buildperl/miniperl.exe -Ilib utils/c2ph.PL
>>
>>Program received signal SIGSEGV, Segmentation fault.
>>0x77f34ac4 in _libkernel32_a_iname ()
>>
>>(gdb) bt
>>#0  0x77f34ac4 in _libkernel32_a_iname ()
>>#1  0xffffffff in ?? ()
>>#2  0x6107120a in _libkernel32_a_iname ()
>>#3  0x0049cfcf in Perl_pp_link (my_perl=0xa013cf0) at pp_sys.c:3556
>                    ^^^^^^^^^^^                         ^^^^^^^^^^^^^

> What function is this calling?

PP(pp_link)
{
#ifdef HAS_LINK
    dSP; dTARGET;
    STRLEN n_a;
    char *tmps2 = POPpx;
    char *tmps = SvPV(TOPs, n_a);
    TAINT_PROPER("link");
    SETi( PerlLIO_link(tmps, tmps2) >= 0 ); <----3556
    RETURN;
#else
    DIE(aTHX_ PL_no_func, "link");
#endif
}

iperlsys.h:
#define PerlLIO_link(oldname, newname)                                  \
        (*PL_LIO->pLink)(PL_LIO, (oldname), (newname))

pp.h:
#define SETi(i)         STMT_START { sv_setiv(TARG, (IV)(i)); SETTARG; } STMT_END

-- 
"All faults& bugs are mine - Robert"
    from squid/acinclude.m4,   Sun Apr 21 05:21:21 2002

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/