php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #10331 configure: test gd functions lacks inclusion of -lpng, -lz
Submitted: 2001-04-15 02:07 UTC Modified: 2001-05-10 05:48 UTC
From: elkner at linofee dot org Assigned:
Status: Closed Package: GD related
PHP Version: 4.0.4pl1 OS: Linux 2.4.3 i686
Private report: No CVE-ID: None
 [2001-04-15 02:07 UTC] elkner at linofee dot org
I'm using shared libgd.so.2.0.0 which supports jpeg, xpm, png and libz. Unfortunately php configure does NOT include
libpng and libz in its test, so it gets wrong results.
E.g.:

configure:15759: checking whether to include GD support
configure:16388: checking for gdImageString16 in -lgd
configure:16407: gcc -o conftest -g -O2  -DLINUX=2 -DMOD_SSL=206105 -DEAPI -DUSE
_EXPAT -DSHARED_CORE  -Wl,-rpath,/opt/ssl/lib -L/opt/ssl/lib -Wl,-rpath,/usr/X11
R6/lib -L/usr/X11R6/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib -L/usr/local/
lib conftest.c -lgd  -lgd -lX11 -lXpm -ljpeg -lcrypto -lssl -lresolv -lm -ldl -l
crypt -lnsl  -lresolv -L/usr/lib -ljpeg -L/usr/X11R6/lib -lXpm -L/usr/X11R6/lib 
-lX11 1>&5
/usr/local/lib/libgd.so: undefined reference to `uncompress'
/usr/local/lib/libgd.so: undefined reference to `png_get_rowbytes'
/usr/local/lib/libgd.so: undefined reference to `png_set_strip_16'
/usr/local/lib/libgd.so: undefined reference to `png_create_read_struct'
...
collect2: ld returned 1 exit status
configure: failed program was:
...

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-04-15 08:52 UTC] wez@php.net
Support for GD was just added to the latest CVS.
Try a snapshot from snaps.php.net or checkout the latest CVS and configure with:

./configure 
"--with-jpeg-dir" \ 
"--with-png-dir" \ 
"--with-freetype-dir" \ 
"--with-gd" 

Beware - this will implicitly --enable-gd-native-ttf.

Please let me know how you get on.

--Wez.
 [2001-04-15 08:54 UTC] wez@php.net
Sorry - you also need --with-xpm-dir, and I meant to say GD 2.


 [2001-04-15 12:20 UTC] elkner at linofee dot org
Nope, --with-png-dir does not resolve the problem (that was
my first try). I can't use --with-freetype-dir, since freetype support is not part of the used gd lib.

Here the params I used:
./configure --prefix=/develop/sl7/proto/opt/php4 --with-apxs --enable-discard-path --with-config-file-path=/etc --enable-safe-mode --with-exec-dir=/opt/php/bin --with-openssl=/opt/ssl --enable-calendar --enable-ftp --with-gd=/usr/local --with-ldap --with-mysql --with-oci8=/opt/oracle --enable-sockets --with-regex=system --enable-sysvsem --enable-sysvshm --with-zlib=/usr/local --with-xpm-dir=/usr/X11R6 --with-jpeg-dir=/usr --enable-track-vars --with-png-dir=/usr

BTW: What for is the --with-sockets stuff (just for incl. of -lsockets ?)

 [2001-04-15 14:21 UTC] elkner at linofee dot org
I made a quick and dirty patch to configure, so that it
works:

--- configure   Thu Jan 11 19:39:29 2001
+++ ../../php-4.0.4pl1/configure        Sun Apr 15 19:40:28 2001
@@ -16390,7 +16390,7 @@
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lgd  $LIBS"
+LIBS="-lgd  -lpng -lz $LIBS"
 cat > conftest.$ac_ext <<EOF
 #line 16396 "configure"
 #include "confdefs.h"
@@ -16433,7 +16433,7 @@
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lgd  $LIBS"
+LIBS="-lgd -lpng -lz $LIBS"
 cat > conftest.$ac_ext <<EOF
 #line 16439 "configure"
 #include "confdefs.h"
@@ -16476,7 +16476,7 @@
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lgd  $LIBS"
+LIBS="-lgd -lpng -lz $LIBS"
 cat > conftest.$ac_ext <<EOF
 #line 16482 "configure"
 #include "confdefs.h"
@@ -16519,7 +16519,7 @@
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lz  $LIBS"
+LIBS="-lz -lpng $LIBS"
 cat > conftest.$ac_ext <<EOF
 #line 16525 "configure"
 #include "confdefs.h"

 [2001-04-16 05:30 UTC] wez@php.net
Could you reverse your patch, and then:
rm config.cache
./configure
 --prefix=/develop/sl7/proto/opt/php4
 --with-apxs --enable-discard-path
 --with-config-file-path=/etc --enable-safe-mode
 --with-exec-dir=/opt/php/bin
 --with-openssl=/opt/ssl --enable-calendar
 --enable-ftp --with-ldap --with-mysql
 --with-oci8=/opt/oracle --enable-sockets
 --with-regex=system --enable-sysvsem
 --enable-sysvshm --with-zlib=/usr/local
 --with-xpm-dir=/usr/X11R6
 --with-jpeg-dir=/usr
 --enable-track-vars
 --with-png-dir=/usr
 --with-gd=/usr/local 

Let me know if it works; if it does not, I would like to see your config.log to find out what is going on.

BTW: --with-sockets enables the sockets extension - you probably don't need it.


 [2001-04-16 21:12 UTC] wez@php.net
User Reported:
-----------------
Works for some parts, but not all:
checking whether to include GD support... yes (static)
checking for gdImageString16 in -lgd... no
checking for gdImagePaletteCopy in -lgd... no
checking for gdImageColorClosestHWB in -lgd... no
checking for compress in -lz... no
checking for png_info_init in -lpng... yes
checking for gdImageColorResolve in -lgd... yes
checking for gdImageCreateFromPng in -lgd... yes
checking for gdImageCreateFromGif in -lgd... no
checking for gdImageWBMP in -lgd... yes
checking for gdImageCreateFromJpeg in -lgd... yes
checking for gdImageCreateFromXpm in -lgd... yes

To whom should I send the config.log? It is uncompressed about 120K,
compress about 11K - so probably not suitable for a mailing list?

Regards,
jens.

BTW: Any hints how to trace that problem:

# /etc/init.d/apachectl-1.3.19 start
Syntax error on line 233 of /opt/www/conf/httpd.conf:
API module structure `php4_module' in file /opt/www/libexec/libphp4.so is garbled - perhaps this is not an Apache module DSO?
/etc/init.d/apachectl start: httpd could not be started
-----------------

Please email me the config.log to mailto:wez@php.net

The garbled module problem is technically a different bug; I would suggest ensuring that gd links in correctly (or building without) and making sure that you do "./cvsclean; ./buildconf" before you configure.
 [2001-05-10 05:48 UTC] sniper@php.net
Try latest CVS. If that doesn't work for you, reopen.

--Jani

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Nov 05 19:01:29 2024 UTC