Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Jun 2009 21:58:42 -0400
From:      "Philip M. Gollucci" <pgollucci@p6m7g8.com>
To:        Dima Panov <Fluffy@fluffy.khv.ru>
Cc:        freebsd-ports-bugs@freebsd.org, shaun@freebsd.org
Subject:   Re: ports/135974: innd core dumps with newer versions of libperl
Message-ID:  <4A42D9D2.7020306@p6m7g8.com>
In-Reply-To: <200906251050.17659.Fluffy@fluffy.khv.ru>
References:  <200906231837.n5NIbC8i093066@www.freebsd.org> <200906251050.17659.Fluffy@fluffy.khv.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
Have you submitted this to p5p ?

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) {
> 
> 




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