#19314 [Opn->Fbk]: unable to startup Apache (undefined symbol)
| From: | sniper@php.net | Date: | Mon, 09 Sep 2002 22:00:43 +0000 |
| Subject: | #19314 [Opn->Fbk]: unable to startup Apache (undefined symbol) | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-18862@lists.php.net to get a copy of this message | ||
ID: 19314
Updated by: sniper@php.net
Reported By: pitrou@free.fr
-Status: Open
+Status: Feedback
Bug Type: Apache related
Operating System: Linux 2.4.19
PHP Version: 4.2.3
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php4-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-latest.zip
I'm pretty sure this is fixed in CVS..so please try the snapshot.
Previous Comments:
------------------------------------------------------------------------
[2002-09-09 16:40:16] pitrou@free.fr
"How would it know? It's just looking for libs and include files, and
the first it finds is the first it uses. Marking as bogus since this
is/was a user issue."
Please re-read the whole thing before coming to such
conclusions... There are two problems here :
- At one time, libphp4.so was created with no libraries linked to, yet
no warning nor error told about it during the build process. Silent
error ?! That's not a good behaviour as it's quite obvious that
libphp4.so won't work without anything linked to, so why didn't the
build process emit an error ? And why at first didn't it link against
the proper libraries (even the most basic ones, see : only ldlinux and
libc are referenced) ??
- Even more, the only reason I have installed GD 2.0 on top of GD 1.8.3
is because *it first failed with GD 1.8.3*. Which means I got the
"undefined symbol" even at first when I tried with the right GD
version. Which is definitely not a right behaviour either. The
"undefined symbol" belonging to GD, I thought PHP's requirements for GD
were higher now, so took the latest version.
The thing is there seems to be some borderline cases when the
configure/build procedure does wrong things without telling the users.
It's quite boring spending some hours chasing this kind of things (and
I probably would have given up anyway if I hadn't got any help here),
which should be fixed at first in PHP.
PHP 4.0.6 didn't have these annoyances, so there _is_ something borked
here.
------------------------------------------------------------------------
[2002-09-09 14:55:06] kalowsky@php.net
How would it know? It's just looking for libs and include files, and
the first it finds is the first it uses. Marking as bogus since this
is/was a user issue.
------------------------------------------------------------------------
[2002-09-09 11:42:11] pitrou@free.fr
Indeed ;)
# ldd .libs/libphp4.so
libdl.so.2 => /lib/libdl.so.2 (0x4011c000)
libpam.so.0 => /lib/libpam.so.0 (0x40120000)
libmysqlclient.so.10 =>
/usr/local/lib/mysql/libmysqlclient.so.10 (0x40128000)
libbz2.so.1 => /usr/lib/libbz2.so.1 (0x40144000)
libz.so.1 => /usr/lib/libz.so.1 (0x40155000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40163000)
libresolv.so.2 => /lib/libresolv.so.2 (0x40190000)
libm.so.6 => /lib/libm.so.6 (0x401a2000)
libnsl.so.1 => /lib/libnsl.so.1 (0x401c4000)
libc.so.6 => /lib/libc.so.6 (0x401db000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
Then if I re-start from clean sources and --with-gd, I get
configure errors due to conflicting versions of gd. I
correct the libgd.so symlink to the old version (1.8.3)
and restart configure, compile and install, and everything
is fine :-)
Question : why didn't the PHP build/compile process tell
me first of the error instead of letting me in such a hairy
mess ?
Thank you for your help.
------------------------------------------------------------------------
[2002-09-09 11:23:52] sniper@php.net
What is the result of the ldd if you leave out --with-gd ?
(and do this with clean sources)
------------------------------------------------------------------------
[2002-09-09 11:04:30] pitrou@free.fr
Indeed you've hit the problem.
# ldd php-4.0.6/.libs/libphp4.so
libpam.so.0 => /lib/libpam.so.0 (0x4011c000)
libdl.so.2 => /lib/libdl.so.2 (0x40124000)
libmysqlclient.so.10 => /usr/lib/libmysqlclient.so.10
(0x40128000)
libz.so.1 => /usr/lib/libz.so.1 (0x40159000)
libgd.so.1.8 => /usr/lib/libgd.so.1.8 (0x40168000)
libbz2.so.1 => /usr/lib/libbz2.so.1 (0x4019b000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x401ab000)
libresolv.so.2 => /lib/libresolv.so.2 (0x401d8000)
libm.so.6 => /lib/libm.so.6 (0x401ea000)
libnsl.so.1 => /lib/libnsl.so.1 (0x4020c000)
libc.so.6 => /lib/libc.so.6 (0x40224000)
libttf.so.2 => /usr/lib/libttf.so.2 (0x40359000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40383000)
libpng.so.2 => /usr/lib/libpng.so.2 (0x403a2000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
# ldd php-4.2.3/.libs/libphp4.so
libc.so.6 => /lib/libc.so.6 (0x40127000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
It seems 4.2.3 doesn't link against anything.... Why ?
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/19314
--
Edit this bug report at http://bugs.php.net/?id=19314&edit=1