Bug #14557: Compile Failure (and potential fix)
| From: | squasar at squasar dot dhs dot org | Date: | Mon, 17 Dec 2001 06:01:28 +0000 |
| Subject: | Bug #14557: Compile Failure (and potential fix) | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-74082@lists.php.net to get a copy of this message | ||
From: squasar@squasar.dhs.org
Operating system: MacOS X (10.1.1)
PHP version: 4.1.0
PHP Bug Type: Compile Failure
Bug description: Compile Failure (and potential fix)
The compile of PHP 4.1.0 (source tarball) fails miserably
out-of-the-box on MacOS X 10.1.1. The CGI version seems
mostly alright, but the Apache DSO is a dismal mess. I'm
running the latest released Apache (1.3.22). Also, I'm
working with the CC shipped by Apple for OS X (this failed
even MORE miserably with my compiled version of GCC, which
is expected since OS X isn't supported by GCC yet) After
some 5 days of wrestling, writing manual compiles, and
running make -n and libtool --dry-run to get some idea of
what the compilation is doing, I finally got it to work
properly via writing a tcsh script that manually compiles
the files involved (My configure is "./configure --with-
apxs=/usr/sbin/apxs --enable-ftp --enable-mbstring --
enable-mbstr-enc-trans --with-mysql=/usr/local --enable-
sockets --with-tsrm-pthreads --enable-ctype --with-zlib --
prefix=/usr --sysconfdir=/etc --localstatedir=/var --
mandir=/usr/share/man"). Instead of filling this text box
beyond its buffer with the entire script (which gets a bit
long in the tooth, obviously), here's a summary of what
options it uses:
cc command when compiling normal source files: /usr/bin/cc
-dynamic -fPIC -fno-common -traditional-cpp -O2 -I(all the
various include dirs) -D(all the various defines) -c
(source file).c -o (source file).lo
ld command when combining the .lo files in a dir into a .a:
/usr/bin/ld -r -o lib(dir name).a (all the objects from the
dir)
cc command for creating the final libphp4.so: /usr/bin/cc -
bundle -bundle_loader /usr/sbin/httpd -flat_namespace -
undefined warning -lm -lz -L/usr/local/lib/mysql -
lmysqlclient -o libphp4.so (all the .a's compiled above)
# for this one, note that the -L and -l for mysql only
apply for compiling with a non-bundled libmysql
Putting all this together into a tcsh script gave me a
successful PHP compile, and adding the appropriate install
command (/usr/sbin/apxs -S LIBEXECDIR="/usr/libexec/httpd"
-i -a -n php4 libphp4.so) gave me a working Apache + PHP
4.1.0 + MySQL. My humble suggestion is that whoever
maintains the autoconf script for PHP use this information
to make a normal ./configure work under Darwin.
(incidently,
uname -a == Darwin hostname 5.1 Darwin
Kernel Version 5.1: Tue Oct 30 00:06:34 PST 2001; root:xnu/
xnu-201.5.obj~1/RELEASE_PPC Power Macintosh powerpc).
Thanks :)
--
Edit bug report at: http://bugs.php.net/?id=14557&edit=1