summaryrefslogtreecommitdiffstats
path: root/lldb/scripts/Python
diff options
context:
space:
mode:
authorSiva Chandra <sivachandra@google.com>2016-02-12 20:30:47 +0000
committerSiva Chandra <sivachandra@google.com>2016-02-12 20:30:47 +0000
commit29d9bea93f5efad391202e0e15f27d3bbf3bfd50 (patch)
treeacc8238058011dcf365761710146d2ac8f7f9eaf /lldb/scripts/Python
parent56d13e893749b5cc0d649fafd265ab52b1336e84 (diff)
downloadbcm5719-llvm-29d9bea93f5efad391202e0e15f27d3bbf3bfd50.tar.gz
bcm5719-llvm-29d9bea93f5efad391202e0e15f27d3bbf3bfd50.zip
Adjust for Python-3.
Summary: This does not yet give us a clean testsuite run but it does help with: 1. Actually building on linux 2. Run the testsuite with over 70% tests passing on linux. Reviewers: tfiala, labath, zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D17182 llvm-svn: 260721
Diffstat (limited to 'lldb/scripts/Python')
-rw-r--r--lldb/scripts/Python/modules/readline/readline.cpp34
1 files changed, 29 insertions, 5 deletions
diff --git a/lldb/scripts/Python/modules/readline/readline.cpp b/lldb/scripts/Python/modules/readline/readline.cpp
index d66ccf4b6b7..d4b4962cc31 100644
--- a/lldb/scripts/Python/modules/readline/readline.cpp
+++ b/lldb/scripts/Python/modules/readline/readline.cpp
@@ -20,11 +20,6 @@
// work around LLVM pr18841 to avoid seg faults in the stock Python
// readline.so linked against GNU readline.
-static struct PyMethodDef moduleMethods[] =
-{
- {nullptr, nullptr, 0, nullptr}
-};
-
#ifndef LLDB_DISABLE_LIBEDIT
PyDoc_STRVAR(
moduleDocumentation,
@@ -35,9 +30,33 @@ PyDoc_STRVAR(
"Stub module meant to avoid linking GNU readline.");
#endif
+#if PY_MAJOR_VERSION >= 3
+static struct PyModuleDef readline_module =
+{
+ PyModuleDef_HEAD_INIT, // m_base
+ "readline", // m_name
+ moduleDocumentation, // m_doc
+ -1, // m_size
+ nullptr, // m_methods
+ nullptr, // m_reload
+ nullptr, // m_traverse
+ nullptr, // m_clear
+ nullptr, // m_free
+};
+#else
+static struct PyMethodDef moduleMethods[] =
+{
+ {nullptr, nullptr, 0, nullptr}
+};
+#endif
+
#ifndef LLDB_DISABLE_LIBEDIT
static char*
+#if PY_MAJOR_VERSION >= 3
+simple_readline(FILE *stdin, FILE *stdout, const char *prompt)
+#else
simple_readline(FILE *stdin, FILE *stdout, char *prompt)
+#endif
{
rl_instream = stdin;
rl_outstream = stdout;
@@ -67,10 +86,15 @@ initreadline(void)
#ifndef LLDB_DISABLE_LIBEDIT
PyOS_ReadlineFunctionPointer = simple_readline;
#endif
+
+#if PY_MAJOR_VERSION >= 3
+ return PyModule_Create(&readline_module);
+#else
Py_InitModule4(
"readline",
moduleMethods,
moduleDocumentation,
static_cast<PyObject *>(NULL),
PYTHON_API_VERSION);
+#endif
}
OpenPOWER on IntegriCloud