diff options
Diffstat (limited to 'scripts/Python/modules')
| -rw-r--r-- | scripts/Python/modules/CMakeLists.txt | 11 | ||||
| -rw-r--r-- | scripts/Python/modules/readline/CMakeLists.txt | 27 | ||||
| -rw-r--r-- | scripts/Python/modules/readline/readline.cpp | 87 | 
3 files changed, 0 insertions, 125 deletions
| diff --git a/scripts/Python/modules/CMakeLists.txt b/scripts/Python/modules/CMakeLists.txt deleted file mode 100644 index f2269c342005b..0000000000000 --- a/scripts/Python/modules/CMakeLists.txt +++ /dev/null @@ -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() diff --git a/scripts/Python/modules/readline/CMakeLists.txt b/scripts/Python/modules/readline/CMakeLists.txt deleted file mode 100644 index 876ab341682bb..0000000000000 --- a/scripts/Python/modules/readline/CMakeLists.txt +++ /dev/null @@ -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}) diff --git a/scripts/Python/modules/readline/readline.cpp b/scripts/Python/modules/readline/readline.cpp deleted file mode 100644 index b84dbb819f995..0000000000000 --- a/scripts/Python/modules/readline/readline.cpp +++ /dev/null @@ -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 -} | 
