This revision was automatically updated to reflect the committed changes.
Closed by commit rL357277: [Python] Remove readline module (authored by 
JDevlieghere, committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Changed prior to commit:
  https://reviews.llvm.org/D59972?vs=192747&id=192853#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59972/new/

https://reviews.llvm.org/D59972

Files:
  lldb/trunk/scripts/CMakeLists.txt
  lldb/trunk/scripts/Python/modules/CMakeLists.txt
  lldb/trunk/scripts/Python/modules/readline/CMakeLists.txt
  lldb/trunk/scripts/Python/modules/readline/readline.cpp

Index: lldb/trunk/scripts/CMakeLists.txt
===================================================================
--- lldb/trunk/scripts/CMakeLists.txt
+++ lldb/trunk/scripts/CMakeLists.txt
@@ -52,6 +52,3 @@
   # Install the LLDB python module
   install(DIRECTORY ${SWIG_PYTHON_DIR} DESTINATION ${SWIG_INSTALL_DIR})
 endif()
-
-# build Python modules
-add_subdirectory(Python/modules)
Index: lldb/trunk/scripts/Python/modules/readline/readline.cpp
===================================================================
--- lldb/trunk/scripts/Python/modules/readline/readline.cpp
+++ lldb/trunk/scripts/Python/modules/readline/readline.cpp
@@ -1,87 +0,0 @@
-// NOTE: Since Python may define some pre-processor definitions which affect the
-// standard headers on some systems, you must include Python.h before any
-// standard headers are included.
-#include "Python.h"
-
-#include <stdio.h>
-
-#ifndef LLDB_DISABLE_LIBEDIT
-#include <editline/readline.h>
-#endif
-
-// Simple implementation of the Python readline module using libedit.
-// In the event that libedit is excluded from the build, this turns
-// back into a null implementation that blocks the module from pulling
-// in the GNU readline shared lib, which causes linkage confusion when
-// both readline and libedit's readline compatibility symbols collide.
-//
-// Currently it only installs a PyOS_ReadlineFunctionPointer, without
-// implementing any of the readline module methods. This is meant to
-// work around LLVM pr18841 to avoid seg faults in the stock Python
-// readline.so linked against GNU readline.
-
-#ifndef LLDB_DISABLE_LIBEDIT
-PyDoc_STRVAR(moduleDocumentation,
-             "Simple readline module implementation based on libedit.");
-#else
-PyDoc_STRVAR(moduleDocumentation,
-             "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;
-  char *line = readline(prompt);
-  if (!line) {
-    char *ret = (char *)PyMem_Malloc(1);
-    if (ret != NULL)
-      *ret = '\0';
-    return ret;
-  }
-  if (*line)
-    add_history(line);
-  int n = strlen(line);
-  char *ret = (char *)PyMem_Malloc(n + 2);
-  strncpy(ret, line, n);
-  free(line);
-  ret[n] = '\n';
-  ret[n + 1] = '\0';
-  return ret;
-}
-#endif
-
-PyMODINIT_FUNC 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
-}
Index: lldb/trunk/scripts/Python/modules/readline/CMakeLists.txt
===================================================================
--- lldb/trunk/scripts/Python/modules/readline/CMakeLists.txt
+++ lldb/trunk/scripts/Python/modules/readline/CMakeLists.txt
@@ -1,27 +0,0 @@
-# FIXME: if a non-standard version of python is requested, the cmake macro
-# below will need Python_ADDITIONAL_VERSIONS set in order to find it.
-include(FindPythonInterp)
-SET(PYTHON_DIRECTORY python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
-
-# Build the readline python module
-include_directories(${PYTHON_INCLUDE_DIR})
-add_library(readline SHARED readline.cpp)
-target_link_libraries(readline ${PYTHON_LIBRARY})
-
-if (NOT LLDB_DISABLE_LIBEDIT)
-  target_include_directories(readline
-                             PRIVATE
-                               ${libedit_INCLUDE_DIRS})
-  target_link_libraries(readline ${libedit_LIBRARIES})
-endif()
-
-# FIXME: the LIBRARY_OUTPUT_PATH seems to be ignored - this is not a
-# functional issue for the build dir, though, since the shared lib dir
-# for the build is in the python shared library load path, and thus
-# python finds it when loading the python readline module.
-set_target_properties(readline PROPERTIES
-                               PREFIX ""
-                               LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/${PYTHON_DIRECTORY})
-
-# Install the readline module.
-install(TARGETS readline LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}/${PYTHON_DIRECTORY})
Index: lldb/trunk/scripts/Python/modules/CMakeLists.txt
===================================================================
--- lldb/trunk/scripts/Python/modules/CMakeLists.txt
+++ lldb/trunk/scripts/Python/modules/CMakeLists.txt
@@ -1,11 +0,0 @@
-# Disable some warnings triggered by Python's headers.
-check_cxx_compiler_flag("-Wno-macro-redefined"
-                        CXX_SUPPORTS_NO_MACRO_REDEFINED)
-if (CXX_SUPPORTS_NO_MACRO_REDEFINED)
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-macro-redefined")
-endif ()
-
-# build the Python readline suppression module only on Linux
-if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "GNU" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "kFreeBSD")
-   add_subdirectory(readline)
-endif()
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to