php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #60268 Compiling PHP fails
Submitted: 2011-11-11 15:47 UTC Modified: 2012-11-07 07:43 UTC
Votes:2
Avg. Score:4.5 ± 0.5
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:1 (100.0%)
From: rich06 at gmail dot com Assigned: patrickallaert (profile)
Status: Closed Package: Compile Failure
PHP Version: 5.3.8 OS: Mac OS X 10.7.2 (Lion)
Private report: No CVE-ID: None
 [2011-11-11 15:47 UTC] rich06 at gmail dot com
Description:
------------
Compiling PHP v.5.3.8 fails on Mac OS X 10.7.2 (Lion) -- linker errors are generated relating to iconv

Test script:
---------------
./configure  --prefix=/usr/local --mandir=/usr/share/man --infodir=/usr/share/info --with-apxs2=/usr/local/apache2/bin/apxs --enable-cli --with-zlib-dir=/usr --enable-exif --enable-ftp --enable-mbstring --enable-mbregex --enable-sockets --with-curl=/usr --with-config-file-path=/etc --sysconfdir=/etc --with-mysql-sock=/tmp --with-mysql=/usr/local/mysql --with-xmlrpc --with-xsl=/usr --without-pear --with-libxml-dir=/usr --with-zlib --with-sqlite --with-gd --with-pdo-mysql=/usr/local/mysql --with-jpeg-dir=/opt/local --with-png-dir=/usr/X11R6 --with-iconv-dir=/opt/local --enable-pcntl --enable-soap --enable-wddx --enable-zip

make clean
make

Expected result:
----------------
make passes

Actual result:
--------------
Undefined symbols for architecture x86_64:
  "_libiconv_open", referenced from:
      _do_convert in gdkanji.o
      _convert in encodings.o
  "_libiconv", referenced from:
      _do_convert in gdkanji.o
      _convert in encodings.o
  "_libiconv_close", referenced from:
      _do_convert in gdkanji.o
      _convert in encodings.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [libs/libphp5.bundle] Error 1


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2011-11-11 17:08 UTC] rich06 at gmail dot com
Forgot to mention that I did try all the suggestions such as moving MH_BUNDLE_FLAGS in the Makefile and editing iconv.c using different iconv libs (MacPorts) -- nothing worked...
 [2011-11-30 13:26 UTC] rich06 at gmail dot com
Bump... anyone? This is really screwing me as the version of PHP supplied by Apple won't run background CLI scripts and is missing some extensions I need to have
 [2011-11-30 20:46 UTC] rich06 at gmail dot com
-Status: Open +Status: Closed
 [2011-11-30 20:46 UTC] rich06 at gmail dot com
I finally resolved this by editing the Makefile as follows so that the first -L/usr/lib is changed to -L/opt/local/lib (I am using Macports)

MH_BUNDLE_FLAGS = -bundle -bundle_loader /usr/local/apache2/bin/httpd -L/opt/local/lib -laprutil-1 -lldap -llber -llber -lexpat -liconv -L/usr/lib -lpq -lsqlite3 -lldap -llber -llber -L/usr/lib -lapr-1 -lpthread 

Hope this helps someone else.
 [2011-12-06 09:37 UTC] lolautruche at gmail dot com
I confirm the same issue while compiling PHP 5.4RC2.
To reproduce it, you'll need to have MacPorts installed with iconv lib installed 
here. Basically, I already have a 5.3.8 built with MacPorts on my system.

Modifying the Makefile as rich06 suggested made it work, but shouldn't this be 
made by configure script ? I tried with --with-iconv-dir=/opt/local/lib, but it 
doesn't seem to work here
 [2011-12-06 10:02 UTC] patrickallaert@php.net
-Status: Closed +Status: Re-Opened
 [2011-12-06 10:02 UTC] patrickallaert@php.net
This issue should be solved, editing manually the Makefile isn't the way to go.
 [2011-12-08 09:59 UTC] lolautruche at gmail dot com
There seems to be linked with --with-apxs2 option.
Indeed, I first used --with-apxs2 (without value) and --with-iconv-dir=/opt/local 
(macports prefix). Here the compiler will take apxs system default (which is 
/usr/sbin/apxs), and for some reason also makes ignore --with-iconv-dir value.

If I use --with-apxs2=/opt/local/apache2/bin/apxs (apache2 macports prefix), then 
everything will be fine.
 [2011-12-08 10:38 UTC] patrickallaert@php.net
Closing.
Invalid usage of --with-apxs2 which expects a file argument:
--with-apxs2 --with-iconv-dir=/opt/local
 [2011-12-08 10:38 UTC] patrickallaert@php.net
-Status: Re-Opened +Status: Closed -Assigned To: +Assigned To: patrickallaert
 [2011-12-08 10:43 UTC] lolautruche at gmail dot com
I don't agree here, as ./configure --help says:

  --with-apxs2=FILE     Build shared Apache 2.0 Handler module. FILE is the 
optional
                          pathname to the Apache apxs tool apxs

So FILE is optional
 [2012-03-05 18:28 UTC] dedalo at doramail dot com
This is a still an issue men and it's not related to --with-apxs2. This is my configure command line:

sudo ./configure --prefix=/usr/local --with-apxs2=/usr/sbin/apxs --with-ldap=/usr --with-kerberos=/usr --enable-cli --with-zlib-dir=/usr --enable-exif --enable-ftp --enable-mbstring --enable-mbregex --enable-sockets --with-iodbc=/usr --with-curl=/usr --with-config-file-path=/etc --sysconfdir=/private/etc --with-mysql-sock=/var/mysql/mysql.sock --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl=/usr --with-xmlrpc --with-xsl=/usr --without-pear --with-libxml-dir=/usr --with-iconv-dir=/opt/local --with-gd --with-jpeg-dir=/opt/local --with-png-dir=/opt/local --with-freetype-dir=/opt/local --with-mcrypt=/opt/local

As you can see, there is a file path for apsx2 option: --with-apxs2=/usr/sbin/apxs

But the make still fails. To make it work, I changed the Makefile, in particular the MH_BUNDLE_FLAGS, like suggested by rich06, as follow: -L/opt/local/lib

This is a bug, and it's still there. Reopen it, please.
 [2012-03-09 09:30 UTC] sander at myxt dot nl
If you are on OSX and using Xcode 4.3, make sure you install the command line 
tools. That should solve a good deal of extension compiling errors.
 [2012-03-31 20:38 UTC] SaraviaJ at gmail dot com
I had this same issue when compiling PHP5.4 on Mac OS X 10.6.8 ( Snow Leopard )

I tried both the local copy of the iconv library that and also tried to specify one that I got via fink.

I had to perform the correction that rich mentioned and changed the path to a the version of iconv that I compiled.
 [2012-04-09 23:27 UTC] thehuey at gmail dot com
Same problem.  Makefile edit to point at /opt/local/lib worked for me as well.
 [2012-11-06 20:21 UTC] estevao dot santos at ci2 dot pt
This happens to me to compiling PHP 5.4.8 on MAC OSX 10.7 (Lion). Even with the 
Makefile edition fix proposed in the comments I still get the same error.

I have Macports and installed libiconv through macports. Tried a custom compiled 
libiconv to no avail.
 [2014-05-23 01:16 UTC] yougmark94 at gmail dot com
see http://stackoverflow.com/questions/10457982/compiling-php-error-make-libs-libphp5-bundle-error-1
Makefile need to be modified under OS X. Or conflicts with libiconv version come out. I completely solved this problem on my MBP.
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Thu Jul 18 10:01:25 2019 UTC