#19314 [Bgs->Opn]: unable to startup Apache (undefined symbol)

From: Date: Mon, 09 Sep 2002 21:40:17 +0000
Subject: #19314 [Bgs->Opn]: unable to startup Apache (undefined symbol)
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-18859@lists.php.net to get a copy of this message
ID: 19314 User updated by: pitrou@free.fr Reported By: pitrou@free.fr -Status: Bogus +Status: Open Bug Type: Apache related Operating System: Linux 2.4.19 PHP Version: 4.2.3 New Comment: "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. Previous Comments: ------------------------------------------------------------------------ [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 ? ------------------------------------------------------------------------ [2002-09-09 10:49:23] sniper@php.net If you do 'ldd libphp4.so' is there libz in the listing? (that's the library for uncompress) And about the GD problems..are you sure you don't have different versions of GD installed in your system? ------------------------------------------------------------------------ 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

« previous php.bugs (#18859) next »