diff --git a/lldb/include/lldb/Core/TTYState.h b/lldb/include/lldb/Core/TTYState.h index ad0b62f1b646..ac12fefe63ac 100644 --- a/lldb/include/lldb/Core/TTYState.h +++ b/lldb/include/lldb/Core/TTYState.h @@ -11,8 +11,9 @@ #define liblldb_TTYState_h_ #if defined(__cplusplus) +#if LLDB_CONFIG_TERMIOS_SUPPORTED #include -#include +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED #include "lldb/lldb-private.h" @@ -121,7 +122,9 @@ protected: int m_fd; ///< File descriptor of the TTY. int m_tflags; ///< Cached tflags information. int m_ttystate_err; ///< Error value from call to save tflags. +#if LLDB_CONFIG_TERMIOS_SUPPORTED struct termios m_ttystate; ///< Cached ttystate information. +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED lldb::pid_t m_process_group;///< Cached process group information. }; diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp index 305cbe2ef75f..bbc7e8b1294e 100644 --- a/lldb/source/Core/Debugger.cpp +++ b/lldb/source/Core/Debugger.cpp @@ -21,7 +21,9 @@ #include "lldb/Target/StopInfo.h" #include "lldb/Target/Thread.h" +#if LLDB_CONFIG_TERMIOS_SUPPORTED #include +#endif using namespace lldb; using namespace lldb_private; @@ -547,11 +549,12 @@ Debugger::CheckIfTopInputReaderIsDone () void Debugger::ActivateInputReader (const InputReaderSP &reader_sp) { +#if LLDB_CONFIG_TERMIOS_SUPPORTED FILE *in_fh = GetInputFileHandle(); if (in_fh) { - struct termios in_fh_termios; + struct termios in_fh_termios; int in_fd = fileno (in_fh); if (::tcgetattr(in_fd, &in_fh_termios) == 0) { @@ -578,6 +581,7 @@ Debugger::ActivateInputReader (const InputReaderSP &reader_sp) ::tcsetattr (in_fd, TCSANOW, &in_fh_termios); } } +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED } void diff --git a/lldb/source/Core/TTYState.cpp b/lldb/source/Core/TTYState.cpp index 6ba415832d4e..bb6f94fb00e7 100644 --- a/lldb/source/Core/TTYState.cpp +++ b/lldb/source/Core/TTYState.cpp @@ -10,7 +10,7 @@ #include "lldb/Core/TTYState.h" #include #include -#include +#include using namespace lldb_private; @@ -21,7 +21,9 @@ TTYState::TTYState() : m_fd(-1), m_tflags(-1), m_ttystate_err(-1), +#if LLDB_CONFIG_TERMIOS_SUPPORTED m_ttystate(), +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED m_process_group(-1) { } @@ -45,7 +47,9 @@ TTYState::Save (int fd, bool save_process_group) { m_fd = fd; m_tflags = ::fcntl (fd, F_GETFL, 0); +#if LLDB_CONFIG_TERMIOS_SUPPORTED m_ttystate_err = ::tcgetattr (fd, &m_ttystate); +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED if (save_process_group) m_process_group = ::tcgetpgrp (0); else @@ -74,8 +78,10 @@ TTYState::Restore () const if (TFlagsIsValid()) result = fcntl (m_fd, F_SETFL, m_tflags); +#if LLDB_CONFIG_TERMIOS_SUPPORTED if (TTYStateIsValid()) result = tcsetattr (m_fd, TCSANOW, &m_ttystate); +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED if (ProcessGroupIsValid()) { diff --git a/lldb/source/Interpreter/ScriptInterpreterPython.cpp b/lldb/source/Interpreter/ScriptInterpreterPython.cpp index 61bab4851cf8..9122b7edd1b4 100644 --- a/lldb/source/Interpreter/ScriptInterpreterPython.cpp +++ b/lldb/source/Interpreter/ScriptInterpreterPython.cpp @@ -201,7 +201,9 @@ ScriptInterpreterPython::ScriptInterpreterPython (CommandInterpreter &interprete m_dbg_stdout (interpreter.GetDebugger().GetOutputFileHandle()), m_new_sysout (NULL), m_dictionary_name (interpreter.GetDebugger().GetInstanceName().AsCString()), +#if LLDB_CONFIG_TERMIOS_SUPPORTED m_termios (), +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED m_termios_valid (false), m_session_is_active (false), m_pty_slave_is_open (false), @@ -569,8 +571,10 @@ ScriptInterpreterPython::InputReaderCallback else input_fd = STDIN_FILENO; +#if LLDB_CONFIG_TERMIOS_SUPPORTED script_interpreter->m_termios_valid = ::tcgetattr (input_fd, &script_interpreter->m_termios) == 0; - +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED + if (!CurrentThreadHasPythonLock()) { while (!GetPythonLock(1)) @@ -674,6 +678,7 @@ ScriptInterpreterPython::InputReaderCallback // Restore terminal settings if they were validly saved if (log) log->Printf ("ScriptInterpreterPython::InputReaderCallback, Done, closing down input reader."); +#if LLDB_CONFIG_TERMIOS_SUPPORTED if (script_interpreter->m_termios_valid) { int input_fd; @@ -685,6 +690,7 @@ ScriptInterpreterPython::InputReaderCallback ::tcsetattr (input_fd, TCSANOW, &script_interpreter->m_termios); } +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED script_interpreter->m_embedded_python_pty.CloseMasterFileDescriptor(); break; } @@ -1433,8 +1439,10 @@ ScriptInterpreterPython::Initialize () int input_fd = STDIN_FILENO; +#if LLDB_CONFIG_TERMIOS_SUPPORTED struct termios stdin_termios; bool valid_termios = ::tcgetattr (input_fd, &stdin_termios) == 0; +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED // Find the module that owns this code and use that path we get to // set the PYTHONPATH appropriately. @@ -1511,9 +1519,11 @@ ScriptInterpreterPython::Initialize () PyRun_SimpleString ("from termios import *"); Py_DECREF (pmod); } - + +#if LLDB_CONFIG_TERMIOS_SUPPORTED if (valid_termios) ::tcsetattr (input_fd, TCSANOW, &stdin_termios); +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED } void