You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Stas Bekman <st...@stason.org> on 2001/10/02 16:03:39 UTC
xs auto-prototyping doesn't work with 5.6.1?
In all XS files we disable prototypes in the boot section, but not in the
rest of the file, which means that by default the prototyping is enabled.
However with a stock 5.6.1 perl the prototypes are missing and therefore
in maintainer mode it won't build. I've even tried to explicitly specify
-prototypes in xsubpp args, but it ignores it.
cc1: warnings being treated as errors
Base64.c:35: warning: no previous prototype for
`XS_APR__Base64_decode_len'
Base64.c:51: warning: no previous prototype for
`XS_APR__Base64_encode_len'
Base64.c:70: warning: no previous prototype for `boot_APR__Base64'
with MP_MAINTAINER=0, it builds ignoring the warnings.
Building mod_perl with:
*** using lib/Apache/BuildConfig.pm
*** Makefile.PL options:
MP_APXS => /home/stas/httpd/prefork/bin/apxs
MP_CCOPTS => -DMP_IOBUFSIZE=16384 -Werror
MP_DEBUG => 1
MP_GENERATE_XS => 1
MP_LIBNAME => libmodperl
MP_MAINTAINER => 1
MP_TRACE => 1
MP_USE_DSO => 1
MP_USE_GTOP => 1
*** /home/stas/httpd/prefork/bin/httpd -V
Server version: Apache/2.0.26-dev
Server built: Sep 29 2001 01:53:12
Server's Module Magic Number: 20010825:0
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_FILE_BASED_SHM
-D APR_HAS_MMAP
-D APR_HAVE_IPV6
-D APR_USE_FCNTL_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT="/home/stas/httpd/prefork"
-D SUEXEC_BIN="/home/stas/httpd/prefork/sbin/suexec"
-D DEFAULT_ERRORLOG="logs/error_log"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
*** /home/stas/perl/5.6.1-ithread/bin/perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
Platform:
osname=linux, osvers=2.4.8-19mdk, archname=i686-linux-thread-multi
uname='linux hope.stason.org 2.4.8-19mdk #1 wed sep 5 16:41:25 cest 2001 i686 unknown '
config_args='-des -Dprefix=/home/stas/perl/5.6.1-ithread -Dusethreads -Doptimize=-g -Duseshrplib -Dusedevel'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-g',
cppflags='-D_REENTRANT -DDEBUGGING -fno-strict-aliasing -I/usr/local/include'
ccversion='', gccversion='2.96 20000731 (Mandrake Linux 8.1 2.96-0.62mdk)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=4, usemymalloc=n, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -lndbm -lgdbm -ldl -lm -lpthread -lc -lcrypt -lutil
perllibs=-lnsl -ldl -lm -lpthread -lc -lcrypt -lutil
libc=/lib/libc-2.2.4.so, so=so, useshrplib=true, libperl=libperl.so
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic -Wl,-rpath,/home/stas/perl/5.6.1-ithread/lib/5.6.1/i686-linux-thread-multi/CORE'
cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
Built under linux
Compiled at Oct 2 2001 21:45:35
@INC:
/home/stas/perl/5.6.1-ithread/lib/5.6.1/i686-linux-thread-multi
/home/stas/perl/5.6.1-ithread/lib/5.6.1
/home/stas/perl/5.6.1-ithread/lib/site_perl/5.6.1/i686-linux-thread-multi
/home/stas/perl/5.6.1-ithread/lib/site_perl/5.6.1
/home/stas/perl/5.6.1-ithread/lib/site_perl
.
_____________________________________________________________________
Stas Bekman JAm_pH -- Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide http://perl.apache.org/guide
mailto:stas@stason.org http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org
Re: back to the ./t/TEST -d issue
Posted by Doug MacEachern <do...@covalent.net>.
On Thu, 4 Oct 2001, Stas Bekman wrote:
> OK, I've looked more into it, here are the two problems:
>
> 1. it's impossible to gain control over gdb, since it's started via fork
> ("|bash), I've no idea how does it work for you (you said you can Ctrl-C it)
so it is set_ulimit() that is breaking things for you? that was my first
suspect, i thought you said commenting that out didn't help? or is it
something else?
> if I run the gdb process manually, it works (after about 1m of waiting)
>
> Can we use some other way to set the limit? e.g. in the Makefile, before
> the tests are run? And then restore it to the original? For manual run
> of ./t/TEST we can set it manually.
sure, set it in the Makefile. and have Apache::TestRun query the ulimit,
warning if ulimit -c unlimited needs to be set manually.
> 2. The second issue is that it takes ages to start. I'm still looking
> into dns/network problems suggested by Vivek.
does the 1m wait always happen or only with gdb?
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org
back to the ./t/TEST -d issue
Posted by Stas Bekman <st...@stason.org>.
Doug MacEachern wrote:
>>I wanted to build with 5.6.1 in yet another attempt to find out why
>>
>>gdb doesn't work with mod_perl for me. That's when I saw this problem.
>>
>
> but you can use gdb, you said yourself it works with:
> % gdb ~/apache/bin/httpd
> (gdb) run -DONE_PROCESS -d `pwd`/t -f `pwd`/t/conf/httpd.conf
>
> why t/TEST -d doesn't work, i have no idea.
OK, I've looked more into it, here are the two problems:
1. it's impossible to gain control over gdb, since it's started via fork
("|bash), I've no idea how does it work for you (you said you can Ctrl-C it)
if I run the gdb process manually, it works (after about 1m of waiting)
Can we use some other way to set the limit? e.g. in the Makefile, before
the tests are run? And then restore it to the original? For manual run
of ./t/TEST we can set it manually.
2. The second issue is that it takes ages to start. I'm still looking
into dns/network problems suggested by Vivek.
_____________________________________________________________________
Stas Bekman JAm_pH -- Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide http://perl.apache.org/guide
mailto:stas@stason.org http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org
Re: xs auto-prototyping doesn't work with 5.6.1?
Posted by Doug MacEachern <do...@covalent.net>.
On Thu, 4 Oct 2001, Stas Bekman wrote:
> How do we handle this? Or do we ignore 5.6.1 at this moment? and log it in todo?
ignore it.
>
> I wanted to build with 5.6.1 in yet another attempt to find out why
>
> gdb doesn't work with mod_perl for me. That's when I saw this problem.
but you can use gdb, you said yourself it works with:
% gdb ~/apache/bin/httpd
(gdb) run -DONE_PROCESS -d `pwd`/t -f `pwd`/t/conf/httpd.conf
why t/TEST -d doesn't work, i have no idea.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org
Re: xs auto-prototyping doesn't work with 5.6.1?
Posted by Stas Bekman <st...@stason.org>.
Doug MacEachern wrote:
> On Tue, 2 Oct 2001, Stas Bekman wrote:
>
>
>>In all XS files we disable prototypes in the boot section, but not in the
>>rest of the file, which means that by default the prototyping is enabled.
>>However with a stock 5.6.1 perl the prototypes are missing and therefore
>>in maintainer mode it won't build. I've even tried to explicitly specify
>>-prototypes in xsubpp args, but it ignores it.
>>
>
> -prototypes means create Perl prototypes for the xsubs based on
> PROTOTYPE: xs keyword
>
>>Base64.c:35: warning: no previous prototype for `XS_APR__Base64_decode_len'
>>
>
> which is not the same as these prototypes. these are C prototypes.
got it. thanks
> the change to generate C prototypes for the XS functions generated by
> xsubpp is post 5.6.1:
I understand that. I've compared the output from 5.6.1 and 5.7.2.
How do we handle this? Or do we ignore 5.6.1 at this moment? and log it in todo?
I wanted to build with 5.6.1 in yet another attempt to find out why
gdb doesn't work with mod_perl for me. That's when I saw this problem.
Of course eventually I've compiled it without maintainer mode and the
gdb problem didn't go away :(
_____________________________________________________________________
Stas Bekman JAm_pH -- Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide http://perl.apache.org/guide
mailto:stas@stason.org http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org
Re: xs auto-prototyping doesn't work with 5.6.1?
Posted by Doug MacEachern <do...@covalent.net>.
On Tue, 2 Oct 2001, Stas Bekman wrote:
>
> In all XS files we disable prototypes in the boot section, but not in the
> rest of the file, which means that by default the prototyping is enabled.
> However with a stock 5.6.1 perl the prototypes are missing and therefore
> in maintainer mode it won't build. I've even tried to explicitly specify
> -prototypes in xsubpp args, but it ignores it.
-prototypes means create Perl prototypes for the xsubs based on
PROTOTYPE: xs keyword
> Base64.c:35: warning: no previous prototype for `XS_APR__Base64_decode_len'
which is not the same as these prototypes. these are C prototypes.
the change to generate C prototypes for the XS functions generated by
xsubpp is post 5.6.1:
[ 8309] By: jhi on 2001/01/04 18:29:07
Log: Subject: Re: [patch] static-ize XS()
From: Doug MacEachern <do...@covalent.net>
Date: Mon, 1 Jan 2001 15:26:01 -0800 (PST)
Message-ID: <Pi...@mojo.covalent.net>
Provide prototypes for the XS functions.
Branch: perl
! lib/ExtUtils/xsubpp
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org