Login or Sign up Help | Site Map
Connecting Tech Pros Worldwide

Configuring PHP 5.2.3 with GD support for Mac OS X

Written by pbmods, June 28th, 2007
Configuring PHP 5.2.3 with GD support for Mac OS X

PHP 5.2.3 does not seem to want to configure with GD support on Mac OS X for some reason. When configuring, you may notice this error:

Code: ( text )
  1. configure: error: GD build test failed. Please check the config.log for details.


Checking config.log yields the following:
Code: ( text )
  1. configure:42434: gcc -o conftest -g -O2  -no-cpp-precomp  -L/usr/local/lib -L/usr/local/lib conftest.c  -L   -lfreetype -lpng -lz -ljpeg -lm  -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm 1>&5
  2. /usr/bin/ld: -L: directory name missing
  3. collect2: ld returned 1 exit status


Notice the '-L ' in the string above.

The easy solution is to remove that errant '-L', since it doesn't do anything (except crash the configure script, that is). But where is it?

Looking on line 42434 of the configure script doesn't look too helpful....
Code: ( text )
  1. if { (eval echo configure:42434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
  2. then


Looks like the problem is in $ac_link, which is defined on line 2152:
Code: ( text )
  1. ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'


Since the '-L ' showed up after 'conftest.c' in the ld arguments, we know the problem must be in $LIBS.

But where is $LIBS defined?

Moving backwards from line 42434, we encounter this definition on line 42415:
Code: ( text )
  1. LIBS=" -L$GD_LIB $GD_SHARED_LIBADD  $LIBS"


If you were to echo $GD_LIB, you'd get an empty string. Bingo!

Simply remove that part of the string:
Code: ( text )
  1. LIBS=" $GD_SHARED_LIBADD  $LIBS"


Then delete config.cache and reconfigure, and you're golden!

5 Comments Posted ( Post your comment )
Motoma / July 10th, 2007 02:08 PM
I think it's appalling that $GD_LIB, $GD_SHARED_LIBADD, and $LIBS are all empty, another alternative to the one you proposed would be to hunt down the appropriate locations and set them properly when you call your configure or make command.
mdarby / July 16th, 2007 06:37 PM
Dude, I owe you a beer or three.
pbmods / July 17th, 2007 08:36 PM
Quote:
Originally Posted by Motoma
I think it's appalling that $GD_LIB, $GD_SHARED_LIBADD, and $LIBS are all empty, another alternative to the one you proposed would be to hunt down the appropriate locations and set them properly when you call your configure or make command.


Since PHP uses a bundled version of GD, there really aren't any additional library locations to search.
sojweb / August 13th, 2007 03:28 PM
You're a lifesaver; the fix works like a charm.
coolgames / October 2nd, 2007 10:37 AM
wow !

i;ve been wondering....
thankyou.

Stats:
Views: 3583
Comments: 5