On 3 June 2015 at 01:47, John D Groenveld <[email protected]> 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 \
{ \