Bug #14048 Updated: Configure issues

From: Date: Mon, 19 Nov 2001 03:28:13 +0000
Subject: Bug #14048 Updated: Configure issues
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-70857@lists.php.net to get a copy of this message
ID: 14048
User updated by: msopacua@idg.nl
Reported By: msopacua@idg.nl
Old Status: Feedback
Status: Open
Bug Type: Unknown/Other Function
Operating System: BSD/OS 4.x
PHP Version: 4.0.6
New Comment:

Ok:
BSDi 4.2 i386 with GNUmake 3.79.1, autoconf 2.13, automake 1.5, libtool 1.4, configured as:
#!/bin/sh

./configure \
        --prefix=/php \
        --with-perl=/perl/bin/perl \
        --with-apxs=/apache/bin/apxs \
        --with-config-file-path=/weblib/local/lib \
        --with-openssl=/weblib/local \
        --disable-short-tags \
        --with-zlib \
        --with-zlib-dir=/weblib/local \
        --enable-bcmath \
        --enable-calendar \
        --with-curl=shared,/weblib/local \
        --with-dom=shared,/weblib/local \
        --enable-ftp \
        --with-gd=/weblib/local \
        --with-jpeg-dir=/weblib/local \
        --with-png-dir=/weblib/local \
        --with-freetype-dir=/weblib/local \
        --with-iconv=shared,/weblib/local \
        --enable-mailparse \
        --enable-mbstring \
        --with-mcal=shared,/weblib/local \
        --with-mcrypt=shared,/weblib/local \
        --with-mhash=shared,/weblib/local \
        --with-mysql=/weblib/local \
        --with-pdflib=/weblib/local \
        --with-jpeg-dir=/weblib/local \
        --with-png-dir=/weblib/local \
        --with-tiff-dir=/weblib/local \
        --with-pgsql=shared,/pgsql \
        --enable-sockets \
        --with-expat-dir=/weblib/local \
        --enable-xslt \
        --with-xslt-sablot=shared,/weblib/local \
        --with-expat-dir=/weblib/local \
        --with-iconv-dir=/weblib/local

checking for res_search... no
....
checking for res_search in -lsocket... no
checking for res_search in -lresolv... no

$ grep -i 'res_search' ./main/php_config.h
/* Define if you have the `res_search' function. */
/* #undef HAVE_RES_SEARCH */

This means, that getmxrr() isn't available.

checking whether to enable xslt support... yes
checking whether to enable the XSLT Sablotron backend... yes, shared
checking libexpat dir for Sablotron XSL support... yes
checking for iconv_open in -lc... no
checking for SablotSetEncoding in -lsablot... yes

So - that works now.

make now works (always does in snapshots - not in releases).

But then, apache won't start:
$ gdb -core ./httpd.core -exec apache/bin/httpd
GNU gdb
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-bsdi4.2".
Core was generated by `httpd'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /shlib/libdl.so...done.
Reading symbols from /shlib/libgcc.so.1...done.
Reading symbols from /shlib/libc.so.2...done.
Reading symbols from /shlib/ld-bsdi.so...done.
Reading symbols from /apache/libexec/libphp4.so...done.
Reading symbols from /weblib/local/lib/libz.so...done.
Reading symbols from /weblib/local/lib/libsablot.so.0...done.
Reading symbols from /weblib/local/lib/libiconv.so.2...done.
Reading symbols from /weblib/local/lib/libexpat.so.0...done.
Reading symbols from /weblib/local/lib/libpdf.so.1...done.
Reading symbols from /weblib/local/lib/mysql/libmysqlclient.so.10...done.
Reading symbols from /weblib/local/lib/libgd.so...done.
Reading symbols from /weblib/local/lib/libfreetype.so.6...done.
Reading symbols from /weblib/local/lib/libpng.so.2...done.
Reading symbols from /weblib/local/lib/libjpeg.so.62...done.
Reading symbols from /weblib/local/lib/libssl.so.0.9.6...done.
Reading symbols from /weblib/local/lib/libcrypto.so.0.9.6...done.
Reading symbols from /shlib/libm.so.0.0...done.
Reading symbols from /apache/libexec/mod_gzip.so...done.
#0  0x481f2a67 in zend_register_functions (functions=0x48301e20, function_table=0x0, type=1) at
zend_API.c:1046
1046                    if (zend_hash_add(target_function_table, ptr->fname,
strlen(ptr->fname)+1, &function, sizeof(zend_function), NULL)
 == FAILURE) {
(gdb) bt
#0  0x481f2a67 in zend_register_functions (functions=0x48301e20, function_table=0x0, type=1) at
zend_API.c:1046
#1  0x481f2bd7 in zend_register_module (module=0x48301ea4) at zend_API.c:1099
#2  0x481f29c2 in zend_startup_module (module=0x48301ea4) at zend_API.c:1010
#3  0x481fcf14 in php_startup_extensions (ptr=0x482f8230, count=17) at main.c:780
#4  0x481fe333 in php_startup_internal_extensions () at internal_functions.c:78
#5  0x481fd3a5 in php_module_startup (sf=0x482f709c) at main.c:935
#6  0x481fa4b6 in php_apache_startup (sapi_module=0x482f709c) at mod_php4.c:279
#7  0x481fadb1 in php_apache_value_handler_ex (cmd=0x8047b0c, conf=0x812a2c0, arg1=0x8149284
"include_path",
    arg2=0x8149294 ".:/webdocs/www.infoworld.nl/_inc:/webdocs/_global_inc", mode=2) at
mod_php4.c:698
#8  0x481faead in php_apache_value_handler (cmd=0x8047b0c, conf=0x812a2c0, arg1=0x8149284
"include_path",
    arg2=0x8149294 ".:/webdocs/www.infoworld.nl/_inc:/webdocs/_global_inc") at
mod_php4.c:726
#9  0x807bb6e in ?? ()
#10 0x807c4c8 in ?? ()
#11 0x807c567 in ?? ()
#12 0x80806ff in ?? ()
#13 0x807b9cc in ?? ()
#14 0x807c4c8 in ?? ()
#15 0x807c567 in ?? ()
#16 0x807cc28 in ?? ()
#17 0x807d58c in ?? ()
#18 0x8087e6c in ?? ()
#19 0x804ebae in ?? ()




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

[2001-11-18 19:58:49] sniper@php.net

Please list shortly what does not work in latest snapshot.

--Jani


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

[2001-11-13 23:28:43] msopacua@idg.nl

Hi,

for a number of releases I've dealt with some known issues, but felt it's time to
summarize them here, since I think I've pretty much got them all, including the fixes.

1) Native make + gnu make
For some reason, php is the only package, that manages to override the variable MAKE=/path/to/make
as well as the make in the PATH setting. If you keep the native make (which is sensible, for
it's best used for creating a new kernel), but you have your own make compiled in your own
dirs, then make doesn't work. The reason is, the old include format. I use this perlscript
'makefix.pl' to fix the issues:
#!/perl/bin/perl

use Getopt::Long;

my $dir=$ENV{'HOME'}.'/_src/php-4.0.4pl1';

GetOptions(
        'dir=s'         =>      \$dir);


chdir($dir) || die "Can't change to $dir\n$!\n";

open(FILE, './makefix.lst') || die "Please create the list first, with:\nfind -x .
-exec grep -l -E '\\.include \\\"' {} \\; >./makefix.lst";
@files = <FILE>;
close(FILE);

for $i (0..$#files) {
        $fix = $files[$i];
        next if $fix =~ /\.bak$/;
        chomp($fix);
        $bak = $fix . '.bak';
        system("cp $fix $bak");
        print STDOUT "Trying $bak and $fix....";
        open(BAK, $bak) || die "cant open $bak\n$!\n";
        open(FIX, ">$fix") || die "cant open $fix\n$!\n";
        while(<BAK>) {
                chomp;
                s/^\.include \"([^\"]+)\"\s?$/include $1/;
                print FIX $_;
                print FIX "\n";
        }
        close(BAK);
        close(FIX);
        print STDOUT "fixed.\n";
}
exit(0);

It can probably be done more easily, but it works.

2) INET_* functions
Are native for BSDi and don't need a library. Secondly, they complain without the right
headers. Here's a snippet from the Bind configure script, on how to _correctly_ test for these
functions:
------------------------------------------------------------
echo $ac_n "checking for inet_aton""... $ac_c" 1>&6
echo "configure:3901: checking for inet_aton" >&5
cat > conftest.$ac_ext <<EOF
#line 3903 "configure"
#include "confdefs.h"

#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main() {
struct in_addr in; inet_aton(0, &in); return (0);
; return 0; }
EOF
------------------------------------------------------------

The native bind on BSDi does have __inet_aton in libbind, but it's static, so PHP complains and
you need to edit config.h and Zend/Makefile to get rid of it.

Secondly - bind 9.x requires not only libbind but libisc as well, so any tests for -lbind will
always fail, if you've upgraded your named package.

3) res_search
Is also native on BSDi. I don't have a definite fix, since I'm no C-programmer, but I just
add these lines to the end of main/php_config.h.in to work around it:

#ifdef __bsdi__
        #define HAVE_RES_SEARCH 1
#endif

man 3 res_search says:
DEPRECATED
     #include <sys/types.h>
     #include <netinet/in.h>
     #include <arpa/nameser.h>
     #include <resolv.h>
...
     res_search(const char *dname, int class, type, u_char *answer, int anslen);

4) Iconv and XSLT
Below is a typical diff for any section in configure trying to find iconv for the XSLT section:
------------------------------------------------------------
    found_iconv=no
!   echo $ac_n "checking for iconv_open in -lc""... $ac_c" 1>&6
! echo "configure:48789: checking for iconv_open in -lc" >&5
  ac_lib_var=echo c'_'iconv_open | sed 'y%./+-%__p_%'
  if eval "test \"echo
'$''{'ac_cv_lib_$ac_lib_var'+set}'\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
    ac_save_LIBS="$LIBS"
! LIBS="-lc  $LIBS"
  cat > conftest.$ac_ext <<EOF
  #line 48797 "configure"
  #include "confdefs.h"
--- 48784,48797 ----


    found_iconv=no
!   echo $ac_n "checking for iconv_open in -liconv""... $ac_c" 1>&6
! echo "configure:48789: checking for iconv_open in -liconv" >&5
  ac_lib_var=echo c'_'iconv_open | sed 'y%./+-%__p_%'
  if eval "test \"echo
'$''{'ac_cv_lib_$ac_lib_var'+set}'\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
    ac_save_LIBS="$LIBS"
! LIBS="-liconv  $LIBS"
  cat > conftest.$ac_ext <<EOF
  #line 48797 "configure"
  #include "confdefs.h"
------------------------------------------------------------
It will do this correctly for --with-iconv, but later on when iconv is specified with xslt, it
breaks. There are several sections in the configure script and I usually fix them all just to spare
me the havoc of find out which is called and why.

I hope you can address these issues before 4.0.7 release.

As a side note:
The latest snapshots work correctly with make as always, but then the release versions don't.

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



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



Thread (16 messages)

« previous php.dev (#70857) next »