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
signature.asc
Description: This is a digitally signed message part.