mirror of
https://github.com/zebrajr/postgres.git
synced 2025-12-07 12:20:31 +01:00
Try to fix python shlib probe for MinGW.
Per discussion with Andrew Dunstan, it seems there are three peculiarities
of the Python installation on MinGW (or at least, of the instance on
buildfarm member frogmouth). First, the library name doesn't contain
"2.7" but just "27". It looks like we can deal with that by consulting
get_config_vars('VERSION') to see whether a dot should be used or not.
Second, the library might be in c:/Windows/System32, analogously to it
possibly being in /usr/lib on Unix-oid platforms. Third, it's apparently
not standard to use the prefix "lib" on the file name. This patch will
accept files with or without "lib", but the first part of that may well
be dead code.
This commit is contained in:
parent
61f9e7ba3c
commit
11c0e743b6
|
|
@ -88,12 +88,18 @@ then
|
|||
found_shlib=1
|
||||
else
|
||||
# Otherwise, guess the base name of the shlib.
|
||||
# LDVERSION was added in Python 3.2, before that use $python_version.
|
||||
# LDVERSION was added in Python 3.2, before that use VERSION,
|
||||
# or failing that, $python_version from _PGAC_CHECK_PYTHON_DIRS.
|
||||
python_ldversion=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LDVERSION'))))"`
|
||||
if test x"${python_ldversion}" != x""; then
|
||||
ldlibrary="python${python_ldversion}"
|
||||
else
|
||||
ldlibrary="python${python_version}"
|
||||
python_version_var=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('VERSION'))))"`
|
||||
if test x"${python_version_var}" != x""; then
|
||||
ldlibrary="python${python_version_var}"
|
||||
else
|
||||
ldlibrary="python${python_version}"
|
||||
fi
|
||||
fi
|
||||
# Search for a likely-looking file.
|
||||
found_shlib=0
|
||||
|
|
@ -124,6 +130,21 @@ else
|
|||
done
|
||||
done
|
||||
fi
|
||||
# As usual, Windows has its own ideas. c:/Windows/System32 takes the
|
||||
# place of /usr/lib as a possible default library location, and the
|
||||
# "lib" prefix might not be there.
|
||||
if test "$found_shlib" != 1 -a "$PORTNAME" = win32 ; then
|
||||
for d in "${python_libdir}" "${python_configdir}" c:/Windows/System32
|
||||
do
|
||||
for f in "$d/lib${ldlibrary}.dll" "$d/${ldlibrary}.dll" ; 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
|
||||
|
|
|
|||
25
configure
vendored
25
configure
vendored
|
|
@ -7631,12 +7631,18 @@ then
|
|||
found_shlib=1
|
||||
else
|
||||
# Otherwise, guess the base name of the shlib.
|
||||
# LDVERSION was added in Python 3.2, before that use $python_version.
|
||||
# LDVERSION was added in Python 3.2, before that use VERSION,
|
||||
# or failing that, $python_version from _PGAC_CHECK_PYTHON_DIRS.
|
||||
python_ldversion=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('LDVERSION'))))"`
|
||||
if test x"${python_ldversion}" != x""; then
|
||||
ldlibrary="python${python_ldversion}"
|
||||
else
|
||||
ldlibrary="python${python_version}"
|
||||
python_version_var=`${PYTHON} -c "import distutils.sysconfig; print(' '.join(filter(None,distutils.sysconfig.get_config_vars('VERSION'))))"`
|
||||
if test x"${python_version_var}" != x""; then
|
||||
ldlibrary="python${python_version_var}"
|
||||
else
|
||||
ldlibrary="python${python_version}"
|
||||
fi
|
||||
fi
|
||||
# Search for a likely-looking file.
|
||||
found_shlib=0
|
||||
|
|
@ -7667,6 +7673,21 @@ else
|
|||
done
|
||||
done
|
||||
fi
|
||||
# As usual, Windows has its own ideas. c:/Windows/System32 takes the
|
||||
# place of /usr/lib as a possible default library location, and the
|
||||
# "lib" prefix might not be there.
|
||||
if test "$found_shlib" != 1 -a "$PORTNAME" = win32 ; then
|
||||
for d in "${python_libdir}" "${python_configdir}" c:/Windows/System32
|
||||
do
|
||||
for f in "$d/lib${ldlibrary}.dll" "$d/${ldlibrary}.dll" ; 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
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user