Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Dec 2009 04:09:26 +0100
From:      Raphael Becker <rabe@uugrn.org>
To:        David N <davidn04@gmail.com>, ports@freebsd.org
Subject:   Re: FreeBSD Port: php5-mhash-5.2.11_1
Message-ID:  <20091217030926.GC88894@ma.sigsys.de>
In-Reply-To: <4d7dd86f0912161806i5100ca6cn6663e1f26ba425b5@mail.gmail.com>
References:  <27485796-553F-4396-84A8-11F88968F3C9@niftywerks.com> <20091217015358.GB88894@ma.sigsys.de> <4d7dd86f0912161806i5100ca6cn6663e1f26ba425b5@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--qjNfmADvan18RZcF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello David,

On Thu, Dec 17, 2009 at 01:06:28PM +1100, David N wrote:
> Thats a long list of extensions,
>=20
> try adding one of them to the end of extensions.ini one by one.

> The ordering of it matters, you need to re-arrange the order in which
> the extensions are loaded. You may need to play around with it until
> it stops core dumping.

I re-enabled at the end of extensions.ini:

extension=3Dmysqli.so
extension=3Dpdo_mysql.so
extension=3Dcurl.so
extension=3Dimap.so
extension=3Dldap.so
extension=3Dftp.so
extension=3Dopenssl.so

I wasn't still able to find a working location for=20

extension=3Dmhash.so

=2E.. coredumps regardless of any position in extensions.ini, from top to
bottom.=20



It's - again - kind of noticeable that all of this "complicated" modules=20
are linkend against openssl:

=20
[root@freebsd /usr/local/lib/php/20060613]# for SO in ./*.so ; do=20
if ldd $SO | grep -i ssl >/dev/null; then echo $SO; fi ; done
=2E/curl.so
=2E/ftp.so
=2E/imap.so
=2E/ldap.so
=2E/mysql.so
=2E/mysqli.so
=2E/openssl.so
=2E/pdo_mysql.so

=2E.. hmm, ./mysql.so was inconspicuous before *strange*


Lets have a closer look on all modules depending on *ssl*:


[root@freebsd /usr/local/lib/php/20060613]# for SO in ./*.so ; do=20
if ldd $SO | grep -i ssl >/dev/null; t en echo $SO; fi ; done |=20
xargs ldd

---------------------------------------------------
=2E/curl.so:
        libcurl.so.5 =3D> /usr/local/lib/libcurl.so.5 (0x68190000)
        libidn.so.16 =3D> /usr/local/lib/libidn.so.16 (0x68300000)
        libssh2.so.1 =3D> /usr/local/lib/libssh2.so.1 (0x681d9000)
        libssl.so.5 =3D> /usr/local/lib/libssl.so.5 (0x68330000) !!!!
        libcrypto.so.5 =3D> /usr/local/lib/libcrypto.so.5 (0x68374000) !!!!
        libz.so.4 =3D> /lib/libz.so.4 (0x684c4000)
        libc.so.7 =3D> /lib/libc.so.7 (0x68080000)
        libintl.so.8 =3D> /usr/local/lib/libintl.so.8 (0x684d6000)
        libiconv.so.3 =3D> /usr/local/lib/libiconv.so.3 (0x684df000)
        libthr.so.3 =3D> /lib/libthr.so.3 (0x685d5000)
=2E/ftp.so:
        libssl.so.5 =3D> /usr/local/lib/libssl.so.5 (0x6818d000) !!!!
        libcrypto.so.5 =3D> /usr/local/lib/libcrypto.so.5 (0x68300000) !!!!
        libc.so.7 =3D> /lib/libc.so.7 (0x68080000)
        libz.so.4 =3D> /lib/libz.so.4 (0x681d1000)
        libthr.so.3 =3D> /lib/libthr.so.3 (0x681e3000)
=2E/imap.so:
        libssl.so.5 =3D> /usr/local/lib/libssl.so.5 (0x68199000) !!!!
        libcrypto.so.5 =3D> /usr/local/lib/libcrypto.so.5 (0x68300000) !!!!
        libc-client4.so.9 =3D> /usr/local/lib/libc-client4.so.9 (0x68447000)
        libcrypt.so.4 =3D> /lib/libcrypt.so.4 (0x681dd000)
        libpam.so.4 =3D> /usr/lib/libpam.so.4 (0x681f6000)
        libc.so.7 =3D> /lib/libc.so.7 (0x68080000)
        libz.so.4 =3D> /lib/libz.so.4 (0x68548000)
        libthr.so.3 =3D> /lib/libthr.so.3 (0x6855a000)
=2E/ldap.so:
        libldap-2.4.so.7 =3D> /usr/local/lib/libldap-2.4.so.7 (0x6818c000)
        liblber-2.4.so.7 =3D> /usr/local/lib/liblber-2.4.so.7 (0x681c6000)
        libc.so.7 =3D> /lib/libc.so.7 (0x68080000)
        libssl.so.5 =3D> /usr/local/lib/libssl.so.5 (0x68300000)       !!!!
        libcrypto.so.5 =3D> /usr/local/lib/libcrypto.so.5 (0x68344000) !!!!
        libz.so.4 =3D> /lib/libz.so.4 (0x681d2000)
        libthr.so.3 =3D> /lib/libthr.so.3 (0x6848b000)
=2E/mysql.so: (***)
        libmysqlclient.so.15 =3D> /usr/local/lib/mysql/libmysqlclient.so.15=
 (0x6818d000)
        libc.so.7 =3D> /lib/libc.so.7 (0x68080000)
        libcrypt.so.4 =3D> /lib/libcrypt.so.4 (0x68300000)
        libm.so.5 =3D> /lib/libm.so.5 (0x68319000)
        libssl.so.5 =3D> /usr/lib/libssl.so.5 (0x6832e000)      !!!!
        libcrypto.so.5 =3D> /lib/libcrypto.so.5 (0x6836f000)    !!!!
        libz.so.4 =3D> /lib/libz.so.4 (0x684c8000)
=2E/mysqli.so:
        libmysqlclient.so.15 =3D> /usr/local/lib/mysql/libmysqlclient.so.15=
 (0x6819a000)
        libz.so.4 =3D> /lib/libz.so.4 (0x68300000)
        libcrypt.so.4 =3D> /lib/libcrypt.so.4 (0x68312000)
        libm.so.5 =3D> /lib/libm.so.5 (0x6832b000)
        libssl.so.5 =3D> /usr/local/lib/libssl.so.5 (0x68340000) !!!!
        libcrypto.so.5 =3D> /usr/local/lib/libcrypto.so.5 (0x6838d000) !!!!
        libc.so.7 =3D> /lib/libc.so.7 (0x68080000)
        libthr.so.3 =3D> /lib/libthr.so.3 (0x684d4000)
=2E/openssl.so:
        libssl.so.5 =3D> /usr/local/lib/libssl.so.5 (0x68196000) !!!!
        libcrypto.so.5 =3D> /usr/local/lib/libcrypto.so.5 (0x68300000) !!!!
        libc.so.7 =3D> /lib/libc.so.7 (0x68080000)
        libz.so.4 =3D> /lib/libz.so.4 (0x681da000)
        libthr.so.3 =3D> /lib/libthr.so.3 (0x68447000)
=2E/pdo_mysql.so:
        libmysqlclient.so.15 =3D> /usr/local/lib/mysql/libmysqlclient.so.15=
 (0x68189000)
        libz.so.4 =3D> /lib/libz.so.4 (0x681ea000)
        libcrypt.so.4 =3D> /lib/libcrypt.so.4 (0x68300000)
        libm.so.5 =3D> /lib/libm.so.5 (0x68319000)
        libssl.so.5 =3D> /usr/local/lib/libssl.so.5 (0x6832e000) !!!!
        libcrypto.so.5 =3D> /usr/local/lib/libcrypto.so.5 (0x6837b000) !!!!
        libc.so.7 =3D> /lib/libc.so.7 (0x68080000)
        libthr.so.3 =3D> /lib/libthr.so.3 (0x684c2000)

---------------------------------------------------

All modules but mysql.so will load libssl.so.5 from
/usr/local/lib/libssl.so.5, mysql.so is linked to=20
libssl.so.5 =3D> /usr/lib/libssl.so.5


This is kind of interesting!=20

If disable(!) ./mysql.so from extensions.ini, php will segfault again!

So what seems to happen? libssl.so.5 get loaded by mysql.so and won't
get loaded by one of the following modules, which are "hard-linked" to
/usr/local/lib/libssl.so.5

Question: how does "mysql.so" link against another libssl.so.5 than
"mysqli.so" would? Is this the RPATH-thing?

Am I right with my assumption about mysql.so links to
/usr/lib/libssl.so.5 and therefore any other module linking to
libssl.so.5 won't link to /usr/local/lib/libssl.so.5 (because it's
already provided/loaded by /usr/lib/libssl.so.5)?

If so why does /usr/local/lib/libssl.so.5 segfault?

mhash isn't explained here. This seems to be another strange thing.

I'd appreciate any help and background information on this
"libssl.so.5/libcrypto.so.5 - thing".=20

With best regards
Raphael=20

--=20
Raphael Becker <rabe@uugrn.org>                   http://rabe.uugrn.org/
                             https://www.xing.com/profile/Raphael_Becker
GnuPG:                E7B2 1D66 3AF2 EDC7 9828  6D7A 9CDA 3E7B 10CA 9F2D
=2E........|.........|.........|.........|.........|.........|.........|..

--qjNfmADvan18RZcF
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)

iD8DBQFLKaDmnNo+exDKny0RAnssAJ9sbnp3NM+wV6r2Fcy0hIK23yahIgCfWOGn
8wa0ULX8tYPnWvFi5DlAhHo=
=J5v5
-----END PGP SIGNATURE-----

--qjNfmADvan18RZcF--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20091217030926.GC88894>