diff options
author | Tom Tromey <tromey@adacore.com> | 2019-02-26 11:58:47 -0700 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2019-02-27 11:43:06 -0700 |
commit | 6c28e44a359e9f6cf455ddff0009ca99406f7224 (patch) | |
tree | d7d47c3142dcab10534e5b382fc7b233d12ac310 /gdb/python | |
parent | 2c3fc25dd18d3afb4b4cb494c4803fdfbf00ae9b (diff) | |
download | fsf-binutils-gdb-6c28e44a359e9f6cf455ddff0009ca99406f7224.zip fsf-binutils-gdb-6c28e44a359e9f6cf455ddff0009ca99406f7224.tar.gz fsf-binutils-gdb-6c28e44a359e9f6cf455ddff0009ca99406f7224.tar.bz2 |
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.
Diffstat (limited to 'gdb/python')
-rw-r--r-- | gdb/python/py-breakpoint.c | 8 | ||||
-rw-r--r-- | gdb/python/py-inferior.c | 11 | ||||
-rw-r--r-- | gdb/python/py-prettyprint.c | 94 | ||||
-rw-r--r-- | gdb/python/py-type.c | 8 | ||||
-rw-r--r-- | gdb/python/py-utils.c | 3 | ||||
-rw-r--r-- | gdb/python/py-value.c | 3 | ||||
-rw-r--r-- | gdb/python/python-internal.h | 53 | ||||
-rw-r--r-- | gdb/python/python.c | 8 |
8 files changed, 10 insertions, 178 deletions
diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c index f41d88d..ba3b4f0 100644 --- a/gdb/python/py-breakpoint.c +++ b/gdb/python/py-breakpoint.c @@ -1138,9 +1138,7 @@ gdbpy_initialize_breakpoints (void) /* Add breakpoint types constants. */ for (i = 0; pybp_codes[i].name; ++i) { - if (PyModule_AddIntConstant (gdb_module, - /* Cast needed for Python 2.4. */ - (char *) pybp_codes[i].name, + if (PyModule_AddIntConstant (gdb_module, pybp_codes[i].name, pybp_codes[i].code) < 0) return -1; } @@ -1148,9 +1146,7 @@ gdbpy_initialize_breakpoints (void) /* Add watchpoint types constants. */ for (i = 0; pybp_watch_types[i].name; ++i) { - if (PyModule_AddIntConstant (gdb_module, - /* Cast needed for Python 2.4. */ - (char *) pybp_watch_types[i].name, + if (PyModule_AddIntConstant (gdb_module, pybp_watch_types[i].name, pybp_watch_types[i].code) < 0) return -1; } diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c index ba769b3..72fbf6d 100644 --- a/gdb/python/py-inferior.c +++ b/gdb/python/py-inferior.c @@ -1002,20 +1002,11 @@ static PyBufferProcs buffer_procs = #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 = { get_read_buffer, get_write_buffer, get_seg_count, - /* The cast here works around a difference between Python 2.4 and - Python 2.5. */ - (CHARBUFFERPROC_NAME) get_char_buffer + get_char_buffer }; #endif /* IS_PY3K */ diff --git a/gdb/python/py-prettyprint.c b/gdb/python/py-prettyprint.c index 8effa81..b069ca3 100644 --- a/gdb/python/py-prettyprint.c +++ b/gdb/python/py-prettyprint.c @@ -350,88 +350,6 @@ print_string_repr (PyObject *printer, const char *hint, 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 printer, if any exist. If is_py_none is true, then nothing has been printed by to_string, and format output accordingly. */ @@ -480,18 +398,6 @@ print_children (PyObject *printer, const char *hint, 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; for (i = 0; i < options->print_max; ++i) { diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index 7ad1a0c..c908ec6 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -198,9 +198,7 @@ convert_field (struct type *type, int field) if (arg == NULL) return NULL; - /* At least python-2.4 had the second parameter non-const. */ - if (PyObject_SetAttrString (result.get (), (char *) attrstring, - arg.get ()) < 0) + if (PyObject_SetAttrString (result.get (), attrstring, arg.get ()) < 0) return NULL; } @@ -1408,9 +1406,7 @@ gdbpy_initialize_types (void) for (i = 0; pyty_codes[i].name; ++i) { - if (PyModule_AddIntConstant (gdb_module, - /* Cast needed for Python 2.4. */ - (char *) pyty_codes[i].name, + if (PyModule_AddIntConstant (gdb_module, pyty_codes[i].name, pyty_codes[i].code) < 0) return -1; } diff --git a/gdb/python/py-utils.c b/gdb/python/py-utils.c index 0f96aab..a380b34 100644 --- a/gdb/python/py-utils.c +++ b/gdb/python/py-utils.c @@ -382,8 +382,7 @@ gdb_pymodule_addobject (PyObject *module, const char *name, PyObject *object) int result; Py_INCREF (object); - /* Python 2.4 did not have a 'const' here. */ - result = PyModule_AddObject (module, (char *) name, object); + result = PyModule_AddObject (module, name, object); if (result < 0) Py_DECREF (object); return result; diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c index 445be72..63a9952 100644 --- a/gdb/python/py-value.c +++ b/gdb/python/py-value.c @@ -2001,10 +2001,7 @@ static PyNumberMethods value_object_as_number = { valpy_divide, /* nb_true_divide */ NULL, /* nb_inplace_floor_divide */ NULL, /* nb_inplace_true_divide */ -#ifndef HAVE_LIBPYTHON2_4 - /* This was added in Python 2.5. */ valpy_long, /* nb_index */ -#endif /* HAVE_LIBPYTHON2_4 */ }; static PyMappingMethods value_object_as_mapping = { 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. diff --git a/gdb/python/python.c b/gdb/python/python.c index c23db2c..0d9415c 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -1646,12 +1646,10 @@ do_start_initialization () if (gdb_module == NULL) return false; - /* The casts to (char*) are for python 2.4. */ - if (PyModule_AddStringConstant (gdb_module, "VERSION", (char*) version) < 0 - || PyModule_AddStringConstant (gdb_module, "HOST_CONFIG", - (char*) host_name) < 0 + if (PyModule_AddStringConstant (gdb_module, "VERSION", version) < 0 + || PyModule_AddStringConstant (gdb_module, "HOST_CONFIG", host_name) < 0 || PyModule_AddStringConstant (gdb_module, "TARGET_CONFIG", - (char*) target_name) < 0) + target_name) < 0) return false; /* Add stream constants. */ |