ID: 14048
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Old Status: Feedback
Status: Open
Bug Type: Unknown/Other Function
Operating System: BSD/OS 4.x
Old PHP Version: 4.0.6
PHP Version: 4.0.6 and 4.1.0
New Comment:

And it's there again, version 4.1.0:

mdev@server6 ~/_src/php-4.1.0
$ type make
make is hashed (/home/mdev/local/bin/make)

mdev@server6 ~/_src/php-4.1.0
$ echo $MAKE
/home/mdev/local/bin/make

mdev@server6 ~/_src/php-4.1.0
$ make
Makefile:34: *** missing separator.  Stop.

mdev@server6 ~/_src/php-4.1.0
$ grep 'HAVE_RES_SEARCH' ./main/php_config.h
/* #undef HAVE_RES_SEARCH */


By the way - the issue with shared libs didn't apply. I did rm -rf /php/lib before I 
did anything else and php.ini didn't load anything it shouldn't be able to find, 
judging from ls and ldd.

But can you ellaborate on the issues above?

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

[2001-11-19 17:58:03] [EMAIL PROTECTED]

You might be having an issue with old shared extension
being loaded. Check it first. ie. try disabling the loading
of such extensions in php.ini


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

[2001-11-18 22:28:12] [EMAIL PROTECTED]

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 ?? ()




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

[2001-11-18 19:58:49] [EMAIL PROTECTED]

Please list shortly what does not work in latest snapshot.

--Jani


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

[2001-11-13 23:28:43] [EMAIL PROTECTED]

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


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to