From 6c28e44a359e9f6cf455ddff0009ca99406f7224 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 26 Feb 2019 11:58:47 -0700 Subject: 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 * 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 * 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 * 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/python/python-internal.h | 53 +------------------------------------------- 1 file changed, 1 insertion(+), 52 deletions(-) (limited to 'gdb/python/python-internal.h') diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index d11af83..449926c 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -51,8 +51,6 @@ #define CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION #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 if it sees _GNU_SOURCE (which config.h will define). pyconfig.h defines _POSIX_C_SOURCE to a different value than @@ -109,26 +107,6 @@ #define PyString_Check PyUnicode_Check #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 GIL-related functions will not be defined. However, PyGILState_STATE will be. */ @@ -183,41 +161,12 @@ typedef long Py_hash_t; static inline void gdb_Py_DECREF (void *op) /* ARI: editCase function */ { - /* ... and Python 2.4 didn't cast OP to PyObject pointer on the - '(op)->ob_refcnt' references within the macro. Cast it ourselves - too. */ - Py_DECREF ((PyObject *) op); + Py_DECREF (op); } #undef Py_DECREF #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 the 'const' qualifier before Python 3.4. Hence, we wrap the function in our own version to avoid errors with string literals. -- cgit v1.1