ID: 17269 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Feedback Bug Type: GD related Operating System: FreeBSD 4.3 PHP Version: 4.2.1 New Comment:
Finally got it running! well, it's not a problem with PHP, but as Derick mentioned a shared library problem. The issue with not building shared libraries happens with jpeg-6b and gdbm 1.8.0 I wasn't able to find the stuff [EMAIL PROTECTED] mentioned in libtool, ltconfig or ltmain.sh so i started a search on my own for a solution. The problem is related to the version of ltconfig and ltmain.sh, jpeg6b and gdbm are using. With this version, compiling shared libraries fails on FreeBSD 4.3(x?) d57107# ./ltconfig --version ltconfig (GNU libtool) 1.2 Forcing shared libraries in Makefile doesn't work either, It messes up the gcc -shared command jpeg is using and it fails to build the compile line in a good order (something with 'gcc -o ./libs' where ./libs should be an output file and not a directory?) anyway the solution is to do a cp /usr/local/share/libtool/ltconfig ltconfig and a cp /usr/local/share/libtool/ltmain.sh ltmain.sh it 'updates' the old ltconfig, jpeg and gdbm are using too this version: d57107# /usr/local/share/libtool/ltconfig --version ltconfig (GNU libtool) 1.3.4-freebsd-ports (1.385.2.196 1999/12/07 21:47:57) when you've done this and run confure/gmake, jpeg and gdbm are reporting some errors during compilation: 'test: no: unexpected operator' you can safely (?) ignore these, it does work. and this is my new configure line, as you can see i added some packages: ./configure \ --with-apxs2=/usr/local/apache2/bin/apxs \ --with-config-file-path=/etc \ --enable-shared \ --enable-track-vars \ --enable-ftp \ --with-gdbm \ --with-gd \ --enable-gd-native-ttf \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-mysql=/usr/local \ --with-zlib-dir \ --with-zlib \ --with-pdflib \ --with-tsrm-pth \ --with-openssl \ --with-zip \ --with-snmp \ --with-tsrm-pth \ only have to rebuild php to update zlib to 1.1.4: ---- zlib ZLib Support enabled Compiled Version 1.1.4 Linked Version 1.1.3 --- /me is very happy it works now :) thank you all for the support! Previous Comments: ------------------------------------------------------------------------ [2002-05-16 13:21:30] [EMAIL PROTECTED] In the libtool script, check whether file_magic_cmd in the freebsd* case statement lists '/usr/bin/file -L' instead of plain /usr/bin/file and change accordingly (it should be '/usr/bin/file -L'). Then try to recompile with shared support. ------------------------------------------------------------------------ [2002-05-16 13:09:40] [EMAIL PROTECTED] just tried it: d57107# ./configure --enable-shared --- checking if libtool supports shared libraries... no checking whether to build shared libraries... no checking whether to build static libraries... yes --- libtool version 1.4.2.tar.gz for some reason jpeg won't compile as a shared library. tried to edit Makefile and change ./libtool to /usr/local/bin/libtool, but that doesn't make a difference, they are the same version. can i change Makefile to build a shared library while configure says it can't? and ideas? ------------------------------------------------------------------------ [2002-05-16 11:06:31] [EMAIL PROTECTED] First of all, thanks for this very extensive report... if only all reports where like this :) I think the problem might be that libjpeg.a is a static library which is compiled in in both gd and libpdf, you might try a shared variant and see if this fixes it. Derick ------------------------------------------------------------------------ [2002-05-16 07:04:49] [EMAIL PROTECTED] when compiling PHP with GD & JPEG support i get a lot of errors with libjpeg.a moaning about 'multiple definitions' and 'first defined here' stuff. system config: FreeBSD 4.3 Apache 2.0.36 PHP 4.2.1 GD 1.8.4 (compiled ok with support for png, jpeg, freetype) Jpeg 6B Libpng 1.2.2 Gdbm 1.8.0 Pdflib 4.0.2 Freetype 2.1.0 configure: ./configure \ --with-apxs2=/usr/local/apache2/bin/apxs \ --with-config-file-path=/etc \ --enable-shared \ --enable-track-vars \ --enable-ftp \ --with-gdbm=/usr/local \ --with-gd=/usr/local/graph/gd \ --with-jpeg-dir=/usr/local/graph/jpeg \ --enable-gd-native-ttf \ --with-png-dir=/usr/local/graph/png \ --with-freetype-dir=/usr/local/graph/freetype2 \ --with-mysql=/usr/local \ --with-zlib-dir=/usr/local/graph/zlib \ --with-zlib \ --with-pdflib=/usr/local/graph/pdflib \ --with-tsrm-pth \ configure goes OK. all the functions are supported and no errors are given. When i do a gmake i get this error: /usr/local/lib/libjpeg.a(jcapimin.o): In function `jpeg_CreateCompress': jcapimin.o(.text+0x0): multiple definition of `jpeg_CreateCompress' /usr/local/lib/libjpeg.a(jcapimin.o)(.text+0x0): first defined here It goes on for about 50 of these jpeg_<functions>. you can look at the complete error here: http://httpd.chello.nl/~jstienstra01/php/compile_error.txt The STRANGE thing is that if i leave apache2 support out (--with-apxs2) and compile it as a CGI-BINARY, i do not get errors and it compiles fine ? thing i've tried: -tried GD2.0.1 and gd 1.8.3 instead of gd 1.8.4 -did a system search for old jpeg/png/GD libraries. deleted them all and did a clean install for these packages -install the packages in standard directorys (/usr/lib and /usr/include etc), doesn't work either. -tried php 4.1.0, php 4.2.0 and php 4.2.1 -searching bug database for similiar problem :) -been busy googling for 4 days, yet to find no fix for this problem, only people that have the same problem and didnt get an answer too. THE thing that i don't understand is that if i leave apache support out and compile it as a cgi binary it gives no compile errors. help? ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=17269&edit=1