Graham Dumpleton | 19 Apr 23:20

Re: svn commit: r394455 - in /httpd/mod_python/trunk: Doc/appendixc.tex src/hlist.c src/include/hlist.h src/include/mod_python.h src/include/mod_python.h.in src/mod_python.c src/requestobject.c test/htdocs/tests.py test/httpdconf.py test/test.py


On 20/04/2006, at 12:39 AM, Jim Gallacher wrote:

> grahamd <at> apache.org wrote:
>> Author: grahamd
>> Date: Sun Apr 16 03:49:39 2006
>> New Revision: 394455
> > URL: http://svn.apache.org/viewcvs?rev=394455&view=rev
>
> +1 Debian Sid, apache 2.2.0, python 2.4.2
>
> -1 Debian Sid, apache 2.0.55, python 2.3.5
>
> Compilation fails with this output:
>
> make[1]: Entering directory `/tmp/mod_python/src'
>
> Compiling for DSO.
>
> /usr/bin/apxs2 -I/tmp/mod_python/src/include -I/usr/include/apache2 
> -I/usr/include/python2.3 -c mod_python.c _apachemodule.c 
> requestobject.c tableobject.c util.c serverobject.c connobject.c 
> filterobject.c hlist.c hlistobject.c -L/usr/lib/python2.3/config  
> -Xlinker -export-dynamic  -lm  -lpython2.3   -lpthread -ldl  -lutil   
> -lm
> /usr/bin/libtool --silent --mode=compile gcc -prefer-pic -pipe 
> -I/usr/include/xmltok -I/usr/include/openssl -Wall -g -O2 
> -DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT 
> -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -pipe 
> -I/usr/include/xmltok -I/usr/include/openssl -Wall -g -O2 -pthread 
> -I/usr/include/apache2  -I/usr/include/apr-0   -I/usr/include/apr-0 
> -I/usr/include -I/tmp/mod_python/src/include -I/usr/include/apache2 
> -I/usr/include/python2.3  -c -o mod_python.lo mod_python.c && touch 
> mod_python.slo
> In file included from mod_python.c:28:
> /tmp/mod_python/src/include/mod_python.h:65: error: syntax error 
> before 'ap_regex_t'
> /tmp/mod_python/src/include/mod_python.h:65: warning: useless type 
> name in empty declaration
> In file included from mod_python.c:28:
> /tmp/mod_python/src/include/mod_python.h:66:1: warning: 
> "AP_REG_EXTENDED" redefined

The AP_REG_EXTENDED macro shouldn't exist in Apache 2.0.55. It, along
with ap_regex_t only came along in Apache 2.1.? sometime.

The code in mod_python.h which tries to accommodate the change is:

#if !AP_MODULE_MAGIC_AT_LEAST(20050127,0)
typedef regex_t ap_regex_t;
#define AP_REG_EXTENDED REG_EXTENDED
#define AP_REG_ICASE REG_ICASE
#endif

The regex_t type comes from pcreposix.h which is include by httpd.h
which is included in mod_python.h prior to this point.

Either how I am using AP_MODULE_MAGIC_AT_LEAST is wrong, of you must be
picking up a wrong header file somehow.

Bar ensuring you did a make distclean between builds, not sure what
else to suggest.

Strange.

Graham

> In file included from /usr/include/apache2/httpd.h:44,
>                  from /tmp/mod_python/src/include/mod_python.h:42,
>                  from mod_python.c:28:
> /usr/include/apache2/ap_regex.h:44:1: warning: this is the location of 
> the previous definition
> In file included from mod_python.c:28:
> /tmp/mod_python/src/include/mod_python.h:67:1: warning: "AP_REG_ICASE" 
> redefined
> In file included from /usr/include/apache2/httpd.h:44,
>                  from /tmp/mod_python/src/include/mod_python.h:42,
>                  from mod_python.c:28:
> /usr/include/apache2/ap_regex.h:32:1: warning: this is the location of 
> the previous definition
> In file included from /usr/include/python2.3/Python.h:8,
>                  from /tmp/mod_python/src/include/mod_python.h:75,
>                  from mod_python.c:28:
> /usr/include/python2.3/pyconfig.h:853:1: warning: "_POSIX_C_SOURCE" 
> redefined
> In file included from /usr/include/sys/types.h:27,
>                  from /usr/include/apr-0/apr.h:113,
>                  from /usr/include/apache2/ap_config.h:20,
>                  from /usr/include/apache2/httpd.h:30,
>                  from /tmp/mod_python/src/include/mod_python.h:42,
>                  from mod_python.c:28:
> /usr/include/features.h:150:1: warning: this is the location of the 
> previous definition
>
> <snip>
>
> mod_python.c: In function 'determine_context':
> mod_python.c:938: error: 'REG_EXTENDED' undeclared (first use in this 
> function)
> mod_python.c:938: error: (Each undeclared identifier is reported only 
> once
> mod_python.c:938: error: for each function it appears in.)
> mod_python.c: In function 'directive_PythonHandlerModule':
> mod_python.c:2264: warning: unused variable 'srv_conf'
> mod_python.c: In function 'PythonChildInitHandler':
> mod_python.c:2504: warning: unused variable 'ppath'
> apxs:Error: Command failed with rc=65536
>
> No time to dig in to this right now. Will investigate later.
>
> Jim


Gmane