Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Jul 2015 22:05:54 +0100
From:      =?UTF-8?Q?Bart=C5=82omiej_Rutkowski?= <robak@freebsd.org>
To:        David Naylor <dbn@freebsd.org>
Cc:        FreeBSD Mailing List <freebsd-ports@freebsd.org>, freebsd-python@freebsd.org
Subject:   Re: The mystery of the missing library.
Message-ID:  <CAGFrfxZpCT962krwPdBDoWUyf8ZXXf32kQ1HLuOK=MOSfNWb=Q@mail.gmail.com>
In-Reply-To: <2883201.vcG9JJBxrl@dragon.local>
References:  <2883201.vcG9JJBxrl@dragon.local>

next in thread | previous in thread | raw e-mail | index | archive | help
I've checked how linux does it and it seems they're (at least Debian) doing
static linking - that would fix the issue, whatever it is. Can you adjust
the port to do the static instead of dynamic linking binary?

Kind regards,
Bartek Rutkowski

On Tue, Jul 28, 2015 at 7:46 PM, David Naylor <dbn@freebsd.org> wrote:

>  Hi Hackers,
>
>
>
> I am busy simplifying the lang/pypy port (see
> https://reviews.freebsd.org/D3209) however I have uncovered a rather
> strange problem:
>
>
>
> ## BACKGROUND ##
>
> PyPy has it's own directory layout so we install it into $PREFIX/pypy-2.6.
> In there is everything pypy needs including bin/pypy (the binary) and
> bin/libpypy-c.so (the shared library).
>
>
>
> For convenience we create a symlink to the pypy binary:
>
> ```
>
> # ln -s ../pypy-2.6/bin/pypy $PREFIX/bin/pypy
>
> ```
>
>
>
> ## PROBLEM ##
>
> For some reason FreeBSD cannot find the library when executing the pypy
> command - except under some situations:
>
> ```
>
> # uname -a
>
> FreeBSD dragon.local 10.1-RELEASE-p10 FreeBSD 10.1-RELEASE-p10 #0: Wed May
> 13 06:54:13 UTC 2015 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC
> amd64
>
>
>
> # cd /
>
>
>
> # pypy
>
> Shared object "libpypy-c.so" not found, required by "pypy"
>
>
>
> # `which pypy`
>
> Shared object "libpypy-c.so" not found, required by "pypy"
>
>
>
> # .`which pypy`
>
> Python 2.7.9 (295ee98b69288471b0fcf2e0ede82ce5209eb90b, Jul 26 2015,
> 18:38:23)
>
> [PyPy 2.6.0 with GCC 4.2.1 Compatible FreeBSD Clang 3.4.1
> (tags/RELEASE_34/dot1-final 208032)] on freebsd10
>
> Type "help", "copyright", "credits" or "license" for more information.
>
> >>>>
>
>
>
> # ldd `which pypy`
>
> /usr/local/bin/pypy:
>
> libpypy-c.so => not found (0)
>
> libthr.so.3 => /lib/libthr.so.3 (0x80081d000)
>
> libc.so.7 => /lib/libc.so.7 (0x800a42000)
>
>
>
> # ldd .`which pypy`
>
> ./usr/local/bin/pypy:
>
> libpypy-c.so => /usr/local/pypy-2.6/bin//libpypy-c.so (0x80081d000)
>
> libthr.so.3 => /lib/libthr.so.3 (0x804337000)
>
> libc.so.7 => /lib/libc.so.7 (0x80455c000)
>
> libbz2.so.4 => /usr/lib/libbz2.so.4 (0x804906000)
>
> libm.so.5 => /lib/libm.so.5 (0x804b18000)
>
> libintl.so.8 => /usr/local/lib/libintl.so.8 (0x804d40000)
>
> libexpat.so.1 => /usr/local/lib/libexpat.so.1 (0x804f4a000)
>
> libz.so.6 => /lib/libz.so.6 (0x805170000)
>
> libssl.so.7 => /usr/lib/libssl.so.7 (0x805386000)
>
> libcrypto.so.7 => /lib/libcrypto.so.7 (0x8055f1000)
>
> libffi.so.6 => /usr/local/lib/libffi.so.6 (0x8059e5000)
>
> libcrypt.so.5 => /lib/libcrypt.so.5 (0x805bec000)
>
> librt.so.1 => /usr/lib/librt.so.1 (0x805e0c000)
>
> libutil.so.9 => /lib/libutil.so.9 (0x806012000)
>
> libncurses.so.8 => /lib/libncurses.so.8 (0x806224000)
>
> ```
>
>
>
> Why would the shared library be found when using a relative path but not
> when using an absolute path? Is this a bug in FreeBSD?
>
>
>
> Regards
>
>
>
> David
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGFrfxZpCT962krwPdBDoWUyf8ZXXf32kQ1HLuOK=MOSfNWb=Q>