Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Jun 2009 15:26:12 +1100
From:      Dima Panov <Fluffy@fluffy.khv.ru>
To:        freebsd-ports-bugs@freebsd.org
Cc:        shaun@freebsd.org
Subject:   Re: ports/135974: innd core dumps with newer versions of libperl
Message-ID:  <200906251526.15521.Fluffy@fluffy.khv.ru>
In-Reply-To: <4A42D9D2.7020306@p6m7g8.com>
References:  <200906231837.n5NIbC8i093066@www.freebsd.org> <200906251050.17659.Fluffy@fluffy.khv.ru> <4A42D9D2.7020306@p6m7g8.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 25 June 2009 12:58:42 Philip M. Gollucci wrote:
> Have you submitted this to p5p ?

No, I found this in innd mail lists and use this locally since problem was appear at 
perl5.8.9 commit. Maintainer was been informed in ports-busg@, but no answer.
BTW, some times ago (18 May 2009) new update was submitted == ports/134618: news/inn 
update to 2.4.6, and no answer from maintainer again.


> Actually its looks like a gcc optimization bug similiar to one that
> affected www/mod_perl recently
>
>
> http://lists.cpan.org/showlist.cgi?name=perl5-porters
>
> >> Building innd-2.4.5 and perl-5.10.0_3 from ports ends up with innd
> >> segmentation faulting in libperl.so whenever it tries to start.
> >
> > --- lib/perl.c.orig	2008-06-30 04:56:57.000000000 +1100
> > +++ lib/perl.c	2009-02-11 00:49:49.000000000 +1000
> > @@ -110,14 +110,18 @@
> >      if (PerlCode == NULL) {
> >          /* Perl waits on standard input if not called with '-e'. */
> >          int argc = 3;
> > -        const char *argv[] = { "innd", "-e", "0", NULL };
> > -        char *env[]  = { NULL };
> > +        const char *argv_innd[] = { "innd", "-e", "0", NULL };
> > +        char **argv = (char **)argv_innd; /* Cast required by Perl 5.10.
> > */ +        char **env  = { NULL };
> >  #ifdef PERL_SYS_INIT3
> >          PERL_SYS_INIT3(&argc, &argv, &env);
> >  #endif
> >          PerlCode = perl_alloc();
> >          perl_construct(PerlCode);
> > -        perl_parse(PerlCode, xs_init, argc, (char **)argv, env) ;
> > +#ifdef PERL_EXIT_DESTRUCT_END
> > +        PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
> > +#endif
> > +        perl_parse(PerlCode, xs_init, argc, argv, env) ;
> >      }
> >
> >      if (startupfile != NULL && filterfile != NULL) {
>

-- 
Dmitry "Red Fox" Panov @ Home | KDE@FreeBSD Team | FreeBSD since September 1995
Khabarovsk, Russia     | Skype:dima.panov | Jabber.org:fluffy.khv | ICQ:1745024



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906251526.15521.Fluffy>