This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
RE: cygwin-1.3.11-3: still cannot compile perl-5.8
- From: "Green, Paul" <Paul dot Green at stratus dot com>
- To: "'Gerrit P. Haase'" <gp at familiehaase dot de>, Christopher Faylor <cygwin at cygwin dot com>
- Cc: perl5-porters at perl dot org
- Date: Tue, 25 Jun 2002 17:18:35 -0400
- Subject: RE: cygwin-1.3.11-3: still cannot compile perl-5.8
PerlLIO_link runs through a bunch of macros and ends up calling the POSIX
link function (hard links). Note that Configure only detects whether or not
you have a link() function available to be called; it never actually calls
it to see if it is operational. On operating systems where link() returns
ENOSYS every time it is called, you must add a line to the hints file that
sets d_link=undef. (See hints/vos.sh, because the VOS system is one that
provides a dummy link() function that always returns ENOSYS). Configure
will print a silly WHOA message about the discrepancy between the hint (no
link) and the libraries (link is there), but you can just ignore it.
PG
> -----Original Message-----
> From: Gerrit P. Haase [mailto:gp@familiehaase.de]
> Sent: Tuesday, June 25, 2002 3:45 PM
> To: Christopher Faylor
> Cc: perl5-porters@perl.org
> Subject: Re: cygwin-1.3.11-3: still cannot compile perl-5.8
>
>
> 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/