ID: 7792 Updated by: joey Reported By: [EMAIL PROTECTED] Old-Status: Open Status: Assigned Bug Type: Sybase-ct (ctlib) related Operating system: PHP Version: 4.0.3pl1 Assigned To: joey Comments: Again, I plan on working on this during the coming months. Previous Comments: --------------------------------------------------------------------------- [2000-11-13 21:08:48] [EMAIL PROTECTED] ok, I had to patch php-4.0.3pl1 in order to compile php --with-sybase-ct using freetds libs (patch at the end of this report) the problem is that FreeTDS does not have a couple of files that php looks for when compiling --with-sybase-ct support, those files (if I'm not mistaken) are: libcs.so libcomn.so libintl.so libtcl.so libsybtcl.so libinsck.so now, I've read the bug report #7595 http://bugs.php.net/bugs.php?id=7595 which is directly related to this issue, in fact the patch I built is strictly based on the patch laszlo talks about on that bug-report. But this one works on 4.0.3pl1 Basically: freeTDS is useless on php4 unless you patch php, so It's more a php issue than a freetds issue, would be possible for you guys to help in the next releases of php by including something like --with-freetds instead of --with-sybase-ct (or something like it) in a way that it wont look for those missing files? Well, unless php team incorporates a way to compile freetds support without hacking php we'll just have to patch php from version to version, (which is not bad for me since I already learned how to do it, but for the rest of the guys who are starting with php... well it can be a real pain!) and here's the patch I've used to succesfully compile freeTDS as --with-sybase-ct (maybe it has some errors, it's my first patch EVER.. go figure :)) diff -u -r php-4.0.3pl1/configure php-4.0.3pl1-patched/configure --- php-4.0.3pl1/configure Sun Oct 15 08:47:10 2000 +++ php-4.0.3pl1-patched/configure Mon Nov 13 21:55:17 2000 @@ -16720,7 +16720,7 @@ echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-lintl $LIBS" +#LIBS="-lintl $LIBS" cat > conftest.$ac_ext <<EOF #line 16726 "configure" #include "confdefs.h" @@ -39336,7 +39336,7 @@ *) - LIBS="-lcs $LIBS" + #LIBS="-lcs $LIBS" ;; @@ -39360,7 +39360,7 @@ *) - LIBS="-lcomn $LIBS" + #LIBS="-lcomn $LIBS" ;; @@ -39372,7 +39372,7 @@ *) - LIBS="-lintl $LIBS" + #LIBS="-lintl $LIBS" ;; @@ -39388,7 +39388,7 @@ echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-ltcl $SYBASE_CT_LIBS $LIBS" +#LIBS="-ltcl $SYBASE_CT_LIBS $LIBS" cat > conftest.$ac_ext <<EOF #line 39394 "configure" #include "confdefs.h" @@ -39422,7 +39422,7 @@ *) - LIBS="-ltcl $LIBS" + #LIBS="-ltcl $LIBS" ;; @@ -39436,7 +39436,7 @@ *) - LIBS="-lsybtcl $LIBS" + #LIBS="-lsybtcl $LIBS" ;; @@ -39451,7 +39451,7 @@ echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-linsck $LIBS" +#LIBS="-linsck $LIBS" cat > conftest.$ac_ext <<EOF #line 39457 "configure" #include "confdefs.h" @@ -39485,7 +39485,7 @@ *) - LIBS="-linsck $LIBS" + #LIBS="-linsck $LIBS" ;; @@ -39502,7 +39502,7 @@ echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" -LIBS="-linsck $LIBS" +#LIBS="-linsck $LIBS" cat > conftest.$ac_ext <<EOF #line 39508 "configure" #include "confdefs.h" @@ -39536,7 +39536,7 @@ *) - LIBS="-linsck $LIBS" + #LIBS="-linsck $LIBS" ;; diff -u -r php-4.0.3pl1/ext/sybase_ct/config.m4 php-4.0.3pl1-patched/ext/sybase_ct/config.m4 --- php-4.0.3pl1/ext/sybase_ct/config.m4 Sat Jun 24 06:01:51 2000 +++ php-4.0.3pl1-patched/ext/sybase_ct/config.m4 Mon Nov 13 21:57:19 2000 @@ -20,21 +20,11 @@ fi AC_ADD_INCLUDE($SYBASE_CT_INCDIR) AC_ADD_LIBPATH($SYBASE_CT_LIBDIR) - AC_ADD_LIBRARY(cs) AC_ADD_LIBRARY(ct) - AC_ADD_LIBRARY(comn) - AC_ADD_LIBRARY(intl) - SYBASE_CT_LIBS="-lcs -lct -lcomn -lintl" + SYBASE_CT_LIBS="-lct" old_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -L$SYBASE_CT_LIBDIR" - AC_CHECK_LIB(tcl, netg_errstr, - [ AC_ADD_LIBRARY(tcl) ], - [ AC_ADD_LIBRARY(sybtcl) ], - [ $SYBASE_CT_LIBS ]) - AC_CHECK_LIB(insck, insck__getVdate, - [ AC_ADD_LIBRARY(insck) ]) - AC_CHECK_LIB(insck, bsd_tcp, - [ AC_ADD_LIBRARY(insck) ]) + LDFLAGS=$old_LDFLAGS else AC_MSG_RESULT(no) --------------------------------------------------------------------------- [2000-11-13 15:02:54] [EMAIL PROTECTED] php4.0.3pl1 'make' fails when using ./configure --with-sybase-ct=/usr/local/freetds with the following error: make[1]: Entering directory `/src/php-4.0.3pl1' /bin/sh /src/php-4.0.3pl1/libtool --silent --mode=link gcc -I. -I/src/php-4.0.3pl1/ -I/src/php-4.0.3pl1 -I/src/php-4.0.3pl1/main -I/www/include -I/src/php-4.0.3pl1/Zend -I/src/php-4.0.3pl1 -I/usr/local/include/mysql -I/usr/local/freetds/include -I/src/php-4.0.3pl1/ext/xml/expat/xmltok -I/src/php-4.0.3pl1/ext/xml/expat/xmlparse -I/src/php-4.0.3pl1/TSRM -DXML_BYTE_ORDER=12 -g -O2 -o libphp4.la -rpath /src/php-4.0.3pl1/libs -avoid-version -L/usr/local/lib/mysql -L/usr/local/pgsql/lib -L/usr/local/freetds/lib -R /usr/local/lib/mysql -R /usr/local/pgsql/lib -R /usr/local/freetds/lib stub.lo Zend/libZend.la sapi/apache/libsapi.la main/libmain.la regex/libregex.la ext/gettext/libgettext.la ext/mysql/libmysql.la ext/pcre/libpcre.la ext/pgsql/libpgsql.la ext/posix/libposix.la ext/session/libsession.la ext/standard/libstandard.la ext/sybase_ct/libsybase_ct.la ext/xml/libxml.la TSRM/libtsrm.la -ldl -lsybtcl -lintl -lcomn -lct -lcs -lpq -lmysqlclient -lresolv -lm -ldl -lcrypt -lnsl -lresolv /usr/bin/ld: cannot find -lsybtcl collect2: ld returned 1 exit status make[1]: *** [libphp4.la] Error 1 make[1]: Leaving directory `/src/php-4.0.3pl1' make: *** [all-recursive] Error 1 here's the details of my installation: freeTDS from cvs (version 0.51) was compiled with: ./configure --with-tdserver=4.2 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static make && make install (everything went ok, no errors) then at php4.0.3pl1 src dir: ./configure --with-apxs=/www/bin/apxs --with-mysql=/usr/local --with-ftp --with-gettext --with-config-file-path=/etc --disable-debug --enable-track-vars --with-pgsql=/usr/local/pgsql --with-sybase-ct=/usr/local/freetds as far as I can tell that required libsybctl file is not available at the freetds distribution, it is available though, at the sybase-common-11.9.2-3.i386.rpm (from sybase.com) I'll now try to mix files from freetds and sybase-common but I never really liked to play Mr. Frankenstein. anyway, any feedback would be great :) regards, Alex Verstraeten --------------------------------------------------------------------------- ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=7792&edit=2 -- 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]