In python shlib probe, cater for OpenBSD, which omits the .so symlink.
Most Unix-oid platforms provide a symlink "libfoo.so" -> "libfoo.so.n.n" to allow the linker to resolve a reference "-lfoo" to a version-numbered shared library. OpenBSD has apparently hacked ld(1) to do this internally, because there are no such symlinks to be found in their library directories. Tweak the new code in PGAC_CHECK_PYTHON_EMBED_SETUP to cope. Per buildfarm member curculio.
This commit is contained in:
parent
eb3bc0bd1a
commit
ddd4f82cb6
|
@ -85,6 +85,7 @@ ldlibrary=`echo "${python_ldlibrary}" | sed -e 's/\.so$//' -e 's/\.dll$//' -e 's
|
|||
if test -e "${python_libdir}/${python_ldlibrary}" -a x"${python_ldlibrary}" != x"${ldlibrary}"
|
||||
then
|
||||
ldlibrary=`echo "${ldlibrary}" | sed "s/^lib//"`
|
||||
found_shlib=1
|
||||
else
|
||||
# Otherwise, guess the base name of the shlib.
|
||||
# LDVERSION was added in Python 3.2, before that use $python_version.
|
||||
|
@ -98,6 +99,7 @@ else
|
|||
found_shlib=0
|
||||
for d in "${python_libdir}" "${python_configdir}" /usr/lib64 /usr/lib
|
||||
do
|
||||
# We don't know the platform DLSUFFIX here, so check 'em all.
|
||||
for e in .so .dll .dylib .sl; do
|
||||
if test -e "$d/lib${ldlibrary}$e"; then
|
||||
python_libdir="$d"
|
||||
|
@ -106,12 +108,28 @@ else
|
|||
fi
|
||||
done
|
||||
done
|
||||
# Some platforms (OpenBSD) require us to accept a bare versioned shlib
|
||||
# (".so.n.n") as well. However, check this only after failing to find
|
||||
# ".so" anywhere, because yet other platforms (Debian) put the .so
|
||||
# symlink in a different directory from the underlying versioned shlib.
|
||||
if test "$found_shlib" != 1; then
|
||||
AC_MSG_ERROR([could not find shared library for Python
|
||||
for d in "${python_libdir}" "${python_configdir}" /usr/lib64 /usr/lib
|
||||
do
|
||||
for f in "$d/lib${ldlibrary}.so."* ; do
|
||||
if test -e "$f"; then
|
||||
python_libdir="$d"
|
||||
found_shlib=1
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
fi
|
||||
if test "$found_shlib" != 1; then
|
||||
AC_MSG_ERROR([could not find shared library for Python
|
||||
You might have to rebuild your Python installation. Refer to the
|
||||
documentation for details. Use --without-python to disable building
|
||||
PL/Python.])
|
||||
fi
|
||||
fi
|
||||
python_libspec="-L${python_libdir} -l${ldlibrary}"
|
||||
|
||||
|
|
|
@ -7628,6 +7628,7 @@ ldlibrary=`echo "${python_ldlibrary}" | sed -e 's/\.so$//' -e 's/\.dll$//' -e 's
|
|||
if test -e "${python_libdir}/${python_ldlibrary}" -a x"${python_ldlibrary}" != x"${ldlibrary}"
|
||||
then
|
||||
ldlibrary=`echo "${ldlibrary}" | sed "s/^lib//"`
|
||||
found_shlib=1
|
||||
else
|
||||
# Otherwise, guess the base name of the shlib.
|
||||
# LDVERSION was added in Python 3.2, before that use $python_version.
|
||||
|
@ -7641,6 +7642,7 @@ else
|
|||
found_shlib=0
|
||||
for d in "${python_libdir}" "${python_configdir}" /usr/lib64 /usr/lib
|
||||
do
|
||||
# We don't know the platform DLSUFFIX here, so check 'em all.
|
||||
for e in .so .dll .dylib .sl; do
|
||||
if test -e "$d/lib${ldlibrary}$e"; then
|
||||
python_libdir="$d"
|
||||
|
@ -7649,12 +7651,28 @@ else
|
|||
fi
|
||||
done
|
||||
done
|
||||
# Some platforms (OpenBSD) require us to accept a bare versioned shlib
|
||||
# (".so.n.n") as well. However, check this only after failing to find
|
||||
# ".so" anywhere, because yet other platforms (Debian) put the .so
|
||||
# symlink in a different directory from the underlying versioned shlib.
|
||||
if test "$found_shlib" != 1; then
|
||||
as_fn_error $? "could not find shared library for Python
|
||||
for d in "${python_libdir}" "${python_configdir}" /usr/lib64 /usr/lib
|
||||
do
|
||||
for f in "$d/lib${ldlibrary}.so."* ; do
|
||||
if test -e "$f"; then
|
||||
python_libdir="$d"
|
||||
found_shlib=1
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
fi
|
||||
if test "$found_shlib" != 1; then
|
||||
as_fn_error $? "could not find shared library for Python
|
||||
You might have to rebuild your Python installation. Refer to the
|
||||
documentation for details. Use --without-python to disable building
|
||||
PL/Python." "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
python_libspec="-L${python_libdir} -l${ldlibrary}"
|
||||
|
||||
|
|
Loading…
Reference in New Issue