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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: rich06 at gmail dot com
New email:
PHP Version: OS:

 

 [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

Pull Requests

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-2024 The PHP Group
All rights reserved.
Last updated: Tue Dec 17 09:01:29 2024 UTC