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