ID:               48853
 Updated by:       j...@php.net
 Reported By:      leonard-php-bugs at ottolander dot nl
-Status:           Open
+Status:           Feedback
 Bug Type:         Compile Failure
 Operating System: CentOS-4
 PHP Version:      5.2CVS-2009-07-08 (CVS)
 New Comment:

And your configure line is..?


Previous Comments:
------------------------------------------------------------------------

[2009-07-08 14:17:45] leonard-php-bugs at ottolander dot nl

Description:
------------
Building 5.2.9 on CentOS-4, although later versions until CVS today are
affected. The OS is not really relevant, just the reason there are no
unbundled headers available as there's a version mismatch with the
bundled headers.

Using the bundled pcre library by not supplying any pcre configure
options. When the unbundled (upgraded/matching) headers are available on
the system the build succeeds. However, if no unbundled headers are
available httpd.h cannot find the bundled pcreposix.h (and other
headers).

This is *not* an apache issue, the issue is a missing include path in
the build.

If you compare ext/pcre/config0.m4 an include path is provided in case
of an external pcre (although on CentOS it will be found in /usr/include
no matter if a path is specifically provided):

if test "$PHP_PCRE_REGEX" != "no"; then
  if test "$PHP_PCRE_REGEX" = "yes"; then
... (no PHP_ADD_INCLUDE here)
  else
...
    PHP_ADD_INCLUDE($PCRE_INCDIR)
...
  fi

Fix with this patch which provides the include path (ignore the line
wraps, it's just a single line addition):
--- php-5.2.9/ext/pcre/config0.m4.000   2008-12-29 16:27:11.000000000
+0100
+++ php-5.2.9/ext/pcre/config0.m4       2009-07-08 13:27:11.000000000 +0200
@@ -13,6 +13,7 @@ if test "$PHP_PCRE_REGEX" != "no"; then
   if test "$PHP_PCRE_REGEX" = "yes"; then
     PHP_NEW_EXTENSION(pcre, pcrelib/pcre_chartables.c
pcrelib/pcre_ucd.c pcrelib/pcre_compile.c pcrelib/pcre_config.c
pcrelib/pcre_exec.c pcrelib/pcre_fullinfo.c pcrelib/pcre_get.c
pcrelib/pcre_globals.c pcrelib/pcre_info.c pcrelib/pcre_maketables.c
pcrelib/pcre_newline.c pcrelib/pcre_ord2utf8.c pcrelib/pcre_refcount.c
pcrelib/pcre_study.c pcrelib/pcre_tables.c pcrelib/pcre_try_flipped.c
pcrelib/pcre_valid_utf8.c pcrelib/pcre_version.c pcrelib/pcre_xclass.c
php_pcre.c, $ext_shared,,-...@ext_srcdir@/pcrelib)
     PHP_ADD_BUILD_DIR($ext_builddir/pcrelib)
+    PHP_ADD_INCLUDE([$ext_srcdir/pcrelib])
     PHP_INSTALL_HEADERS([ext/pcre], [php_pcre.h pcrelib/])
     AC_DEFINE(HAVE_BUNDLED_PCRE, 1, [ ])
   else


Reproduce code:
---------------
Make sure you REMOVE any unbundled pcre headers from the system.
/usr/include is in the include path and thus the necessary unbundled
headers will be found so you wont see the build fail.

Configure without any pcre related options to use the bundled version.


Expected result:
----------------
Headers found, build succeeds. It does with the patch.

Actual result:
--------------
/bin/sh /usr/src/redhat/BUILD/php-5.2.9/build-apache/libtool --silent
--preserve-dup-deps --mode=compile gcc  -I/usr/include/httpd  -DLINUX=2
-D_REENTRANT -D_GNU_SOURCE -I/usr/include/apr-0   -I/usr/include/apr-0 
-Isapi/apache2handler/
-I/usr/src/redhat/BUILD/php-5.2.9/sapi/apache2handler/ -DPHP_ATOM_INC
-I/usr/src/redhat/BUILD/php-5.2.9/build-apache/include
-I/usr/src/redhat/BUILD/php-5.2.9/build-apache/main
-I/usr/src/redhat/BUILD/php-5.2.9 -I/usr/include/libxml2
-I/usr/kerberos/include
-I/usr/src/redhat/BUILD/php-5.2.9/build-apache/ext/date/lib
-I/usr/src/redhat/BUILD/php-5.2.9/ext/date/lib
-I/usr/src/redhat/BUILD/php-5.2.9/build-apache/TSRM
-I/usr/src/redhat/BUILD/php-5.2.9/build-apache/Zend
-I/usr/src/redhat/BUILD/php-5.2.9/main
-I/usr/src/redhat/BUILD/php-5.2.9/Zend
-I/usr/src/redhat/BUILD/php-5.2.9/TSRM
-I/usr/src/redhat/BUILD/php-5.2.9/build-apache/    -I/usr/include -O2 -g
-pipe -m32 -march=i386 -mtune=pentium4 -fno-strict-aliasing  -prefer-pic
-c /usr/src/redhat/BUILD/php-5.2.9/sapi/apache2handler/mod_php5.c -o
sapi/apache2handler/mod_php5.lo 
In file included from
/usr/src/redhat/BUILD/php-5.2.9/sapi/apache2handler/php_apache.h:24,
                 from
/usr/src/redhat/BUILD/php-5.2.9/sapi/apache2handler/mod_php5.c:26:
/usr/include/httpd/httpd.h:43:23: pcreposix.h: No such file or
directory
make: *** [sapi/apache2handler/mod_php5.lo] Error 1



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=48853&edit=1

Reply via email to