aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Pluzhnikov <ppluzhnikov@google.com>2018-05-04 10:07:58 -0400
committerSimon Marchi <simon.marchi@ericsson.com>2018-05-04 10:08:09 -0400
commitbf27f0e2c76839af8524e053cca271934150a90c (patch)
treefae5cc97580cdf5b61489be7610f0124187c342e
parent089a949083dcd5c679376033e975d54093007408 (diff)
downloadgdb-bf27f0e2c76839af8524e053cca271934150a90c.zip
gdb-bf27f0e2c76839af8524e053cca271934150a90c.tar.gz
gdb-bf27f0e2c76839af8524e053cca271934150a90c.tar.bz2
configure uses incorrect link order when testing libpython
References: https://stackoverflow.com/a/49868387 https://sourceware.org/bugzilla/show_bug.cgi?id=11420 Configure uses "gcc -o conftest -g ... conftest.c -ldl -lncurses -lm -ldl ... -lpthread ... -lpython2.7" when deciding whether give libpython is usable. That of course is the wrong link order, and only works for shared libraries (mostly by accident), and only on some systems. gdb/ChangeLog: PR gdb/11420 * configure.ac: Prepend libpython. * python/python-config.py: Likewise. * configure: Regenerate.
-rw-r--r--gdb/ChangeLog7
-rwxr-xr-xgdb/configure18
-rw-r--r--gdb/configure.ac10
-rw-r--r--gdb/python/python-config.py3
4 files changed, 22 insertions, 16 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1a44240..c20f2a9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2018-05-04 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ PR gdb/11420
+ * configure.ac: Prepend libpython.
+ * python/python-config.py: Likewise.
+ * configure: Regenerate.
+
2018-05-03 Simon Marchi <simon.marchi@ericsson.com>
* Makefile.in (%.c: %.l): Use -t instead of --stdout.
diff --git a/gdb/configure b/gdb/configure
index f18d78e..1aac930 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -10441,7 +10441,7 @@ $as_echo_n "checking for ${version}... " >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LIBS=$LIBS
CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
- LIBS="$LIBS $new_LIBS"
+ LIBS="$new_LIBS $LIBS"
found_usable_python=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -10478,13 +10478,13 @@ $as_echo "${found_usable_python}" >&6; }
version=python2.7
new_CPPFLAGS=${python_includes}
- new_LIBS="${python_libs} -lpython2.7"
+ new_LIBS="-lpython2.7 ${python_libs}"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${version}" >&5
$as_echo_n "checking for ${version}... " >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LIBS=$LIBS
CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
- LIBS="$LIBS $new_LIBS"
+ LIBS="$new_LIBS $LIBS"
found_usable_python=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -10516,13 +10516,13 @@ $as_echo "${found_usable_python}" >&6; }
version=python2.6
new_CPPFLAGS=${python_includes}
- new_LIBS="${python_libs} -lpython2.6"
+ new_LIBS="-lpython2.6 ${python_libs}"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${version}" >&5
$as_echo_n "checking for ${version}... " >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LIBS=$LIBS
CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
- LIBS="$LIBS $new_LIBS"
+ LIBS="$new_LIBS $LIBS"
found_usable_python=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -10554,13 +10554,13 @@ $as_echo "${found_usable_python}" >&6; }
version=python2.5
new_CPPFLAGS=${python_includes}
- new_LIBS="${python_libs} -lpython2.5"
+ new_LIBS="-lpython2.5 ${python_libs}"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${version}" >&5
$as_echo_n "checking for ${version}... " >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LIBS=$LIBS
CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
- LIBS="$LIBS $new_LIBS"
+ LIBS="$new_LIBS $LIBS"
found_usable_python=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -10592,13 +10592,13 @@ $as_echo "${found_usable_python}" >&6; }
version=python2.4
new_CPPFLAGS=${python_includes}
- new_LIBS="${python_libs} -lpython2.4"
+ new_LIBS="-lpython2.4 ${python_libs}"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${version}" >&5
$as_echo_n "checking for ${version}... " >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LIBS=$LIBS
CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
- LIBS="$LIBS $new_LIBS"
+ LIBS="$new_LIBS $LIBS"
found_usable_python=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 698fc7b..e1f630c 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -732,7 +732,7 @@ AC_DEFUN([AC_TRY_LIBPYTHON],
save_CPPFLAGS=$CPPFLAGS
save_LIBS=$LIBS
CPPFLAGS="$CPPFLAGS $new_CPPFLAGS"
- LIBS="$LIBS $new_LIBS"
+ LIBS="$new_LIBS $LIBS"
found_usable_python=no
AC_LINK_IFELSE(AC_LANG_PROGRAM([[#include "Python.h"]],
[[Py_Initialize ();]]),
@@ -922,19 +922,19 @@ else
elif test "${have_python_config}" != failed; then
if test "${have_libpython}" = no; then
AC_TRY_LIBPYTHON(python2.7, have_libpython,
- ${python_includes}, "${python_libs} -lpython2.7")
+ ${python_includes}, "-lpython2.7 ${python_libs}")
fi
if test "${have_libpython}" = no; then
AC_TRY_LIBPYTHON(python2.6, have_libpython,
- ${python_includes}, "${python_libs} -lpython2.6")
+ ${python_includes}, "-lpython2.6 ${python_libs}")
fi
if test ${have_libpython} = no; then
AC_TRY_LIBPYTHON(python2.5, have_libpython,
- ${python_includes}, "${python_libs} -lpython2.5")
+ ${python_includes}, "-lpython2.5 ${python_libs}")
fi
if test ${have_libpython} = no; then
AC_TRY_LIBPYTHON(python2.4, have_libpython,
- ${python_includes}, "${python_libs} -lpython2.4")
+ ${python_includes}, "-lpython2.4 ${python_libs}")
fi
fi
if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
diff --git a/gdb/python/python-config.py b/gdb/python/python-config.py
index c2b2969..3e60b86 100644
--- a/gdb/python/python-config.py
+++ b/gdb/python/python-config.py
@@ -58,12 +58,11 @@ for opt in opt_flags:
print (to_unix_path(' '.join(flags)))
elif opt in ('--libs', '--ldflags'):
- libs = []
+ libs = ['-lpython' + pyver + abiflags]
if getvar('LIBS') is not None:
libs.extend(getvar('LIBS').split())
if getvar('SYSLIBS') is not None:
libs.extend(getvar('SYSLIBS').split())
- libs.append('-lpython'+pyver + abiflags)
# add the prefix/lib/pythonX.Y/config dir, but only if there is no
# shared library in prefix/lib/.
if opt == '--ldflags':