Remove Python 2.4 and 2.5 support
This removes all the remainings spots I could find that work around issues in Python 2.4 and 2.5. I don't have a good way to test that Python 2.6 still works. Tested by the buildbot. gdb/ChangeLog 2019-02-27 Tom Tromey <tromey@adacore.com> * config.in, configure: Rebuild. * configure.ac (HAVE_LIBPYTHON2_4, HAVE_LIBPYTHON2_5): Never define. * python/py-value.c: Remove Python 2.4 workaround. * python/py-utils.c (gdb_pymodule_addobject): Remove Python 2.4 workaround. * python/py-type.c (convert_field, gdbpy_initialize_types): Remove Python 2.4 workaround. * python/python-internal.h: Remove Python 2.4 comment. (Py_ssize_t): Don't define. (PyVarObject_HEAD_INIT, Py_TYPE): Don't define. (gdb_Py_DECREF): Remove Python 2.4 workaround. (gdb_PyObject_GetAttrString, PyObject_GetAttrString): Remove. (gdb_PyObject_HasAttrString, PyObject_HasAttrString): Remove. * python/python.c (do_start_initialization): Remove Python 2.4 workaround. * python/py-prettyprint.c (class dummy_python_frame): Remove. (print_children): Remove Python 2.4 workaround. * python/py-inferior.c (buffer_procs): Remove Python 2.4 workaround. (CHARBUFFERPROC_NAME): Remove. * python/py-breakpoint.c (gdbpy_initialize_breakpoints): Remove Python 2.4 workaround. gdb/testsuite/ChangeLog 2019-02-27 Tom Tromey <tromey@adacore.com> * lib/gdb.exp (skip_python_tests_prompt): Don't check for Python 2.4. * gdb.python/py-finish-breakpoint.exp: Remove Python 2.4 workaround. gdb/ChangeLog 2019-02-27 Tom Tromey <tromey@adacore.com> * config.in, configure: Rebuild. * configure.ac (HAVE_LIBPYTHON2_4, HAVE_LIBPYTHON2_5): Never define. * python/py-value.c: Remove Python 2.4 workaround. * python/py-utils.c (gdb_pymodule_addobject): Remove Python 2.4 workaround. * python/py-type.c (convert_field, gdbpy_initialize_types): Remove Python 2.4 workaround. * python/python-internal.h: Remove Python 2.4 comment. (Py_ssize_t): Don't define. (PyVarObject_HEAD_INIT, Py_TYPE): Don't define. (gdb_Py_DECREF): Remove Python 2.4 workaround. (gdb_PyObject_GetAttrString, PyObject_GetAttrString): Remove. (gdb_PyObject_HasAttrString, PyObject_HasAttrString): Remove. * python/python.c (do_start_initialization): Remove Python 2.4 workaround. * python/py-prettyprint.c (class dummy_python_frame): Remove. (print_children): Remove Python 2.4 workaround. * python/py-inferior.c (buffer_procs): Remove Python 2.4 workaround. (CHARBUFFERPROC_NAME): Remove. * python/py-breakpoint.c (gdbpy_initialize_breakpoints): Remove Python 2.4 workaround.
This commit is contained in:
parent
2c3fc25dd1
commit
6c28e44a35
15 changed files with 46 additions and 303 deletions
|
@ -1,3 +1,28 @@
|
||||||
|
2019-02-27 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
|
* configure.ac (HAVE_LIBPYTHON2_4, HAVE_LIBPYTHON2_5): Never
|
||||||
|
define.
|
||||||
|
* python/py-value.c: Remove Python 2.4 workaround.
|
||||||
|
* python/py-utils.c (gdb_pymodule_addobject): Remove Python 2.4
|
||||||
|
workaround.
|
||||||
|
* python/py-type.c (convert_field, gdbpy_initialize_types): Remove
|
||||||
|
Python 2.4 workaround.
|
||||||
|
* python/python-internal.h: Remove Python 2.4 comment.
|
||||||
|
(Py_ssize_t): Don't define.
|
||||||
|
(PyVarObject_HEAD_INIT, Py_TYPE): Don't define.
|
||||||
|
(gdb_Py_DECREF): Remove Python 2.4 workaround.
|
||||||
|
(gdb_PyObject_GetAttrString, PyObject_GetAttrString): Remove.
|
||||||
|
(gdb_PyObject_HasAttrString, PyObject_HasAttrString): Remove.
|
||||||
|
* python/python.c (do_start_initialization): Remove Python 2.4
|
||||||
|
workaround.
|
||||||
|
* python/py-prettyprint.c (class dummy_python_frame): Remove.
|
||||||
|
(print_children): Remove Python 2.4 workaround.
|
||||||
|
* python/py-inferior.c (buffer_procs): Remove Python 2.4
|
||||||
|
workaround.
|
||||||
|
(CHARBUFFERPROC_NAME): Remove.
|
||||||
|
* python/py-breakpoint.c (gdbpy_initialize_breakpoints): Remove
|
||||||
|
Python 2.4 workaround.
|
||||||
|
|
||||||
2019-02-27 Kevin Buettner <kevinb@redhat.com>
|
2019-02-27 Kevin Buettner <kevinb@redhat.com>
|
||||||
|
|
||||||
* NEWS: Note minimum Python version.
|
* NEWS: Note minimum Python version.
|
||||||
|
|
|
@ -249,12 +249,6 @@
|
||||||
/* Define if you have the mpfr library. */
|
/* Define if you have the mpfr library. */
|
||||||
#undef HAVE_LIBMPFR
|
#undef HAVE_LIBMPFR
|
||||||
|
|
||||||
/* Define if Python 2.4 is being used. */
|
|
||||||
#undef HAVE_LIBPYTHON2_4
|
|
||||||
|
|
||||||
/* Define if Python 2.5 is being used. */
|
|
||||||
#undef HAVE_LIBPYTHON2_5
|
|
||||||
|
|
||||||
/* Define if Python 2.6 is being used. */
|
/* Define if Python 2.6 is being used. */
|
||||||
#undef HAVE_LIBPYTHON2_6
|
#undef HAVE_LIBPYTHON2_6
|
||||||
|
|
||||||
|
|
88
gdb/configure
vendored
88
gdb/configure
vendored
|
@ -10649,82 +10649,6 @@ if ac_fn_c_try_link "$LINENO"; then :
|
||||||
PYTHON_CPPFLAGS=$new_CPPFLAGS
|
PYTHON_CPPFLAGS=$new_CPPFLAGS
|
||||||
PYTHON_LIBS=$new_LIBS
|
PYTHON_LIBS=$new_LIBS
|
||||||
fi
|
fi
|
||||||
rm -f core conftest.err conftest.$ac_objext \
|
|
||||||
conftest$ac_exeext conftest.$ac_ext
|
|
||||||
CPPFLAGS=$save_CPPFLAGS
|
|
||||||
LIBS=$save_LIBS
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${found_usable_python}" >&5
|
|
||||||
$as_echo "${found_usable_python}" >&6; }
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test ${have_libpython} = no; then
|
|
||||||
|
|
||||||
version=python2.5
|
|
||||||
|
|
||||||
new_CPPFLAGS=${python_includes}
|
|
||||||
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="$new_LIBS $LIBS"
|
|
||||||
found_usable_python=no
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include "Python.h"
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
Py_Initialize ();
|
|
||||||
;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
if ac_fn_c_try_link "$LINENO"; then :
|
|
||||||
have_libpython=${version}
|
|
||||||
found_usable_python=yes
|
|
||||||
PYTHON_CPPFLAGS=$new_CPPFLAGS
|
|
||||||
PYTHON_LIBS=$new_LIBS
|
|
||||||
fi
|
|
||||||
rm -f core conftest.err conftest.$ac_objext \
|
|
||||||
conftest$ac_exeext conftest.$ac_ext
|
|
||||||
CPPFLAGS=$save_CPPFLAGS
|
|
||||||
LIBS=$save_LIBS
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${found_usable_python}" >&5
|
|
||||||
$as_echo "${found_usable_python}" >&6; }
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test ${have_libpython} = no; then
|
|
||||||
|
|
||||||
version=python2.4
|
|
||||||
|
|
||||||
new_CPPFLAGS=${python_includes}
|
|
||||||
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="$new_LIBS $LIBS"
|
|
||||||
found_usable_python=no
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include "Python.h"
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
Py_Initialize ();
|
|
||||||
;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
if ac_fn_c_try_link "$LINENO"; then :
|
|
||||||
have_libpython=${version}
|
|
||||||
found_usable_python=yes
|
|
||||||
PYTHON_CPPFLAGS=$new_CPPFLAGS
|
|
||||||
PYTHON_LIBS=$new_LIBS
|
|
||||||
fi
|
|
||||||
rm -f core conftest.err conftest.$ac_objext \
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
conftest$ac_exeext conftest.$ac_ext
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
CPPFLAGS=$save_CPPFLAGS
|
CPPFLAGS=$save_CPPFLAGS
|
||||||
|
@ -10742,14 +10666,6 @@ $as_echo "#define HAVE_LIBPYTHON2_7 1" >>confdefs.h
|
||||||
|
|
||||||
$as_echo "#define HAVE_LIBPYTHON2_6 1" >>confdefs.h
|
$as_echo "#define HAVE_LIBPYTHON2_6 1" >>confdefs.h
|
||||||
|
|
||||||
elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
|
|
||||||
|
|
||||||
$as_echo "#define HAVE_LIBPYTHON2_5 1" >>confdefs.h
|
|
||||||
|
|
||||||
elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
|
|
||||||
|
|
||||||
$as_echo "#define HAVE_LIBPYTHON2_4 1" >>confdefs.h
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "${have_libpython}" = no; then
|
if test "${have_libpython}" = no; then
|
||||||
|
@ -11477,8 +11393,8 @@ fi
|
||||||
|
|
||||||
SRCHIGH_LIBS=
|
SRCHIGH_LIBS=
|
||||||
SRCHIGH_CFLAGS=
|
SRCHIGH_CFLAGS=
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for source highlight" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the source-highlight library" >&5
|
||||||
$as_echo_n "checking for source highlight... " >&6; }
|
$as_echo_n "checking for the source-highlight library... " >&6; }
|
||||||
if test "${pkg_config_prog_path}" = "missing"; then
|
if test "${pkg_config_prog_path}" = "missing"; then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no - pkg-config not found" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no - pkg-config not found" >&5
|
||||||
$as_echo "no - pkg-config not found" >&6; }
|
$as_echo "no - pkg-config not found" >&6; }
|
||||||
|
|
|
@ -734,7 +734,7 @@ dnl no - Don't include python support.
|
||||||
dnl yes - Include python support, error if it's missing.
|
dnl yes - Include python support, error if it's missing.
|
||||||
dnl If we find python in $PATH, use it to fetch configure options,
|
dnl If we find python in $PATH, use it to fetch configure options,
|
||||||
dnl otherwise assume the compiler can find it with no help from us.
|
dnl otherwise assume the compiler can find it with no help from us.
|
||||||
dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
|
dnl Python 2.7 and 2.6 are tried in turn.
|
||||||
dnl auto - Same as "yes", but if python is missing from the system,
|
dnl auto - Same as "yes", but if python is missing from the system,
|
||||||
dnl fall back to "no".
|
dnl fall back to "no".
|
||||||
dnl /path/to/python/exec-prefix -
|
dnl /path/to/python/exec-prefix -
|
||||||
|
@ -743,7 +743,7 @@ dnl If /path/to/python/exec-prefix/bin/python exists, use it to find
|
||||||
dnl the compilation parameters. Otherwise use
|
dnl the compilation parameters. Otherwise use
|
||||||
dnl -I/path/to/python/exec-prefix/include,
|
dnl -I/path/to/python/exec-prefix/include,
|
||||||
dnl -L/path/to/python/exec-prefix/lib.
|
dnl -L/path/to/python/exec-prefix/lib.
|
||||||
dnl Python 2.7, 2.6, 2.5, and then 2.4 are tried in turn.
|
dnl Python 2.7 and 2.6 are tried in turn.
|
||||||
dnl NOTE: This case is historical. It is what was done for 7.0/7.1
|
dnl NOTE: This case is historical. It is what was done for 7.0/7.1
|
||||||
dnl but is deprecated.
|
dnl but is deprecated.
|
||||||
dnl /path/to/python/executable -
|
dnl /path/to/python/executable -
|
||||||
|
@ -911,23 +911,11 @@ else
|
||||||
AC_TRY_LIBPYTHON(python2.6, have_libpython,
|
AC_TRY_LIBPYTHON(python2.6, have_libpython,
|
||||||
${python_includes}, "-lpython2.6 ${python_libs}")
|
${python_includes}, "-lpython2.6 ${python_libs}")
|
||||||
fi
|
fi
|
||||||
if test ${have_libpython} = no; then
|
|
||||||
AC_TRY_LIBPYTHON(python2.5, have_libpython,
|
|
||||||
${python_includes}, "-lpython2.5 ${python_libs}")
|
|
||||||
fi
|
|
||||||
if test ${have_libpython} = no; then
|
|
||||||
AC_TRY_LIBPYTHON(python2.4, have_libpython,
|
|
||||||
${python_includes}, "-lpython2.4 ${python_libs}")
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
|
if test "${have_libpython}" = python2.7 -o "${have_libpython}" = python27; then
|
||||||
AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
|
AC_DEFINE(HAVE_LIBPYTHON2_7, 1, [Define if Python 2.7 is being used.])
|
||||||
elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
|
elif test "${have_libpython}" = python2.6 -o "${have_libpython}" = python26; then
|
||||||
AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
|
AC_DEFINE(HAVE_LIBPYTHON2_6, 1, [Define if Python 2.6 is being used.])
|
||||||
elif test "${have_libpython}" = python2.5 -o "${have_libpython}" = python25; then
|
|
||||||
AC_DEFINE(HAVE_LIBPYTHON2_5, 1, [Define if Python 2.5 is being used.])
|
|
||||||
elif test "${have_libpython}" = python2.4 -o "${have_libpython}" = python24; then
|
|
||||||
AC_DEFINE(HAVE_LIBPYTHON2_4, 1, [Define if Python 2.4 is being used.])
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "${have_libpython}" = no; then
|
if test "${have_libpython}" = no; then
|
||||||
|
|
|
@ -1138,9 +1138,7 @@ gdbpy_initialize_breakpoints (void)
|
||||||
/* Add breakpoint types constants. */
|
/* Add breakpoint types constants. */
|
||||||
for (i = 0; pybp_codes[i].name; ++i)
|
for (i = 0; pybp_codes[i].name; ++i)
|
||||||
{
|
{
|
||||||
if (PyModule_AddIntConstant (gdb_module,
|
if (PyModule_AddIntConstant (gdb_module, pybp_codes[i].name,
|
||||||
/* Cast needed for Python 2.4. */
|
|
||||||
(char *) pybp_codes[i].name,
|
|
||||||
pybp_codes[i].code) < 0)
|
pybp_codes[i].code) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1148,9 +1146,7 @@ gdbpy_initialize_breakpoints (void)
|
||||||
/* Add watchpoint types constants. */
|
/* Add watchpoint types constants. */
|
||||||
for (i = 0; pybp_watch_types[i].name; ++i)
|
for (i = 0; pybp_watch_types[i].name; ++i)
|
||||||
{
|
{
|
||||||
if (PyModule_AddIntConstant (gdb_module,
|
if (PyModule_AddIntConstant (gdb_module, pybp_watch_types[i].name,
|
||||||
/* Cast needed for Python 2.4. */
|
|
||||||
(char *) pybp_watch_types[i].name,
|
|
||||||
pybp_watch_types[i].code) < 0)
|
pybp_watch_types[i].code) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1002,20 +1002,11 @@ static PyBufferProcs buffer_procs =
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
/* Python doesn't provide a decent way to get compatibility here. */
|
|
||||||
#if HAVE_LIBPYTHON2_4
|
|
||||||
#define CHARBUFFERPROC_NAME getcharbufferproc
|
|
||||||
#else
|
|
||||||
#define CHARBUFFERPROC_NAME charbufferproc
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static PyBufferProcs buffer_procs = {
|
static PyBufferProcs buffer_procs = {
|
||||||
get_read_buffer,
|
get_read_buffer,
|
||||||
get_write_buffer,
|
get_write_buffer,
|
||||||
get_seg_count,
|
get_seg_count,
|
||||||
/* The cast here works around a difference between Python 2.4 and
|
get_char_buffer
|
||||||
Python 2.5. */
|
|
||||||
(CHARBUFFERPROC_NAME) get_char_buffer
|
|
||||||
};
|
};
|
||||||
#endif /* IS_PY3K */
|
#endif /* IS_PY3K */
|
||||||
|
|
||||||
|
|
|
@ -350,88 +350,6 @@ print_string_repr (PyObject *printer, const char *hint,
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef IS_PY3K
|
|
||||||
|
|
||||||
/* Create a dummy PyFrameObject, needed to work around
|
|
||||||
a Python-2.4 bug with generators. */
|
|
||||||
class dummy_python_frame
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
dummy_python_frame ();
|
|
||||||
|
|
||||||
~dummy_python_frame ()
|
|
||||||
{
|
|
||||||
if (m_valid)
|
|
||||||
m_tstate->frame = m_saved_frame;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool failed () const
|
|
||||||
{
|
|
||||||
return !m_valid;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
bool m_valid;
|
|
||||||
PyFrameObject *m_saved_frame;
|
|
||||||
gdbpy_ref<> m_frame;
|
|
||||||
PyThreadState *m_tstate;
|
|
||||||
};
|
|
||||||
|
|
||||||
dummy_python_frame::dummy_python_frame ()
|
|
||||||
: m_valid (false),
|
|
||||||
m_saved_frame (NULL),
|
|
||||||
m_tstate (NULL)
|
|
||||||
{
|
|
||||||
PyCodeObject *code;
|
|
||||||
PyFrameObject *frame;
|
|
||||||
|
|
||||||
gdbpy_ref<> empty_string (PyString_FromString (""));
|
|
||||||
if (empty_string == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
gdbpy_ref<> null_tuple (PyTuple_New (0));
|
|
||||||
if (null_tuple == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
code = PyCode_New (0, /* argcount */
|
|
||||||
0, /* locals */
|
|
||||||
0, /* stacksize */
|
|
||||||
0, /* flags */
|
|
||||||
empty_string.get (), /* code */
|
|
||||||
null_tuple.get (), /* consts */
|
|
||||||
null_tuple.get (), /* names */
|
|
||||||
null_tuple.get (), /* varnames */
|
|
||||||
#if PYTHON_API_VERSION >= 1010
|
|
||||||
null_tuple.get (), /* freevars */
|
|
||||||
null_tuple.get (), /* cellvars */
|
|
||||||
#endif
|
|
||||||
empty_string.get (), /* filename */
|
|
||||||
empty_string.get (), /* name */
|
|
||||||
1, /* firstlineno */
|
|
||||||
empty_string.get () /* lnotab */
|
|
||||||
);
|
|
||||||
if (code == NULL)
|
|
||||||
return;
|
|
||||||
gdbpy_ref<> code_holder ((PyObject *) code);
|
|
||||||
|
|
||||||
gdbpy_ref<> globals (PyDict_New ());
|
|
||||||
if (globals == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_tstate = PyThreadState_GET ();
|
|
||||||
frame = PyFrame_New (m_tstate, code, globals.get (), NULL);
|
|
||||||
if (frame == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_frame.reset ((PyObject *) frame);
|
|
||||||
m_tstate->frame = frame;
|
|
||||||
m_saved_frame = frame->f_back;
|
|
||||||
m_valid = true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Helper for gdbpy_apply_val_pretty_printer that formats children of the
|
/* Helper for gdbpy_apply_val_pretty_printer that formats children of the
|
||||||
printer, if any exist. If is_py_none is true, then nothing has
|
printer, if any exist. If is_py_none is true, then nothing has
|
||||||
been printed by to_string, and format output accordingly. */
|
been printed by to_string, and format output accordingly. */
|
||||||
|
@ -480,18 +398,6 @@ print_children (PyObject *printer, const char *hint,
|
||||||
pretty = options->prettyformat_structs;
|
pretty = options->prettyformat_structs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Manufacture a dummy Python frame to work around Python 2.4 bug,
|
|
||||||
where it insists on having a non-NULL tstate->frame when
|
|
||||||
a generator is called. */
|
|
||||||
#ifndef IS_PY3K
|
|
||||||
dummy_python_frame frame;
|
|
||||||
if (frame.failed ())
|
|
||||||
{
|
|
||||||
gdbpy_print_stack ();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
done_flag = 0;
|
done_flag = 0;
|
||||||
for (i = 0; i < options->print_max; ++i)
|
for (i = 0; i < options->print_max; ++i)
|
||||||
{
|
{
|
||||||
|
|
|
@ -198,9 +198,7 @@ convert_field (struct type *type, int field)
|
||||||
if (arg == NULL)
|
if (arg == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* At least python-2.4 had the second parameter non-const. */
|
if (PyObject_SetAttrString (result.get (), attrstring, arg.get ()) < 0)
|
||||||
if (PyObject_SetAttrString (result.get (), (char *) attrstring,
|
|
||||||
arg.get ()) < 0)
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1408,9 +1406,7 @@ gdbpy_initialize_types (void)
|
||||||
|
|
||||||
for (i = 0; pyty_codes[i].name; ++i)
|
for (i = 0; pyty_codes[i].name; ++i)
|
||||||
{
|
{
|
||||||
if (PyModule_AddIntConstant (gdb_module,
|
if (PyModule_AddIntConstant (gdb_module, pyty_codes[i].name,
|
||||||
/* Cast needed for Python 2.4. */
|
|
||||||
(char *) pyty_codes[i].name,
|
|
||||||
pyty_codes[i].code) < 0)
|
pyty_codes[i].code) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -382,8 +382,7 @@ gdb_pymodule_addobject (PyObject *module, const char *name, PyObject *object)
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
Py_INCREF (object);
|
Py_INCREF (object);
|
||||||
/* Python 2.4 did not have a 'const' here. */
|
result = PyModule_AddObject (module, name, object);
|
||||||
result = PyModule_AddObject (module, (char *) name, object);
|
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
Py_DECREF (object);
|
Py_DECREF (object);
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -2001,10 +2001,7 @@ static PyNumberMethods value_object_as_number = {
|
||||||
valpy_divide, /* nb_true_divide */
|
valpy_divide, /* nb_true_divide */
|
||||||
NULL, /* nb_inplace_floor_divide */
|
NULL, /* nb_inplace_floor_divide */
|
||||||
NULL, /* nb_inplace_true_divide */
|
NULL, /* nb_inplace_true_divide */
|
||||||
#ifndef HAVE_LIBPYTHON2_4
|
|
||||||
/* This was added in Python 2.5. */
|
|
||||||
valpy_long, /* nb_index */
|
valpy_long, /* nb_index */
|
||||||
#endif /* HAVE_LIBPYTHON2_4 */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static PyMappingMethods value_object_as_mapping = {
|
static PyMappingMethods value_object_as_mapping = {
|
||||||
|
|
|
@ -51,8 +51,6 @@
|
||||||
#define CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION
|
#define CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Python 2.4 doesn't include stdint.h soon enough to get {u,}intptr_t
|
|
||||||
needed by pyport.h. */
|
|
||||||
/* /usr/include/features.h on linux systems will define _POSIX_C_SOURCE
|
/* /usr/include/features.h on linux systems will define _POSIX_C_SOURCE
|
||||||
if it sees _GNU_SOURCE (which config.h will define).
|
if it sees _GNU_SOURCE (which config.h will define).
|
||||||
pyconfig.h defines _POSIX_C_SOURCE to a different value than
|
pyconfig.h defines _POSIX_C_SOURCE to a different value than
|
||||||
|
@ -109,26 +107,6 @@
|
||||||
#define PyString_Check PyUnicode_Check
|
#define PyString_Check PyUnicode_Check
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_LIBPYTHON2_4
|
|
||||||
/* Py_ssize_t is not defined until 2.5.
|
|
||||||
Logical type for Py_ssize_t is Py_intptr_t, but that fails in 64-bit
|
|
||||||
compilation due to several apparent mistakes in python2.4 API, so we
|
|
||||||
use 'int' instead. */
|
|
||||||
typedef int Py_ssize_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef PyVarObject_HEAD_INIT
|
|
||||||
/* Python 2.4 does not define PyVarObject_HEAD_INIT. */
|
|
||||||
#define PyVarObject_HEAD_INIT(type, size) \
|
|
||||||
PyObject_HEAD_INIT(type) size,
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef Py_TYPE
|
|
||||||
/* Python 2.4 does not define Py_TYPE. */
|
|
||||||
#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* If Python.h does not define WITH_THREAD, then the various
|
/* If Python.h does not define WITH_THREAD, then the various
|
||||||
GIL-related functions will not be defined. However,
|
GIL-related functions will not be defined. However,
|
||||||
PyGILState_STATE will be. */
|
PyGILState_STATE will be. */
|
||||||
|
@ -183,41 +161,12 @@ typedef long Py_hash_t;
|
||||||
static inline void
|
static inline void
|
||||||
gdb_Py_DECREF (void *op) /* ARI: editCase function */
|
gdb_Py_DECREF (void *op) /* ARI: editCase function */
|
||||||
{
|
{
|
||||||
/* ... and Python 2.4 didn't cast OP to PyObject pointer on the
|
Py_DECREF (op);
|
||||||
'(op)->ob_refcnt' references within the macro. Cast it ourselves
|
|
||||||
too. */
|
|
||||||
Py_DECREF ((PyObject *) op);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef Py_DECREF
|
#undef Py_DECREF
|
||||||
#define Py_DECREF(op) gdb_Py_DECREF (op)
|
#define Py_DECREF(op) gdb_Py_DECREF (op)
|
||||||
|
|
||||||
/* The second argument to PyObject_GetAttrString was missing the 'const'
|
|
||||||
qualifier in Python-2.4. Hence, we wrap it in a function to avoid errors
|
|
||||||
when compiled with -Werror. */
|
|
||||||
|
|
||||||
static inline PyObject *
|
|
||||||
gdb_PyObject_GetAttrString (PyObject *obj,
|
|
||||||
const char *attr) /* ARI: editCase function */
|
|
||||||
{
|
|
||||||
return PyObject_GetAttrString (obj, (char *) attr);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define PyObject_GetAttrString(obj, attr) gdb_PyObject_GetAttrString (obj, attr)
|
|
||||||
|
|
||||||
/* The second argument to PyObject_HasAttrString was also missing the 'const'
|
|
||||||
qualifier in Python-2.4. Hence, we wrap it also in a function to avoid
|
|
||||||
errors when compiled with -Werror. */
|
|
||||||
|
|
||||||
static inline int
|
|
||||||
gdb_PyObject_HasAttrString (PyObject *obj,
|
|
||||||
const char *attr) /* ARI: editCase function */
|
|
||||||
{
|
|
||||||
return PyObject_HasAttrString (obj, (char *) attr);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define PyObject_HasAttrString(obj, attr) gdb_PyObject_HasAttrString (obj, attr)
|
|
||||||
|
|
||||||
/* PyObject_CallMethod's 'method' and 'format' parameters were missing
|
/* PyObject_CallMethod's 'method' and 'format' parameters were missing
|
||||||
the 'const' qualifier before Python 3.4. Hence, we wrap the
|
the 'const' qualifier before Python 3.4. Hence, we wrap the
|
||||||
function in our own version to avoid errors with string literals.
|
function in our own version to avoid errors with string literals.
|
||||||
|
|
|
@ -1646,12 +1646,10 @@ do_start_initialization ()
|
||||||
if (gdb_module == NULL)
|
if (gdb_module == NULL)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* The casts to (char*) are for python 2.4. */
|
if (PyModule_AddStringConstant (gdb_module, "VERSION", version) < 0
|
||||||
if (PyModule_AddStringConstant (gdb_module, "VERSION", (char*) version) < 0
|
|| PyModule_AddStringConstant (gdb_module, "HOST_CONFIG", host_name) < 0
|
||||||
|| PyModule_AddStringConstant (gdb_module, "HOST_CONFIG",
|
|
||||||
(char*) host_name) < 0
|
|
||||||
|| PyModule_AddStringConstant (gdb_module, "TARGET_CONFIG",
|
|| PyModule_AddStringConstant (gdb_module, "TARGET_CONFIG",
|
||||||
(char*) target_name) < 0)
|
target_name) < 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* Add stream constants. */
|
/* Add stream constants. */
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
2019-02-27 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
|
* lib/gdb.exp (skip_python_tests_prompt): Don't check for Python
|
||||||
|
2.4.
|
||||||
|
* gdb.python/py-finish-breakpoint.exp: Remove Python 2.4
|
||||||
|
workaround.
|
||||||
|
|
||||||
2019-02-27 Andrew Burgess <andrew.burgess@embecosm.com>
|
2019-02-27 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
* gdb.base/align.exp: Extend to compile in both C and C++, and add
|
* gdb.base/align.exp: Extend to compile in both C and C++, and add
|
||||||
|
|
|
@ -46,13 +46,6 @@ clean_restart ${testfile}
|
||||||
|
|
||||||
if { [skip_python_tests] } { continue }
|
if { [skip_python_tests] } { continue }
|
||||||
|
|
||||||
if { $gdb_py_is_py24 == 1 } {
|
|
||||||
# Python 2.4, 2.5 do not support the "ValueError as e" syntax used in
|
|
||||||
# the py-finish-breakpoint.py script.
|
|
||||||
untested "missing support on Python 2.4 and 2.5"
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test FinishBreakpoint in normal conditions
|
# Test FinishBreakpoint in normal conditions
|
||||||
#
|
#
|
||||||
|
|
|
@ -1803,7 +1803,6 @@ proc skip_rust_tests {} {
|
||||||
|
|
||||||
proc skip_python_tests_prompt { prompt_regexp } {
|
proc skip_python_tests_prompt { prompt_regexp } {
|
||||||
global gdb_py_is_py3k
|
global gdb_py_is_py3k
|
||||||
global gdb_py_is_py24
|
|
||||||
|
|
||||||
gdb_test_multiple "python print ('test')" "verify python support" {
|
gdb_test_multiple "python print ('test')" "verify python support" {
|
||||||
-re "not supported.*$prompt_regexp" {
|
-re "not supported.*$prompt_regexp" {
|
||||||
|
@ -1813,7 +1812,6 @@ proc skip_python_tests_prompt { prompt_regexp } {
|
||||||
-re "$prompt_regexp" {}
|
-re "$prompt_regexp" {}
|
||||||
}
|
}
|
||||||
|
|
||||||
set gdb_py_is_py24 0
|
|
||||||
gdb_test_multiple "python print (sys.version_info\[0\])" "check if python 3" {
|
gdb_test_multiple "python print (sys.version_info\[0\])" "check if python 3" {
|
||||||
-re "3.*$prompt_regexp" {
|
-re "3.*$prompt_regexp" {
|
||||||
set gdb_py_is_py3k 1
|
set gdb_py_is_py3k 1
|
||||||
|
@ -1822,16 +1820,6 @@ proc skip_python_tests_prompt { prompt_regexp } {
|
||||||
set gdb_py_is_py3k 0
|
set gdb_py_is_py3k 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if { $gdb_py_is_py3k == 0 } {
|
|
||||||
gdb_test_multiple "python print (sys.version_info\[1\])" "check if python 2.4" {
|
|
||||||
-re "\[45\].*$prompt_regexp" {
|
|
||||||
set gdb_py_is_py24 1
|
|
||||||
}
|
|
||||||
-re ".*$prompt_regexp" {
|
|
||||||
set gdb_py_is_py24 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue