Re: php5 as universal binary (Mac OS X)
| From: | Antony Dovgal | Date: | Fri, 27 Jul 2007 09:45:40 +0000 |
| Subject: | Re: php5 as universal binary (Mac OS X) | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-31295@lists.php.net to get a copy of this message | ||
Intel Mac is little-endian, PPC Mac is big-endian.
Endiannes is detected during configure run, that's why the binary works fine on Intel Mac, but not on PPC.
To make it work on both you either need to build separate binaries on PPC and Intel, and then merge them (IIRC that was possible), or you need to patch PHP sources.
In my case patching PHP sources was the easiest solution, so I replaced
WORDS_BIGENDIAN macro (defined by configure) with __BIG_ENDIAN__ (defined by Mac GCC in compile time).
If anyone have any suggestions on how to improve universal binary support so that it would not require patching, I'd gladly listen to them.
On 27.07.2007 13:15, Christian Speich wrote:
hello, I have asked in the gernal php list and they say I should be ask here: I have an problem with php5 as universal binary on Mac OsX. The universal binary was build on an intel mac and it works good... on an intel mac ;) When a friend it try on an ppc mac he had some problems. For example phpsqliteadmin say this error: Fatal error: Balloc() allocation exceeds list boundary in /Applications/xampp/xamppfiles/phpsqliteadmin/SPSQLite.class.php on line 998 And phpmyadmin loads and loads and loads and loads... BUT my php4 universal binary works perfect on intel and ppc macs... :/ My configure for php5 look like this: PREFIX=/Applications/xampp/xamppfiles SYSCONFDIR=/Applications/xampp/etc export LD_RUN_PATH="$PREFIX/lib" export LD_LIBRARY_PATH="$PREFIX/lib" export CFLAGS="-I$PREFIX/include -L$PREFIX/lib -isysroot /Developer/SDKs/MacOSX10.4u.sdk" export CPPFLAGS="-I$PREFIX/include" export CXXFLAGS="-I$PREFIX/include -L$PREFIX/lib" export LDFLAGS="-L$PREFIX/lib -I$PREFIX/include" export SOFLAGS="-L$PREFIX/lib" CFLAGS="$CFLAGS -arch i386 -arch ppc" ./configure --prefix=$PREFIX --program-suffix=-5.2.3 --libdir=$PREFIX/lib/php/php5 --includedir= $PREFIX/include/php/php5 --with-apxs2=$PREFIX/bin/apxs --with-config-file-path=$SYSCONFDIR --with-mysql=$PREFIX --disable-debug --enable-bcmath --enable-calendar --enable-ctype --enable-dbase --enable-discard-path --enable-exif --enable-filepro --enable-force-cgi-redirect --enable-ftp --enable-gd-imgstrttf --enable-gd-native-ttf --with-ttf --enable-magic-quotes --enable-memory-limit --enable-safe-mode --enable-shmop --enable-sigchild --enable-sysvsem --enable-sysvshm --enable-track-vars --enable-trans-sid --enable-wddx --enable-yp --with-ftp --with-ncurses= $PREFIX --with-gdbm=$PREFIX --with-jpeg-dir=$PREFIX --with-png-dir= $PREFIX --with-freetype-dir=$PREFIX --without-xpm --with-zlib=yes --with-zlib-dir=$PREFIX --with-openssl=$PREFIX --with-expat-dir=$PREFIX --enable-xslt=$PREFIX --with-xsl=$PREFIX --with-dom=$PREFIX --with-ldap= $PREFIX --with-gd=$PREFIX --with-mysql-sock=$PREFIX/var/mysql/mysql.sock --with-mcrypt=$PREFIX --with-mhash=$PREFIX --enable-sockets --with-curl=$PREFIX --enable-mbregex --enable-zend-multibyte --with-zip= $PREFIX --enable-exif --with-sqlite --with-libxml-dir=$PREFIX --enable-soap --enable-pcntl --enable-dbx --with-mysqli= $PREFIX/bin/mysql_config --with-bz2=$PREFIX --with-pear= $PREFIX/lib/php/pear --with-mssql=$PREFIX --with-imap-dir=$PREFIX --with-imap=$PREFIX --enable-mbstring=all --with-pgsql=shared,/usr --with-gettext=$PREFIX I don't think thats this are errors from the php-scripts, I think thats an problem with php. I hope you can help me to resolve this problem thanks, kleinweby-- Wbr, Antony Dovgal