Mailing List Archive

MP_MAINTAINER=1
Hi,

setting MP_MAINTAINER=1 causes modperl2 to among other things try to
build/test everything.

Unfortunately this doesn't work because --enable-maintainer-mode
to httpd's configure does not imply --enable-threads to apr's configure.

Therefore

you need to build apache with
./configure --enable-maintainer-mode --enable-threads

otherwise you get this

/home/pgollucci/dev/src/modperl rv=0 514 >make
cd "src/modules/perl" && make
cc -I/usr/home/pgollucci/dev/src/modperl/src/modules/perl
-I/usr/home/pgollucci/dev/src/modperl/xs -I/usr/local/include/apr-1
-I/usr/local/include/apr-1 -I/usr/local/include
-I/home/pgollucci/dev/httpd/2.1.5-dev/include -pipe -DHAS_FPSETMASK
-DHAS_FLOATINGPOINT_H -DDEBUGGING -fno-strict-aliasing
-I/usr/local/include
-I/home/pgollucci/dev/perl/5.9.3/lib/perl5/5.9.3/mach/CORE -DMOD_PERL
-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations
-Werror -DAP_DEBUG -DAP_HAVE_DESIGNATED_INITIALIZER -DMP_COMPAT_1X
-DMP_DEBUG -DMP_TRACE -I/usr/home/pgollucci/dev/src/httpd/srclib/pcre
-DAP_DEBUG -ggdb3 -O0 -DPIC -fPIC -c modperl_util.c && mv
modperl_util.o modperl_util.lo
modperl_util.c: In function `modperl_perl_call_list':
modperl_util.c:474: warning: implicit declaration of function
`apr_os_thread_current'
*** Error code 1

Heres a patch for that... I'm not sure about how you want to word this.
As if you install apr outside of apache... (good luck!) you can just
pass --enable-threads and --enable-maintainer-mode to apr's configure
and just --enable-maintainer-mode to httpd2's configure.

Index: user/install/install.pod
===================================================================
--- user/install/install.pod (revision 160267)
+++ user/install/install.pod (working copy)
@@ -464,9 +464,11 @@
-Wmissing-declarations \
-DAP_DEBUG -DAP_HAVE_DESIGNATED_INITIALIZER

-To use this mode Apache must be build with
-C<--enable-maintainer-mode>.
+To use this mode Apache and APR must be build with
+C<--enable-maintainer-mode>. APR must also be compiled
+with C<--enable-threads>.

+
=head4 MP_TRACE

Enable tracing

--
END
------------------------------------------------------------------------------

Philip M. Gollucci
Consultant
E-Mail: pgollucci@p6m7g8.com
URL : http://p6m7g8.net/Resume/resume.shtml
Phone : 301.254.5198

$Id: .signature,v 1.7 2004/09/05 23:46:37 philip Exp $


---------------------------------------------------------------------
To unsubscribe, e-mail: docs-dev-unsubscribe@perl.apache.org
For additional commands, e-mail: docs-dev-help@perl.apache.org
Re: MP_MAINTAINER=1 [ In reply to ]
Philip M. Gollucci wrote:
> Hi,
>
> setting MP_MAINTAINER=1 causes modperl2 to among other things try to
> build/test everything.
>
> Unfortunately this doesn't work because --enable-maintainer-mode
> to httpd's configure does not imply --enable-threads to apr's configure.
>
> Therefore
>
> you need to build apache with
> ./configure --enable-maintainer-mode --enable-threads
>

stas probably has a better idea about this than I do, but I build with
--enable-maintainer and MP_MAINTAINER=1 every night without issue. the
matrix of what I build is this

perl-threaded + prefork
perl-threaded + worker
perl-unthreaded + prefork

each with a separate httpd checkout so apr doesn't inherit flags from prior
builds. my exact httpd build-line is this:

NOTEST_CFLAGS="-Werror" CFLAGS="-DAP_UNSAFE_ERROR_LOG_UNESCAPED"
./configure --prefix=$target --with-mpm=$mpm --enable-maintainer-mode
--enable-mods-shared=all --without-execstrip --enable-modules=all
--enable-deflate=shared --enable-proxy=shared --disable-log-forensic

I seem to recall that apr inherited some foo from prior builds such that I
couldn't 'make realclean' and start over in the same httpd directory and go
from worker to prefork and _not_ get a threaded apr. but that was a long
time ago, so who knows. but regardless, make sure you try with a fresh
checkout of httpd and apr, just in case it's something similar that's
tripping you up.

--Geoff

---------------------------------------------------------------------
To unsubscribe, e-mail: docs-dev-unsubscribe@perl.apache.org
For additional commands, e-mail: docs-dev-help@perl.apache.org
Re: MP_MAINTAINER=1 [ In reply to ]
Philip M. Gollucci wrote:
> Hi,
>
> setting MP_MAINTAINER=1 causes modperl2 to among other things try to
> build/test everything.
>
> Unfortunately this doesn't work because --enable-maintainer-mode
> to httpd's configure does not imply --enable-threads to apr's configure.
>
> Therefore
>
> you need to build apache with
> ./configure --enable-maintainer-mode --enable-threads
>
> otherwise you get this
>
> /home/pgollucci/dev/src/modperl rv=0 514 >make
> cd "src/modules/perl" && make
> cc -I/usr/home/pgollucci/dev/src/modperl/src/modules/perl
> -I/usr/home/pgollucci/dev/src/modperl/xs -I/usr/local/include/apr-1
> -I/usr/local/include/apr-1 -I/usr/local/include
> -I/home/pgollucci/dev/httpd/2.1.5-dev/include -pipe -DHAS_FPSETMASK
> -DHAS_FLOATINGPOINT_H -DDEBUGGING -fno-strict-aliasing
> -I/usr/local/include
> -I/home/pgollucci/dev/perl/5.9.3/lib/perl5/5.9.3/mach/CORE -DMOD_PERL
> -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations
> -Werror -DAP_DEBUG -DAP_HAVE_DESIGNATED_INITIALIZER -DMP_COMPAT_1X
> -DMP_DEBUG -DMP_TRACE -I/usr/home/pgollucci/dev/src/httpd/srclib/pcre
> -DAP_DEBUG -ggdb3 -O0 -DPIC -fPIC -c modperl_util.c && mv
> modperl_util.o modperl_util.lo
> modperl_util.c: In function `modperl_perl_call_list':
> modperl_util.c:474: warning: implicit declaration of function
> `apr_os_thread_current'
> *** Error code 1

This should fix the problem, Philip:

Index: src/modules/perl/modperl_util.h
===================================================================
--- src/modules/perl/modperl_util.h (revision 160192)
+++ src/modules/perl/modperl_util.h (working copy)
@@ -102,7 +102,11 @@
void modperl_package_unload(pTHX_ const char *package);
#if defined(MP_TRACE) && defined(APR_HAS_THREADS)
#define MP_TRACEf_TID "/tid 0x%lx"
+#if APR_HAS_THREADS
#define MP_TRACEv_TID (unsigned long)apr_os_thread_current()
+#else
+#define MP_TRACEv_TID 0
+#endif
#define MP_TRACEv_TID_ MP_TRACEv_TID,
#define MP_TRACEv__TID ,MP_TRACEv_TID
#else


--
__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com

---------------------------------------------------------------------
To unsubscribe, e-mail: docs-dev-unsubscribe@perl.apache.org
For additional commands, e-mail: docs-dev-help@perl.apache.org
Re: MP_MAINTAINER=1 [ In reply to ]
>> modperl_util.c: In function `modperl_perl_call_list':
>> modperl_util.c:474: warning: implicit declaration of function
>> `apr_os_thread_current'
>> *** Error code 1
>
>
> This should fix the problem, Philip:

as usual, stas is all over things :)

is/was this a platform issue? I'm a little boggled why we all didn't see
it, so the only thing that comes to mind is that apr chooses some parts of
it's threading api based on your platform (linux, bsd, whatever). at least
that's what comes to mind through the cobwebs...

--Geoff

---------------------------------------------------------------------
To unsubscribe, e-mail: docs-dev-unsubscribe@perl.apache.org
For additional commands, e-mail: docs-dev-help@perl.apache.org
Re: MP_MAINTAINER=1 [ In reply to ]
Geoffrey Young wrote:
>>>modperl_util.c: In function `modperl_perl_call_list':
>>>modperl_util.c:474: warning: implicit declaration of function
>>>`apr_os_thread_current'
>>>*** Error code 1
>>
>>
>>This should fix the problem, Philip:
>
>
> as usual, stas is all over things :)
>
> is/was this a platform issue? I'm a little boggled why we all didn't see
> it, so the only thing that comes to mind is that apr chooses some parts of
> it's threading api based on your platform (linux, bsd, whatever). at least
> that's what comes to mind through the cobwebs...

No, it's just that we always have to #if APR_HAS_THREADS any apr threads
functions. And that wasn't the case with that tracing function.


--
__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com

---------------------------------------------------------------------
To unsubscribe, e-mail: docs-dev-unsubscribe@perl.apache.org
For additional commands, e-mail: docs-dev-help@perl.apache.org
Re: MP_MAINTAINER=1 [ In reply to ]
>No, it's just that we always have to #if APR_HAS_THREADS any apr
threads functions. And that wasn't >the case with that tracing function.
Actually I'm not sure... I discovered that even if you pass --with-apr
and --with-apr-util
to ./configure for httpd2 the full paths to already installed
apr-1-config and apu-1-config it will still find and use the one in your
path first...

I installed svn via ports tree originally with installed a non-threaded
apr in my /usr/local/lib
which was being linked against despite my configure args. -- Thus the
whole reason I rebuilt
svn (first with https support)

I'm not entirely sure your patch is neccessary; but thats for the quick
feedback.

I'll retest.... Probably Thursday night.



--
END
-----------------------------------------------------------------------------
Philip M. Gollucci
Senior Developer - Liquidity Services Inc.
Phone: 202.568.6268 (Direct)
E-Mail: pgollucci@liquidation.com
Web: http://www.liquidation.com


---------------------------------------------------------------------
To unsubscribe, e-mail: docs-dev-unsubscribe@perl.apache.org
For additional commands, e-mail: docs-dev-help@perl.apache.org
Re: MP_MAINTAINER=1 [ In reply to ]
> I seem to recall that apr inherited some foo from prior builds such
> that I couldn't 'make realclean' and start over in the same httpd
> directory and go from worker to prefork and _not_ get a threaded apr.
> but that was a long time ago, so who knows. but regardless, make
sure > you try with a fresh heckout of httpd and apr, just in case it's
> something similar that's tripping you up.
> --Geoff
Thanks Geoff.

I'm looking into this currently.

P.S.
I think you want run in httpd2's directory
make distclean

END
------------------------------------------------------
Philip M. Gollucci (pgollucci@p6m7g8.com) 301.254.5198
Consultant / http://p6m7g8.net/Resume/resume.shtml

---------------------------------------------------------------------
To unsubscribe, e-mail: docs-dev-unsubscribe@perl.apache.org
For additional commands, e-mail: docs-dev-help@perl.apache.org