php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #13824 /usr/libexec/libphp4.so: undefined symbol: mm_create
Submitted: 2001-10-25 11:33 UTC Modified: 2001-10-27 06:18 UTC
From: louigi600 at gsmbox dot it Assigned:
Status: Not a bug Package: Compile Failure
PHP Version: 4.0.6 OS: linux slackware 8.0
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: louigi600 at gsmbox dot it
New email:
PHP Version: OS:

 

 [2001-10-25 11:33 UTC] louigi600 at gsmbox dot it
I'm using php 4.0.6 and apache 1.3.20 ona a slackware 8.0 (with kernel 2.2.19).
I recompiled apache to be linked against libpthread (as told to do so for erlier problem):

root@extensa:~# ldd /usr/sbin/httpd
        libm.so.6 => /lib/libm.so.6 (0x40020000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x40042000)
        libdb.so.3 => /lib/libdb.so.3 (0x40070000)
        libdl.so.2 => /lib/libdl.so.2 (0x400c3000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x400c7000)
        libc.so.6 => /lib/libc.so.6 (0x400dd000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

I neaded to recompile php to be able to query oracle instances so this ti what I did:
 
export LD_LIBRARY_PATH=/ora/app/oracle/product/8.0.5/lib:/usr/lib:/lib
export LD_RUN_LIBRARY_PATH=/ora/app/oracle/product/8.0.5/lib:/usr/lib:/lib
make clean
rm config.cache
./configure --prefix=/usr --with-apxs=/usr/sbin/apxs --with-mod_charset --enable-force-cgi-redirect --enable-discard-path --with-con
fig-file-path=/etc/apache --enable-safe-mode --with-openssl --enable-bcmath --with-bz2 --enable-calendar --enable-ctype --with-gdbm 
--enable-ftp --enable-gd-imgstrttf --with-gd=/usr/src/gd-1.8.2 --with-jpeg-dir=/usr/src/gd-1.8.2 --with-png-dir --with-gmp --with-my
sql=/usr --with-xml=shared --with-readline=/usr --enable-trans-sid --enable-shmop --enable-sockets --with-regex=php --enable-sysvsem
 --enable-sysvshm --enable-yp --enable-memory-limit --with-tsrm-pthreads --enable-shared --disable-debug --with-zlib=/usr --with-ora
cle=/opt/ora_syb/ora/app/oracle/product/8.0.5 --with-mm=/usr

this stage went successfully with no ATTENTION message & no errors produced in debug.log so I went ahead and compiled & installed:

make
/usr/sbin/apachectl stop
make install

root@extensa:~# ldd /usr/libexec/libphp4.so
        libdl.so.2 => /lib/libdl.so.2 (0x40189000)
        libreadline.so.4 => /usr/lib/libreadline.so.4 (0x4018d000)
        libhistory.so.4 => /usr/lib/libhistory.so.4 (0x401b1000)
        libncurses.so.5 => /lib/libncurses.so.5 (0x401b7000)
        libclntsh.so.1.0 => /opt/ora_syb/ora/app/oracle/product/8.0.5/lib/libclntsh.so.1.0 (0x401f7000)
        libm.so.6 => /lib/libm.so.6 (0x40578000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x4059a000)
        libmysqlclient.so.10 => /usr/lib/libmysqlclient.so.10 (0x405af000)
        libz.so.1 => /usr/lib/libz.so.1 (0x405ca000)
        libgmp.so.3 => /usr/lib/libgmp.so.3 (0x405d9000)
        libpng.so.2 => /usr/lib/libpng.so.2 (0x405fa000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40624000)
        libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x40643000)
        libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x4064a000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x4065a000)
        libssl.so.0 => /usr/lib/libssl.so.0 (0x40688000)
        libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x4073e000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x407fe000)
        libc.so.6 => /lib/libc.so.6 (0x4080f000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

But when I tried to restart apache I got this error:

root@extensa:~#/usr/sbin/apachectl start
Syntax error on line 237 of /etc/apache/httpd.conf:
Cannot load /usr/libexec/libphp4.so into server: /usr/libexec/libphp4.so: undefined symbol: mm_create
/usr/sbin/apachectl start: httpd could not be started

What can I do to solve the problem ?

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-10-25 18:26 UTC] sniper@php.net
And you have libmm.a (or libmm.so) in /usr/lib ?

--Jani

 [2001-10-26 03:37 UTC] louigi600 at gsmbox dot it
Of course YES ... btw the ldd I produced was relevent to the php compilrd after having removed ""--with-mm=/usr" option (reading on will explain why).
I'll tell you more before compiling in oracle support it worked fine with the exact same configuration (apart from oracle).
I then decided to remove temporarely the "--with-mm=/usr" option and I had a a partial sucess: apachje starts and php workes fine eccept for oracle ....
In more detail I get defunct httpd's when I execute this function:

function oraconnect_test($a,$b) {
$conn = Ora_Logon("system@orcl","manager");
$string = Ora_Error ($conn);
print "$string";
ora_logoff ($conn);
}

php returnes this error:

Warning: Oracle: Connection Failed: Error while trying to retrieve text for error ORA-12154 in /home/httpd/html/cpr/functions.php on line 223

Warning: Supplied argument is not a valid Oracle-Connection/Cursor resource in /home/httpd/html/cpr/functions.php on line 225

Warning: Supplied argument is not a valid Oracle-Connection resource in /home/httpd/html/cpr/functions.php on line 228

and one httpd process becomes defunct.

According to oracle ORA-12154 means:
12154, 00000, "TNS:could not resolve service name"
// *Cause:  The service name specified is not defined correctly in the
// TNSNAMES.ORA file.
// *Action:  Make the following checks and correct the error:
//           - Verify that a TNSNAMES.ORA file exists and is in the proper
//             place and accessible. See the operating system specific manual
//             for details on the required name and location.
//           - Check to see that the service name exists in one of the
//             TNSNAMES.ORA files and add it if necessary.
//           - Make sure there are no syntax errors anywhere in the file.
//             Particularly look for unmatched parentheses or stray characters.
//             Any error in a TNSNAMES.ORA file makes it unusable. See
//             Chapter 4 in the SQL*Net V2 Administrator's Guide. If
//             possible, regenerate the configuration files using the Oracle
//             Network Manager.

but my tnsnames is ok:
bash$ tnsping orcl

TNS Ping Utility for Linux: Version 8.0.5.0.0 - Production on 26-OCT-01 09:29:51

(c) Copyright 1997 Oracle Corporation.  All rights reserved.

Attempting to contact (ADDRESS=(PROTOCOL=TCP)(Host=linux)(Port=1521))
OK (60 msec)

Now what do you suggest ?


 [2001-10-26 07:50 UTC] sniper@php.net
Please try adding this to your configure line:

--enable-sigchild

Also, you should propably be using the oci8 instead:
(replace --with-oracle with --with-oci8)

http://www.php.net/oci8 

and set the environment variables before starting Apache.

--Jani

 [2001-10-26 09:12 UTC] louigi600 at gsmbox dot it
ok it seams that oracle8 libraries are not down compatible with oracle7 libs.
No need for "--enable-sigchild" as that I gather is a special issue for oracle 8.1 users.

Now let's look back at the original problem with the unresolved symbol:

Remember that I hadto temporarely remove the option "--with-mm=/usr" because apache was not starting.
what can I do about that ?
 [2001-10-26 13:29 UTC] sniper@php.net
You mentioned that you have libmm.a (or .so) in /usr/lib?
Does this library have mm_create symbol in it:

# nm /usr/lib/libmm.a | grep mm_create

Replace libmm.a with libmm.so if you don't have the static
lib installed. 

What does ldd output when you have compiled PHP with mm support?

--Jani


 [2001-10-27 05:18 UTC] louigi600 at gsmbox dot it
this is the situation on my box:
root@extensa:~# ls -l /usr/lib/libmm*
-rw-r--r--    1 root     root        15554 Oct 19 16:28 /usr/lib/libmm.a
-rw-r--r--    1 root     root          629 Oct 19 16:28 /usr/lib/libmm.la
lrwxrwxrwx    1 root     root           16 Aug  2 19:43 /usr/lib/libmm.so -> lib
mm.so.11.0.23*
lrwxrwxrwx    1 root     root           16 Aug  2 19:43 /usr/lib/libmm.so.11 ->
libmm.so.11.0.23*
-rwxr-xr-x    1 root     root        18748 Oct 19 16:28 /usr/lib/libmm.so.11.0.2
3*

root@extensa:~# nm /usr/lib/libmm.a | grep -i mm_create
0000000000000000 T MM_create
                 U mm_create
0000000000000000 T mm_create 

root@extensa:/usr/src/php-4.0.6# ldd ./.libs/libphp4.so
        libdl.so.2 => /lib/libdl.so.2 (0x4018f000)
        libreadline.so.4 => /usr/lib/libreadline.so.4 (0x40193000)
        libhistory.so.4 => /usr/lib/libhistory.so.4 (0x401b7000)
        libncurses.so.5 => /lib/libncurses.so.5 (0x401bd000)
        libclntsh.so.1.0 => /usr/lib/libclntsh.so.1.0 (0x401fd000)
        libm.so.6 => /lib/libm.so.6 (0x4057e000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x405a0000)
        libmysqlclient.so.10 => /usr/lib/libmysqlclient.so.10 (0x405b5000)
        libz.so.1 => /usr/lib/libz.so.1 (0x405d0000)
        libgmp.so.3 => /usr/lib/libgmp.so.3 (0x405df000)
        libpng.so.2 => /usr/lib/libpng.so.2 (0x40600000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x4062a000)
        libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x40649000)
        libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x40650000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x40660000)
        libssl.so.0 => /usr/lib/libssl.so.0 (0x4068e000)
        libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x40744000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x40804000)
        libc.so.6 => /lib/libc.so.6 (0x40815000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) 

libmm does not seem to be there but configure ended with 
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.
whitch is a goo sign (and produced nothing in debud.log)

and moreover gere's a grep from output of configure:

root@extensa:/usr/src/php-4.0.6# grep -i mm log
checking for sys/mman.h... yes
checking for memmove... yes
checking for mmap... yes
checking for memmove... (cached) yes
checking for mm support... yes
checking command to parse /usr/bin/nm -B output... ok
checking how to hardcode library paths into programs... immediate 

Now what do you suggest ?

 [2001-10-27 06:07 UTC] sniper@php.net
Propably something wrong with the libs. Reinstall libmm.
And try also with latest CVS snapshot from http://snaps.php.net/ 

I'm sure this is not a bug in PHP. Something wrong in your
system.

--Jani


 [2001-10-27 06:12 UTC] louigi600 at gsmbox dot it
I'm sure this is not the case because things worked fine till I tried to add in oracle.
Remember that first I recompiled php 4.0.6 with exact same options of original slackware package & things worked fine (including apache) .
 [2001-10-27 06:18 UTC] sniper@php.net
Of course it's not..ask further support questions
on the mailing lists. This is not a discussion forum.

 [2002-02-22 06:59 UTC] vlajos at dazzle dot bke dot hu
I have the same problem.
It seems that oracle also contains a libmm.a in his lib directory, and this haven't mm_create.
Maybe usefull to rename the oracle's libmm when compiling php.
But I'm not sure, that this is a correct solution.
But It helped for me for compiling php.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Sat May 10 23:01:29 2025 UTC