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