#17702 [Opn]: need to use -taso with Netscape LDAP libs

From: Date: Tue, 20 Aug 2002 21:08:54 +0000
Subject: #17702 [Opn]: need to use -taso with Netscape LDAP libs
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-17349@lists.php.net to get a copy of this message
ID: 17702 User updated by: long@kestrel.cc.ukans.edu Reported By: long@kestrel.cc.ukans.edu Status: Open Bug Type: Compile Failure Operating System: Compaq Tru64 4.0F PK3 PHP Version: 4.2.1 New Comment: When I configure as: env CFLAGS="-std1 -taso" CC=cc CXX=cxx ./configure --with-openssl --enable-bcmath --with-ndbm --with-dbm --enable-dbase --enable-filepro --enable-ftp --with-gd --with-ttf --with-java=/usr/opt/java130 --with-mysql --with-oci8 --with-oracle --enable-shmop --enable-sockets --enable-sysvsem --enable-sysvshm --enable-wddx --enable-dba=shared --enable-calendar --enable-exif --enable-discard-path --enable-dbx --enable-ctype --with-hyperwave --enable-mailparse --enable-mbstring --enable-mbstr-enc-trans --enable-memory-limit --with-ldap=/usr/local/ldap Then in my config.log I get: configure:65780: checking for standard DES crypt configure:65806: cc -o conftest -std1 -taso -Wl,-rpath,/usr/local/ssl/lib -L/usr/local/ssl/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/opt/java130/jre/lib/alpha/classic -L/usr/opt/java130/jre/lib/alpha/classic -Wl,-rpath,/usr/opt/java130/jre/lib/alpha/native_threads -L/usr/opt/java130/jre/lib/alpha/native_threads -Wl,-rpath,/usr/opt/java130/jre/lib/alpha -L/usr/opt/java130/jre/lib/alpha -Wl,-rpath,/usr/local/ldap/lib -L/usr/local/ldap/lib -Wl,-rpath,/home/oracle/u01/app/oracle/product/8.0.5/lib -L/home/oracle/u01/app/oracle/product/8.0.5/lib conftest.c -lclntsh -lpsa -lcore4 -lnlsrtl3 -lclntsh -lpsa -lcore4 -lnlsrtl3 -lldapssl30 -ljava -lgd -lttf -lssl -lcrypto -lm -lexc -lmld -lrt -laio -lm -lexc -lmld -lrt -laio -lm 1>&5 configure: failed program was: #line 65791 "configure" #include "confdefs.h" #if HAVE_CRYPT_H #include <crypt.h> #endif main() { #if HAVE_CRYPT exit (strcmp((char *)crypt("rasmuslerdorf","rl"),"rl.3StKT.4T8M")); #else exit(0); #endif } and the output to the screen is: checking for standard DES crypt... 30302:./conftest: /sbin/loader: Fatal Error: cannot map libldapssl30.so no It is failing because the Compaq C compiler does not like having separate -Wl,-rpath components. It wants all the rpaths combined into a single unit, e.g.: -Wl,-rpath,/usr/local/ssl/lib,/usr/local/lib,-rpath,/usr/opt/java130/jre/lib/alpha/classic,/usr/opt/java130/jre/lib/alpha/native_threads,/usr/opt/java130/jre/lib/alpha,/usr/local/ldap/lib,/home/oracle/u01/app/oracle/product/8.0.5/lib Previous Comments: ------------------------------------------------------------------------ [2002-08-20 16:19:24] long@kestrel.cc.ukans.edu As requested in bug 13814 I'd like to report that php4-200208201200 still won't compile the oci8 extension without using -std1 in the CFLAGS when the Compaq C V5.9-010 compiler is used with the Oracle 8.0.5 client. ------------------------------------------------------------------------ [2002-07-07 21:23:59] sniper@php.net Please try this snapshot: http://snaps.php.net/php4-latest.tar.gz Some related bugs were fixed 2 days ago. ------------------------------------------------------------------------ [2002-07-03 10:29:08] long@kestrel.cc.ukans.edu Still not quite right, here's a part of the output from: env LD='/usr/bin/ld -taso' CFLAGS=-taso CC=cc CXX=cxx ./configure --with-openssl --enable-bcmath --with-ndbm --with-dbm --enable-dbase --enable-filepro --enable-ftp --with-gd --with-ttf --with-java=/usr/opt/java130 --with-ldap=/usr/local/ldap --with-mysql --with-oci8 --with-oracle --enable-shmop --enable-sockets --enable-sysvsem --enable-sysvshm --enable-wddx --enable-dba=shared --enable-calendar --enable-exif --enable-discard-path --enable-dbx --enable-ctype --with-hyperwave --enable-mailparse --enable-mbstring --enable-mbstr-enc-trans --enable-memory-limit checking whether pwrite works without custom declaration... 10346:./conftest: /sbin/loader: Fatal Error: cannot map libldapssl30.so no Here's the corresponding portion of config.log: configure:61711: checking whether pwrite works without custom declaration configure:61724: cc -c -taso conftest.c 1>&5 cc: Error: configure, line 61720: In the initializer for func, "pwrite" is not declared. (undeclared) size_t (*func)() = pwrite -------------------^ configure: failed program was: #line 61717 "configure" #include "confdefs.h" #include <unistd.h> int main() { size_t (*func)() = pwrite ; return 0; } configure:61749: cc -o conftest -taso -Wl,-rpath,/usr/local/ssl/lib -L/usr/local/ssl/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/opt/java130/./jre/lib/alpha/classic -L/usr/opt/java130/./jre/lib/alpha/classic -Wl,-rpath,/usr/opt/java130/./jre/lib/alpha/native_threads -L/usr/opt/java130/./jre/lib/alpha/native_threads -Wl,-rpath,/usr/opt/java130/./jre/lib/alpha -L/usr/opt/java130/./jre/lib/alpha -Wl,-rpath,/usr/local/ldap/lib -L/usr/local/ldap/lib -Wl,-rpath,/home/oracle/u01/app/oracle/product/8.0.5/lib -L/home/oracle/u01/app/oracle/product/8.0.5/lib conftest.c -lclntsh -lpsa -lcore4 -lnlsrtl3 -lm -laio -lrt -lmld -lexc -lclntsh -lpsa -lcore4 -lnlsrtl3 -lm -laio -lrt -lmld -lexc -lldapssl30 -ljava -lgd -lttf -lssl -lcrypto -lresolv -lm -lresolv 1>&5 configure: failed program was: #line 61740 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> main() { return !(pwrite(open("conftest_out", O_WRONLY|O_CREAT, 0600), "Ok", 2, 0) == 2); } configure:61774: cc -o conftest -taso -Wl,-rpath,/usr/local/ssl/lib -L/usr/local/ssl/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/opt/java130/./jre/lib/alpha/classic -L/usr/opt/java130/./jre/lib/alpha/classic -Wl,-rpath,/usr/opt/java130/./jre/lib/alpha/native_threads -L/usr/opt/java130/./jre/lib/alpha/native_threads -Wl,-rpath,/usr/opt/java130/./jre/lib/alpha -L/usr/opt/java130/./jre/lib/alpha -Wl,-rpath,/usr/local/ldap/lib -L/usr/local/ldap/lib -Wl,-rpath,/home/oracle/u01/app/oracle/product/8.0.5/lib -L/home/oracle/u01/app/oracle/product/8.0.5/lib conftest.c -lclntsh -lpsa -lcore4 -lnlsrtl3 -lm -laio -lrt -lmld -lexc -lclntsh -lpsa -lcore4 -lnlsrtl3 -lm -laio -lrt -lmld -lexc -lldapssl30 -ljava -lgd -lttf -lssl -lcrypto -lresolv -lm -lresolv 1>&5 cc: Error: configure, line 61769: Ill-formed parameter type list. (parmtyplist) ssize_t pwrite(int, void *, size_t, off64_t); --------------------------------------------^ configure: failed program was: #line 61763 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> ssize_t pwrite(int, void *, size_t, off64_t); main() { return !(pwrite(open("conftest_out", O_WRONLY|O_CREAT, 0600), "Ok", 2, 0) == 2); } Once again, the problem is that the compaq C compiler cannot handle multiple -Wl,-rpath components like configure is trying to use. ------------------------------------------------------------------------ [2002-07-02 20:55:08] sniper@php.net Please try this snapshot: http://snaps.php.net/php4-latest.tar.gz ------------------------------------------------------------------------ [2002-06-11 11:42:45] long@kestrel.cc.ukans.edu Well, all I wanted to do was reopen bug #8844 (http://bugs.php.net/bug.php?id=8844) but since I have an empty password on that bug it won't accept it so I can't login to that bug. So go read that bug and I'll just paste in what I was going to add to it: I'm back. I'm finally sick and tired enough of PHP 4.2.1 not compiling correctly out of the box that I did some digging. I beg to differ that this is not a PHP bug as the autoconf macros that cause this problem are in acinclude.m4 (i.e. written by PHP developers). This problem can be corrected, but probably only correctly by someone who more fully understands the PHP build process. At the end of this note is a patch I used that causes the -rpath to be setup correctly for my particular environment. I'm not claiming in any sense that this patch is absolutely correct for anyone else using Tru64 and the Compaq C compiler but it worked for me. Perhaps it can be used by an autoconf guru among the PHP developers to correctly set -rpath. P.S: I don't know why the previous comments on this bug attribute the comment to me that this bug might as well be closed and offered some other wrapper workarounds as I did not say that. (In fact I never wanted this bug closed :-) *** acinclude.m4 Thu Jun 6 11:42:35 2002 --- ../acinclude.m4.orig Wed Jun 5 12:34:38 2002 *************** *** 707,725 **** $2="-R$1 -L$1 [$]$2" else AC_PHP_ONCE(LIBPATH, $ai_p, [ ! os=uname -sr 2>/dev/null ! case $os in ! "OSF1 V4.0") ! case $CC in ! cc) test -z "$LDFLAGS" && test -n "$ld_runpath_switch" && LDFLAGS="$ld_runpath_switch"; ! test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS$ai_p:"; ! LDFLAGS="-L$ai_p $LDFLAGS";; ! *) test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p"; ! LDFLAGS="$LDFLAGS -L$ai_p";; ! esac;; ! *) test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p"; ! LDFLAGS="$LDFLAGS -L$ai_p";; ! esac PHP_RPATHS="$PHP_RPATHS $ai_p" ]) fi --- 707,714 ---- $2="-R$1 -L$1 [$]$2" else AC_PHP_ONCE(LIBPATH, $ai_p, [ ! test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" ! LDFLAGS="$LDFLAGS -L$ai_p" PHP_RPATHS="$PHP_RPATHS $ai_p" ]) fi *************** *** 735,760 **** if test "$PHP_RPATH" = "yes" && test -n "$PHP_RPATHS"; then OLD_RPATHS="$PHP_RPATHS" unset PHP_RPATHS - os=uname -sr 2>/dev/null - case $os in - "OSF1 V4.0") - case $CC in - cc) NATIVE_RPATHS="$ld_runpath_switch";; - *) ;; - esac;; - *) ;; - esac for i in $OLD_RPATHS; do PHP_LDFLAGS="$PHP_LDFLAGS -L$i" PHP_RPATHS="$PHP_RPATHS -R $i" ! case $os in ! "OSF1 V4.0") ! case $CC in ! cc) NATIVE_RPATHS="$NATIVE_RPATHS:$i";; ! *) NATIVE_RPATHS="$NATIVE_RPATHS $ld_runpath_switch$i";; ! esac;; ! *) NATIVE_RPATHS="$NATIVE_RPATHS $ld_runpath_switch$i";; ! esac done fi ]) --- 724,733 ---- if test "$PHP_RPATH" = "yes" && test -n "$PHP_RPATHS"; then OLD_RPATHS="$PHP_RPATHS" unset PHP_RPATHS for i in $OLD_RPATHS; do PHP_LDFLAGS="$PHP_LDFLAGS -L$i" PHP_RPATHS="$PHP_RPATHS -R $i" ! NATIVE_RPATHS="$NATIVE_RPATHS $ld_runpath_switch$i" done fi ]) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=17702&edit=1

« previous php.bugs (#17349) next »