diff options
Diffstat (limited to 'gdb/python')
-rw-r--r-- | gdb/python/lib/gdb/__init__.py | 2 | ||||
-rw-r--r-- | gdb/python/lib/gdb/command/explore.py | 22 | ||||
-rw-r--r-- | gdb/python/lib/gdb/printer/bound_registers.py | 7 | ||||
-rw-r--r-- | gdb/python/lib/gdb/printing.py | 9 | ||||
-rw-r--r-- | gdb/python/lib/gdb/xmethod.py | 8 | ||||
-rw-r--r-- | gdb/python/py-arch.c | 6 | ||||
-rw-r--r-- | gdb/python/py-evts.c | 6 | ||||
-rw-r--r-- | gdb/python/py-framefilter.c | 6 | ||||
-rw-r--r-- | gdb/python/py-membuf.c | 73 | ||||
-rw-r--r-- | gdb/python/py-param.c | 8 | ||||
-rw-r--r-- | gdb/python/py-record-btrace.c | 17 | ||||
-rw-r--r-- | gdb/python/py-type.c | 13 | ||||
-rw-r--r-- | gdb/python/py-utils.c | 47 | ||||
-rw-r--r-- | gdb/python/py-value.c | 66 | ||||
-rw-r--r-- | gdb/python/python-internal.h | 10 | ||||
-rw-r--r-- | gdb/python/python.c | 19 |
16 files changed, 19 insertions, 300 deletions
diff --git a/gdb/python/lib/gdb/__init__.py b/gdb/python/lib/gdb/__init__.py index 5f63bce..a52f6b4 100644 --- a/gdb/python/lib/gdb/__init__.py +++ b/gdb/python/lib/gdb/__init__.py @@ -22,7 +22,7 @@ from contextlib import contextmanager # Python 3 moved "reload" if sys.version_info >= (3, 4): from importlib import reload -elif sys.version_info[0] > 2: +else: from imp import reload from _gdb import * diff --git a/gdb/python/lib/gdb/command/explore.py b/gdb/python/lib/gdb/command/explore.py index ea49c38..c03bef3 100644 --- a/gdb/python/lib/gdb/command/explore.py +++ b/gdb/python/lib/gdb/command/explore.py @@ -19,10 +19,6 @@ import gdb import sys -if sys.version_info[0] > 2: - # Python 3 renamed raw_input to input - raw_input = input - class Explorer(object): """Internal class which invokes other explorers.""" @@ -172,7 +168,7 @@ class Explorer(object): so that the exploration session can shift back to the parent value. Useful when exploring values. """ - raw_input("\nPress enter to return to parent value: ") + input("\nPress enter to return to parent value: ") @staticmethod def return_to_enclosing_type(): @@ -187,7 +183,7 @@ class Explorer(object): so that the exploration session can shift back to the enclosing type. Useful when exploring types. """ - raw_input("\nPress enter to return to enclosing type: ") + input("\nPress enter to return to enclosing type: ") class ScalarExplorer(object): @@ -244,7 +240,7 @@ class PointerExplorer(object): "'%s' is a pointer to a value of type '%s'" % (expr, str(value.type.target())) ) - option = raw_input( + option = input( "Continue exploring it as a pointer to a single " "value [y/n]: " ) if option == "y": @@ -264,13 +260,13 @@ class PointerExplorer(object): ) return False - option = raw_input("Continue exploring it as a pointer to an " "array [y/n]: ") + option = input("Continue exploring it as a pointer to an " "array [y/n]: ") if option == "y": while True: index = 0 try: index = int( - raw_input( + input( "Enter the index of the element you " "want to explore in '%s': " % expr ) @@ -338,7 +334,7 @@ class ArrayExplorer(object): index = 0 try: index = int( - raw_input( + input( "Enter the index of the element you want to " "explore in '%s': " % expr ) @@ -354,7 +350,7 @@ class ArrayExplorer(object): str(element) except gdb.MemoryError: print("Cannot read value at index %d." % index) - raw_input("Press enter to continue... ") + input("Press enter to continue... ") return True Explorer.explore_expr( @@ -474,7 +470,7 @@ class CompoundExplorer(object): print("") if has_explorable_fields: - choice = raw_input("Enter the field number of choice: ") + choice = input("Enter the field number of choice: ") if choice in choice_to_compound_field_map: Explorer.explore_expr( choice_to_compound_field_map[choice][0], @@ -550,7 +546,7 @@ class CompoundExplorer(object): print("") if len(choice_to_compound_field_map) > 0: - choice = raw_input("Enter the field number of choice: ") + choice = input("Enter the field number of choice: ") if choice in choice_to_compound_field_map: if is_child: new_name = "%s '%s' of %s" % ( diff --git a/gdb/python/lib/gdb/printer/bound_registers.py b/gdb/python/lib/gdb/printer/bound_registers.py index f8ce9ea..7cb6e8f 100644 --- a/gdb/python/lib/gdb/printer/bound_registers.py +++ b/gdb/python/lib/gdb/printer/bound_registers.py @@ -18,11 +18,6 @@ import sys import gdb.printing -if sys.version_info[0] > 2: - # Python 3 removed basestring and long - basestring = str - long = int - class MpxBound128Printer: """Adds size field to a mpx __gdb_builtin_type_bound128 type.""" @@ -33,7 +28,7 @@ class MpxBound128Printer: def to_string(self): upper = self.val["ubound"] lower = self.val["lbound"] - size = (long)((upper) - (lower)) + size = upper - lower if size > -1: size = size + 1 result = "{lbound = %s, ubound = %s} : size %s" % (lower, upper, size) diff --git a/gdb/python/lib/gdb/printing.py b/gdb/python/lib/gdb/printing.py index 93d61f1..e208e88 100644 --- a/gdb/python/lib/gdb/printing.py +++ b/gdb/python/lib/gdb/printing.py @@ -21,11 +21,6 @@ import gdb.types import re import sys -if sys.version_info[0] > 2: - # Python 3 removed basestring and long - basestring = str - long = int - class PrettyPrinter(object): """A basic pretty-printer. @@ -132,7 +127,7 @@ def register_pretty_printer(obj, printer, replace=False): # Printers implemented as functions are old-style. In order to not risk # breaking anything we do not check __name__ here. if hasattr(printer, "name"): - if not isinstance(printer.name, basestring): + if not isinstance(printer.name, str): raise TypeError("printer name is not a string") # If printer provides a name, make sure it doesn't contain ";". # Semicolon is used by the info/enable/disable pretty-printer commands @@ -232,7 +227,7 @@ class _EnumInstance: def to_string(self): flag_list = [] - v = long(self.val) + v = int(self.val) any_found = False for (e_name, e_value) in self.enumerators: if v & e_value != 0: diff --git a/gdb/python/lib/gdb/xmethod.py b/gdb/python/lib/gdb/xmethod.py index 4c3a522..c69ea99 100644 --- a/gdb/python/lib/gdb/xmethod.py +++ b/gdb/python/lib/gdb/xmethod.py @@ -21,12 +21,6 @@ import re import sys -if sys.version_info[0] > 2: - # Python 3 removed basestring and long - basestring = str - long = int - - class XMethod(object): """Base class (or a template) for an xmethod description. @@ -223,7 +217,7 @@ def _validate_xmethod_matcher(matcher): return TypeError("Xmethod matcher is missing attribute: name") if not hasattr(matcher, "enabled"): return TypeError("Xmethod matcher is missing attribute: enabled") - if not isinstance(matcher.name, basestring): + if not isinstance(matcher.name, str): return TypeError("Attribute 'name' of xmethod matcher is not a " "string") if matcher.name.find(";") >= 0: return ValueError("Xmethod matcher name cannot contain ';' in it") diff --git a/gdb/python/py-arch.c b/gdb/python/py-arch.c index e6dfb24..cc217df 100644 --- a/gdb/python/py-arch.c +++ b/gdb/python/py-arch.c @@ -148,12 +148,6 @@ archpy_disassemble (PyObject *self, PyObject *args, PyObject *kw) conversion process. */ if (PyLong_Check (end_obj)) end = PyLong_AsUnsignedLongLong (end_obj); -#if PY_MAJOR_VERSION == 2 - else if (PyInt_Check (end_obj)) - /* If the end_pc value is specified without a trailing 'L', end_obj will - be an integer and not a long integer. */ - end = PyInt_AsLong (end_obj); -#endif else { PyErr_SetString (PyExc_TypeError, diff --git a/gdb/python/py-evts.c b/gdb/python/py-evts.c index 457825c..23a5d75 100644 --- a/gdb/python/py-evts.c +++ b/gdb/python/py-evts.c @@ -20,7 +20,6 @@ #include "defs.h" #include "py-events.h" -#ifdef IS_PY3K static struct PyModuleDef EventModuleDef = { PyModuleDef_HEAD_INIT, @@ -33,7 +32,6 @@ static struct PyModuleDef EventModuleDef = NULL, NULL }; -#endif /* Initialize python events. */ @@ -53,11 +51,7 @@ add_new_registry (eventregistry_object **registryp, const char *name) int gdbpy_initialize_py_events (void) { -#ifdef IS_PY3K gdb_py_events.module = PyModule_Create (&EventModuleDef); -#else - gdb_py_events.module = Py_InitModule ("events", NULL); -#endif if (!gdb_py_events.module) return -1; diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c index e6eb1ec..0170fe6 100644 --- a/gdb/python/py-framefilter.c +++ b/gdb/python/py-framefilter.c @@ -920,11 +920,7 @@ py_print_frame (PyObject *filter, frame_filter_flags flags, function = function_to_free.get (); } - else if (PyLong_Check (py_func.get ()) -#if PY_MAJOR_VERSION == 2 - || PyInt_Check (py_func.get ()) -#endif - ) + else if (PyLong_Check (py_func.get ())) { CORE_ADDR addr; struct bound_minimal_symbol msymbol; diff --git a/gdb/python/py-membuf.c b/gdb/python/py-membuf.c index 74cc0fb..348dfa3 100644 --- a/gdb/python/py-membuf.c +++ b/gdb/python/py-membuf.c @@ -54,15 +54,7 @@ gdbpy_buffer_to_membuf (gdb::unique_xmalloc_ptr<gdb_byte> buffer, membuf_obj->addr = address; membuf_obj->length = length; - PyObject *result; -#ifdef IS_PY3K - result = PyMemoryView_FromObject ((PyObject *) membuf_obj.get ()); -#else - result = PyBuffer_FromReadWriteObject ((PyObject *) membuf_obj.get (), 0, - Py_END_OF_BUFFER); -#endif - - return result; + return PyMemoryView_FromObject ((PyObject *) membuf_obj.get ()); } /* Destructor for gdb.Membuf objects. */ @@ -88,8 +80,6 @@ which is %s bytes long."), pulongest (membuf_obj->length)); } -#ifdef IS_PY3K - static int get_buffer (PyObject *self, Py_buffer *buf, int flags) { @@ -107,54 +97,6 @@ get_buffer (PyObject *self, Py_buffer *buf, int flags) return ret; } -#else - -static Py_ssize_t -get_read_buffer (PyObject *self, Py_ssize_t segment, void **ptrptr) -{ - membuf_object *membuf_obj = (membuf_object *) self; - - if (segment) - { - PyErr_SetString (PyExc_SystemError, - _("The memory buffer supports only one segment.")); - return -1; - } - - *ptrptr = membuf_obj->buffer; - - return membuf_obj->length; -} - -static Py_ssize_t -get_write_buffer (PyObject *self, Py_ssize_t segment, void **ptrptr) -{ - return get_read_buffer (self, segment, ptrptr); -} - -static Py_ssize_t -get_seg_count (PyObject *self, Py_ssize_t *lenp) -{ - if (lenp) - *lenp = ((membuf_object *) self)->length; - - return 1; -} - -static Py_ssize_t -get_char_buffer (PyObject *self, Py_ssize_t segment, char **ptrptr) -{ - void *ptr = nullptr; - Py_ssize_t ret; - - ret = get_read_buffer (self, segment, &ptr); - *ptrptr = (char *) ptr; - - return ret; -} - -#endif /* IS_PY3K */ - /* General Python initialization callback. */ int @@ -168,24 +110,11 @@ gdbpy_initialize_membuf (void) (PyObject *) &membuf_object_type); } -#ifdef IS_PY3K - static PyBufferProcs buffer_procs = { get_buffer }; -#else - -static PyBufferProcs buffer_procs = { - get_read_buffer, - get_write_buffer, - get_seg_count, - get_char_buffer -}; - -#endif /* IS_PY3K */ - PyTypeObject membuf_object_type = { PyVarObject_HEAD_INIT (nullptr, 0) "gdb.Membuf", /*tp_name*/ diff --git a/gdb/python/py-param.c b/gdb/python/py-param.c index 00f917e..6be771c 100644 --- a/gdb/python/py-param.c +++ b/gdb/python/py-param.c @@ -126,11 +126,7 @@ static PyObject * get_attr (PyObject *obj, PyObject *attr_name) { if (PyString_Check (attr_name) -#ifdef IS_PY3K && ! PyUnicode_CompareWithASCIIString (attr_name, "value")) -#else - && ! strcmp (PyString_AsString (attr_name), "value")) -#endif { parmpy_object *self = (parmpy_object *) obj; @@ -313,11 +309,7 @@ static int set_attr (PyObject *obj, PyObject *attr_name, PyObject *val) { if (PyString_Check (attr_name) -#ifdef IS_PY3K && ! PyUnicode_CompareWithASCIIString (attr_name, "value")) -#else - && ! strcmp (PyString_AsString (attr_name), "value")) -#endif { if (!val) { diff --git a/gdb/python/py-record-btrace.c b/gdb/python/py-record-btrace.c index 2a0e89d..bee17e0 100644 --- a/gdb/python/py-record-btrace.c +++ b/gdb/python/py-record-btrace.c @@ -28,16 +28,6 @@ #include "disasm.h" #include "gdbarch.h" -#if defined (IS_PY3K) - -#define BTPY_PYSLICE(x) (x) - -#else - -#define BTPY_PYSLICE(x) ((PySliceObject *) x) - -#endif - /* Python object for btrace record lists. */ struct btpy_list_object { @@ -295,12 +285,7 @@ recpy_bt_insn_data (PyObject *self, void *closure) if (object == NULL) return NULL; -#ifdef IS_PY3K return PyMemoryView_FromObject (object); -#else - return PyBuffer_FromObject (object, 0, Py_END_OF_BUFFER); -#endif - } /* Implementation of RecordInstruction.decoded [str] for btrace. @@ -500,7 +485,7 @@ btpy_list_slice (PyObject *self, PyObject *value) if (!PySlice_Check (value)) return PyErr_Format (PyExc_TypeError, _("Index must be int or slice.")); - if (0 != PySlice_GetIndicesEx (BTPY_PYSLICE (value), length, &start, &stop, + if (0 != PySlice_GetIndicesEx (value, length, &start, &stop, &step, &slicelength)) return NULL; diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index 7be3f32..8838884 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -1610,9 +1610,6 @@ static PyNumberMethods type_object_as_number = { NULL, /* nb_add */ NULL, /* nb_subtract */ NULL, /* nb_multiply */ -#ifndef IS_PY3K - NULL, /* nb_divide */ -#endif NULL, /* nb_remainder */ NULL, /* nb_divmod */ NULL, /* nb_power */ @@ -1626,19 +1623,9 @@ static PyNumberMethods type_object_as_number = { NULL, /* nb_and */ NULL, /* nb_xor */ NULL, /* nb_or */ -#ifdef IS_PY3K NULL, /* nb_int */ NULL, /* reserved */ -#else - NULL, /* nb_coerce */ - NULL, /* nb_int */ - NULL, /* nb_long */ -#endif NULL, /* nb_float */ -#ifndef IS_PY3K - NULL, /* nb_oct */ - NULL /* nb_hex */ -#endif }; static PyMappingMethods typy_mapping = { diff --git a/gdb/python/py-utils.c b/gdb/python/py-utils.c index 838853c..e7b147c 100644 --- a/gdb/python/py-utils.c +++ b/gdb/python/py-utils.c @@ -45,14 +45,10 @@ python_string_to_unicode (PyObject *obj) unicode_str = obj; Py_INCREF (obj); } -#ifndef IS_PY3K - else if (PyString_Check (obj)) - unicode_str = PyUnicode_FromEncodedObject (obj, host_charset (), NULL); -#endif else { PyErr_SetString (PyExc_TypeError, - _("Expected a string or unicode object.")); + _("Expected a string object.")); unicode_str = NULL; } @@ -166,11 +162,7 @@ host_string_to_python_string (const char *str) int gdbpy_is_string (PyObject *obj) { -#ifdef IS_PY3K return PyUnicode_Check (obj); -#else - return PyString_Check (obj) || PyUnicode_Check (obj); -#endif } /* Return the string representation of OBJ, i.e., str (obj). @@ -182,17 +174,7 @@ gdbpy_obj_to_string (PyObject *obj) gdbpy_ref<> str_obj (PyObject_Str (obj)); if (str_obj != NULL) - { - gdb::unique_xmalloc_ptr<char> msg; - -#ifdef IS_PY3K - msg = python_string_to_host_string (str_obj.get ()); -#else - msg.reset (xstrdup (PyString_AsString (str_obj.get ()))); -#endif - - return msg; - } + return python_string_to_host_string (str_obj.get ()); return NULL; } @@ -296,20 +278,9 @@ get_addr_from_python (PyObject *obj, CORE_ADDR *addr) gdbpy_ref<> gdb_py_object_from_longest (LONGEST l) { -#ifdef IS_PY3K if (sizeof (l) > sizeof (long)) return gdbpy_ref<> (PyLong_FromLongLong (l)); return gdbpy_ref<> (PyLong_FromLong (l)); -#else -#ifdef HAVE_LONG_LONG /* Defined by Python. */ - /* If we have 'long long', and the value overflows a 'long', use a - Python Long; otherwise use a Python Int. */ - if (sizeof (l) > sizeof (long) - && (l > PyInt_GetMax () || l < (- (LONGEST) PyInt_GetMax ()) - 1)) - return gdbpy_ref<> (PyLong_FromLongLong (l)); -#endif - return gdbpy_ref<> (PyInt_FromLong (l)); -#endif } /* Convert a ULONGEST to the appropriate Python object -- either an @@ -318,23 +289,9 @@ gdb_py_object_from_longest (LONGEST l) gdbpy_ref<> gdb_py_object_from_ulongest (ULONGEST l) { -#ifdef IS_PY3K if (sizeof (l) > sizeof (unsigned long)) return gdbpy_ref<> (PyLong_FromUnsignedLongLong (l)); return gdbpy_ref<> (PyLong_FromUnsignedLong (l)); -#else -#ifdef HAVE_LONG_LONG /* Defined by Python. */ - /* If we have 'long long', and the value overflows a 'long', use a - Python Long; otherwise use a Python Int. */ - if (sizeof (l) > sizeof (unsigned long) && l > PyInt_GetMax ()) - return gdbpy_ref<> (PyLong_FromUnsignedLongLong (l)); -#endif - - if (l > PyInt_GetMax ()) - return gdbpy_ref<> (PyLong_FromUnsignedLong (l)); - - return gdbpy_ref<> (PyInt_FromLong (l)); -#endif } /* Like PyInt_AsLong, but returns 0 on failure, 1 on success, and puts diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c index b546344..e779f49 100644 --- a/gdb/python/py-value.c +++ b/gdb/python/py-value.c @@ -1695,41 +1695,6 @@ valpy_richcompare (PyObject *self, PyObject *other, int op) Py_RETURN_FALSE; } -#ifndef IS_PY3K -/* Implements conversion to int. */ -static PyObject * -valpy_int (PyObject *self) -{ - struct value *value = ((value_object *) self)->value; - struct type *type = value_type (value); - LONGEST l = 0; - - try - { - if (is_floating_value (value)) - { - type = builtin_type_pylong; - value = value_cast (type, value); - } - - if (!is_integral_type (type) - && type->code () != TYPE_CODE_PTR) - error (_("Cannot convert value to int.")); - - l = value_as_long (value); - } - catch (const gdb_exception &except) - { - GDB_PY_HANDLE_EXCEPTION (except); - } - - if (type->is_unsigned ()) - return gdb_py_object_from_ulongest (l).release (); - else - return gdb_py_object_from_longest (l).release (); -} -#endif - /* Implements conversion to long. */ static PyObject * valpy_long (PyObject *self) @@ -1914,15 +1879,6 @@ convert_value_from_python (PyObject *obj) else value = value_from_longest (builtin_type_pylong, l); } -#if PY_MAJOR_VERSION == 2 - else if (PyInt_Check (obj)) - { - long l = PyInt_AsLong (obj); - - if (! PyErr_Occurred ()) - value = value_from_longest (builtin_type_pyint, l); - } -#endif else if (PyFloat_Check (obj)) { double d = PyFloat_AsDouble (obj); @@ -1948,14 +1904,8 @@ convert_value_from_python (PyObject *obj) value = value_copy (((value_object *) result)->value); } else -#ifdef IS_PY3K PyErr_Format (PyExc_TypeError, _("Could not convert Python object: %S."), obj); -#else - PyErr_Format (PyExc_TypeError, - _("Could not convert Python object: %s."), - PyString_AsString (PyObject_Str (obj))); -#endif } catch (const gdb_exception &except) { @@ -2176,9 +2126,6 @@ static PyNumberMethods value_object_as_number = { valpy_add, valpy_subtract, valpy_multiply, -#ifndef IS_PY3K - valpy_divide, -#endif valpy_remainder, NULL, /* nb_divmod */ valpy_power, /* nb_power */ @@ -2192,25 +2139,12 @@ static PyNumberMethods value_object_as_number = { valpy_and, /* nb_and */ valpy_xor, /* nb_xor */ valpy_or, /* nb_or */ -#ifdef IS_PY3K valpy_long, /* nb_int */ NULL, /* reserved */ -#else - NULL, /* nb_coerce */ - valpy_int, /* nb_int */ - valpy_long, /* nb_long */ -#endif valpy_float, /* nb_float */ -#ifndef IS_PY3K - NULL, /* nb_oct */ - NULL, /* nb_hex */ -#endif NULL, /* nb_inplace_add */ NULL, /* nb_inplace_subtract */ NULL, /* nb_inplace_multiply */ -#ifndef IS_PY3K - NULL, /* nb_inplace_divide */ -#endif NULL, /* nb_inplace_remainder */ NULL, /* nb_inplace_power */ NULL, /* nb_inplace_lshift */ diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index 7d1e425..ccf440c 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -87,11 +87,6 @@ #include <frameobject.h> #include "py-ref.h" -#if PY_MAJOR_VERSION >= 3 -#define IS_PY3K 1 -#endif - -#ifdef IS_PY3K #define Py_TPFLAGS_CHECKTYPES 0 #define PyInt_Check PyLong_Check @@ -102,7 +97,6 @@ #define PyString_Decode PyUnicode_Decode #define PyString_FromFormat PyUnicode_FromFormat #define PyString_Check PyUnicode_Check -#endif /* If Python.h does not define WITH_THREAD, then the various GIL-related functions will not be defined. However, @@ -209,11 +203,7 @@ gdb_PySys_GetObject (const char *name) before Python 3.6. Hence, we wrap it in a function to avoid errors when compiled with -Werror. */ -#ifdef IS_PY3K # define GDB_PYSYS_SETPATH_CHAR wchar_t -#else -# define GDB_PYSYS_SETPATH_CHAR char -#endif static inline void gdb_PySys_SetPath (const GDB_PYSYS_SETPATH_CHAR *path) diff --git a/gdb/python/python.c b/gdb/python/python.c index 541227d..dc4edaa 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -317,11 +317,6 @@ eval_python_command (const char *command) if (v == NULL) return -1; -#ifndef IS_PY3K - if (Py_FlushLine ()) - PyErr_Clear (); -#endif - return 0; } @@ -1904,7 +1899,6 @@ finalize_python (void *ignore) restore_active_ext_lang (previous_active); } -#ifdef IS_PY3K static struct PyModuleDef python_GdbModuleDef = { PyModuleDef_HEAD_INIT, @@ -1927,7 +1921,6 @@ init__gdb_module (void) { return PyModule_Create (&python_GdbModuleDef); } -#endif /* Emit a gdb.GdbExitingEvent, return a negative value if there are any errors, otherwise, return 0. */ @@ -1974,7 +1967,6 @@ do_start_initialization () gdb::unique_xmalloc_ptr<char> progname (concat (ldirname (python_libdir.c_str ()).c_str (), SLASH_STRING, "bin", SLASH_STRING, "python", (char *) NULL)); -#ifdef IS_PY3K /* Python documentation indicates that the memory given to Py_SetProgramName cannot be freed. However, it seems that at least Python 3.7.4 Py_SetProgramName takes a copy of the @@ -2003,9 +1995,6 @@ do_start_initialization () /* Define _gdb as a built-in module. */ PyImport_AppendInittab ("_gdb", init__gdb_module); -#else - Py_SetProgramName (progname.release ()); -#endif #endif Py_Initialize (); @@ -2016,11 +2005,7 @@ do_start_initialization () PyEval_InitThreads (); #endif -#ifdef IS_PY3K gdb_module = PyImport_ImportModule ("_gdb"); -#else - gdb_module = Py_InitModule ("_gdb", python_GdbMethods); -#endif if (gdb_module == NULL) return false; @@ -2321,11 +2306,7 @@ do_initialize (const struct extension_language_defn *extlang) /* If sys.path is not defined yet, define it first. */ if (!(sys_path && PyList_Check (sys_path))) { -#ifdef IS_PY3K PySys_SetPath (L""); -#else - PySys_SetPath (""); -#endif sys_path = PySys_GetObject ("path"); } if (sys_path && PyList_Check (sys_path)) |