On 3 June 2015 at 01:47, John D Groenveld <jdg...@elvis.arl.psu.edu> wrote:
> In message 
> <CADED=K74mJPpYcYyU5NkXku6r6LAJDtb=5tavbzbk_g5z-l...@mail.gmail.com>
> , Steve Hay writes:
>>Please download, test, and report back on this release candidate of
>>the long-awaited mod_perl 2.0.9.
>
> Not good.
>
> $ cat /etc/release
>   OmniOS v11 r151014
>   Copyright 2015 OmniTI Computer Consulting, Inc. All rights reserved.
>   Use is subject to license terms.
>
>
> $ perl -V
> Summary of my perl5 (revision 5 version 20 subversion 2) configuration:
>
>   Platform:
>     osname=solaris, osvers=2.11, archname=i86pc-solaris-64
>     uname='sunos bernice 5.11 omnios-10b9c79 i86pc i386 i86pc '
>     config_args='-Dprefix=/opt/apache2/perl-5.20.2 -Dcc=gcc -Duseshrplib 
> -Uusemymalc -Duselargefiles -Ubincompat5005 -Doptimize=-O3 -Duse64bitall'
>     hint=recommended, useposix=true, d_sigaction=define
>     useithreads=undef, usemultiplicity=undef
>     use64bitint=define, use64bitall=define, uselongdouble=undef
>     usemymalloc=n, bincompat5005=undef
>   Compiler:
>     cc='gcc', ccflags ='-m64 -fwrapv -fno-strict-aliasing -pipe 
> -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
> -DPERL_USE_SAFE_PUTENV',
>     optimize='-O3',
>     cppflags='-m64 -fwrapv -fno-strict-aliasing -pipe -fstack-protector'
>     ccversion='', gccversion='4.8.1', gccosandvers=''
>     intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
>     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
>     ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', 
> lseeksize=8
>     alignbytes=8, prototype=define
>   Linker and Libraries:
>     ld='gcc', ldflags =' -m64 -fstack-protector -L/usr/gnu/lib '
>     libpth=/opt/gcc-4.8.1/lib 
> /opt/gcc-4.8.1/lib/gcc/i386-pc-solaris2.11/4.8.1/include-fixed /usr/lib 
> /usr/gnu/lib /usr/ccs/lib
>     libs=-lsocket -lnsl -ldl -lm -lc
>     perllibs=-lsocket -lnsl -ldl -lm -lc
>     libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
>     gnulibc_version=''
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='  -R 
> /opt/apache2/perl-5.20.2/lib/5.20.2/i86pc-solaris-64/CORE'
>     cccdlflags='-fPIC', lddlflags=' -shared -m64 -L/usr/gnu/lib 
> -fstack-protector'
>
>
> Characteristics of this binary (from libperl):
>   Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
>                         PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
>                         PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
>                         PERL_USE_SAFE_PUTENV USE_64_BIT_ALL USE_64_BIT_INT
>                         USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
>                         USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
>                         USE_PERL_ATOF
>   Built under solaris
>   Compiled at Mar 27 2015 17:54:42
>   @INC:
>     /opt/apache2/perl-5.20.2/lib/site_perl/5.20.2/i86pc-solaris-64
>     /opt/apache2/perl-5.20.2/lib/site_perl/5.20.2
>     /opt/apache2/perl-5.20.2/lib/5.20.2/i86pc-solaris-64
>     /opt/apache2/perl-5.20.2/lib/5.20.2
>     .
>
>
> $ /opt/apache2/bin/httpd -V
> Server version: Apache/2.2.29 (Unix)
> Server built:   Dec 14 2014 18:03:56
> Server's Module Magic Number: 20051115:36
> Server loaded:  APR 1.5.1, APR-Util 1.5.3
> Compiled using: APR 1.5.1, APR-Util 1.5.3
> Architecture:   64-bit
> Server MPM:     Prefork
>   threaded:     no
>     forked:     yes (variable process count)
> Server compiled with....
>  -D APACHE_MPM_DIR="server/mpm/prefork"
>  -D APR_HAS_SENDFILE
>  -D APR_HAS_MMAP
>  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
>  -D APR_USE_PROC_PTHREAD_SERIALIZE
>  -D APR_USE_PTHREAD_SERIALIZE
>  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
>  -D APR_HAS_OTHER_CHILD
>  -D AP_HAVE_RELIABLE_PIPED_LOGS
>  -D DYNAMIC_MODULE_LIMIT=128
>  -D HTTPD_ROOT="/opt/apache2"
>  -D SUEXEC_BIN="/opt/apache2/bin/suexec"
>  -D DEFAULT_PIDLOG="logs/httpd.pid"
>  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
>  -D DEFAULT_LOCKFILE="logs/accept.lock"
>  -D DEFAULT_ERRORLOG="logs/error_log"
>  -D AP_TYPES_CONFIG_FILE="conf/mime.types"
>  -D SERVER_CONFIG_FILE="conf/httpd.conf"
>
>
> $ env 
> PATH=/opt/apache2/perl-5.20.2/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:/opt/gcc-4.8.1/bin:/usr/sfw/bin:/usr/gnu/bin
>  gmake
> Go
> cd "src/modules/perl" && gmake
> gmake[1]: Entering directory `/home/john/mod_perl-2.0.9-rc2/src/modules/perl'
> gcc -I/home/john/mod_perl-2.0.9-rc2/src/modules/perl 
> -I/home/john/mod_perl-2.0.9-rc2/xs -I/opt/apache2/include 
> -I/opt/apache2/include -I/usr/sfw/include -I/opt/apache2/include -m64 -fwrapv 
> -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE 
> -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV 
> -I/opt/apache2/perl-5.20.2/lib/5.20.2/i86pc-solaris-64/CORE -DMOD_PERL 
> -DMP_COMPAT_1X -DSOLARIS2=11 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -O3 
> -fPIC \
> -c modperl_filter.c && mv modperl_filter.o modperl_filter.lo
> In file included from mod_perl.h:32:0,
>                  from modperl_filter.c:17:
> modperl_filter.c: In function 'modperl_run_filter':
> modperl_error.h:42:9: error: unknown type name 'modperl_interp_t'
>          modperl_interp_t *interp = modperl_thx_interp_get(aTHX);        \
>          ^
> modperl_error.h:50:9: note: in expansion of macro 'MP_PUTBACK_IF_USED'
>          MP_PUTBACK_IF_USED();                                           \
>          ^
> modperl_filter.c:538:17: note: in expansion of macro 'MP_CROAK_PUTBACK'
>                  MP_CROAK_PUTBACK(MODPERL_FILTER_ERROR,
>                  ^
> modperl_error.h:42:36: warning: initialization makes pointer from integer 
> without a cast [enabled by default]
>          modperl_interp_t *interp = modperl_thx_interp_get(aTHX);        \
>                                     ^
> modperl_error.h:50:9: note: in expansion of macro 'MP_PUTBACK_IF_USED'
>          MP_PUTBACK_IF_USED();                                           \
>          ^
> modperl_filter.c:538:17: note: in expansion of macro 'MP_CROAK_PUTBACK'
>                  MP_CROAK_PUTBACK(MODPERL_FILTER_ERROR,
>                  ^
>

This looks like the same failure reported here with an unthreaded perl:

https://rt.cpan.org/Ticket/Display.html?id=102930#txn-1502924

Unfortunately, I can't reproduce that on Windows since the WinNT MPM
is threaded and hence requires a threaded perl to build with. However,
I think it's a failure introduced by r1682366, and (shooting in the
dark) I wonder if the patch below (also attached, although the patch
might have some Windows style EOLs) would fix it?

Index: src/modules/perl/modperl_error.h
===================================================================
--- src/modules/perl/modperl_error.h    (revision 1683243)
+++ src/modules/perl/modperl_error.h    (working copy)
@@ -37,6 +37,7 @@

 void modperl_croak(pTHX_ apr_status_t rc, const char* func);

+#ifdef USE_ITHREADS
 #define MP_PUTBACK_IF_USED() STMT_START                                 \
     {                                                                   \
         modperl_interp_t *interp = modperl_thx_interp_get(aTHX);        \
@@ -44,6 +45,9 @@
             modperl_interp_unselect(interp);                            \
         }                                                               \
     } STMT_END
+#else
+#define MP_PUTBACK_IF_USED() NOOP
+#endif

 #define MP_CROAK_PUTBACK(rc, func) STMT_START                           \
     {                                                                   \
Index: src/modules/perl/modperl_error.h
===================================================================
--- src/modules/perl/modperl_error.h	(revision 1683243)
+++ src/modules/perl/modperl_error.h	(working copy)
@@ -37,6 +37,7 @@
 
 void modperl_croak(pTHX_ apr_status_t rc, const char* func);
 
+#ifdef USE_ITHREADS
 #define MP_PUTBACK_IF_USED() STMT_START                                 \
     {                                                                   \
         modperl_interp_t *interp = modperl_thx_interp_get(aTHX);        \
@@ -44,6 +45,9 @@
             modperl_interp_unselect(interp);                            \
         }                                                               \
     } STMT_END
+#else
+#define MP_PUTBACK_IF_USED() NOOP
+#endif
 
 #define MP_CROAK_PUTBACK(rc, func) STMT_START                           \
     {                                                                   \

Reply via email to