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

Reply via email to