Update prebuilt Clang to r365631c1 from Android.

The version we had was segfaulting.

Bug: 132420445
Change-Id: Icb45a6fe0b4e2166f7895e669df1157cec9fb4e0
diff --git a/linux-x64/clang/include/lldb/Host/windows/AutoHandle.h b/linux-x64/clang/include/lldb/Host/windows/AutoHandle.h
new file mode 100644
index 0000000..5c0de89
--- /dev/null
+++ b/linux-x64/clang/include/lldb/Host/windows/AutoHandle.h
@@ -0,0 +1,36 @@
+//===-- AutoHandle.h --------------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_lldb_Host_windows_AutoHandle_h_
+#define LLDB_lldb_Host_windows_AutoHandle_h_
+
+#include "lldb/Host/windows/windows.h"
+
+namespace lldb_private {
+
+class AutoHandle {
+public:
+  AutoHandle(HANDLE handle, HANDLE invalid_value = INVALID_HANDLE_VALUE)
+      : m_handle(handle), m_invalid_value(invalid_value) {}
+
+  ~AutoHandle() {
+    if (m_handle != m_invalid_value)
+      ::CloseHandle(m_handle);
+  }
+
+  bool IsValid() const { return m_handle != m_invalid_value; }
+
+  HANDLE get() const { return m_handle; }
+
+private:
+  HANDLE m_handle;
+  HANDLE m_invalid_value;
+};
+}
+
+#endif
diff --git a/linux-x64/clang/include/lldb/Host/windows/ConnectionGenericFileWindows.h b/linux-x64/clang/include/lldb/Host/windows/ConnectionGenericFileWindows.h
new file mode 100644
index 0000000..8856708
--- /dev/null
+++ b/linux-x64/clang/include/lldb/Host/windows/ConnectionGenericFileWindows.h
@@ -0,0 +1,63 @@
+//===-- ConnectionGenericFileWindows.h --------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef liblldb_Host_windows_ConnectionGenericFileWindows_h_
+#define liblldb_Host_windows_ConnectionGenericFileWindows_h_
+
+#include "lldb/Host/windows/windows.h"
+#include "lldb/Utility/Connection.h"
+#include "lldb/lldb-types.h"
+
+namespace lldb_private {
+
+class Status;
+
+class ConnectionGenericFile : public lldb_private::Connection {
+public:
+  ConnectionGenericFile();
+
+  ConnectionGenericFile(lldb::file_t file, bool owns_file);
+
+  ~ConnectionGenericFile() override;
+
+  bool IsConnected() const override;
+
+  lldb::ConnectionStatus Connect(llvm::StringRef s, Status *error_ptr) override;
+
+  lldb::ConnectionStatus Disconnect(Status *error_ptr) override;
+
+  size_t Read(void *dst, size_t dst_len, const Timeout<std::micro> &timeout,
+              lldb::ConnectionStatus &status, Status *error_ptr) override;
+
+  size_t Write(const void *src, size_t src_len, lldb::ConnectionStatus &status,
+               Status *error_ptr) override;
+
+  std::string GetURI() override;
+
+  bool InterruptRead() override;
+
+protected:
+  OVERLAPPED m_overlapped;
+  HANDLE m_file;
+  HANDLE m_event_handles[2];
+  bool m_owns_file;
+  LARGE_INTEGER m_file_position;
+
+  enum { kBytesAvailableEvent, kInterruptEvent };
+
+private:
+  void InitializeEventHandles();
+  void IncrementFilePointer(DWORD amount);
+
+  std::string m_uri;
+
+  DISALLOW_COPY_AND_ASSIGN(ConnectionGenericFile);
+};
+}
+
+#endif
diff --git a/linux-x64/clang/include/lldb/Host/windows/HostInfoWindows.h b/linux-x64/clang/include/lldb/Host/windows/HostInfoWindows.h
new file mode 100644
index 0000000..209d9da
--- /dev/null
+++ b/linux-x64/clang/include/lldb/Host/windows/HostInfoWindows.h
@@ -0,0 +1,48 @@
+//===-- HostInfoWindows.h ---------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef lldb_Host_windows_HostInfoWindows_h_
+#define lldb_Host_windows_HostInfoWindows_h_
+
+#include "lldb/Host/HostInfoBase.h"
+#include "lldb/Utility/FileSpec.h"
+#include "llvm/Support/VersionTuple.h"
+
+namespace lldb_private {
+class UserIDResolver;
+
+class HostInfoWindows : public HostInfoBase {
+  friend class HostInfoBase;
+
+private:
+  // Static class, unconstructable.
+  HostInfoWindows();
+  ~HostInfoWindows();
+
+public:
+  static void Initialize();
+  static void Terminate();
+
+  static size_t GetPageSize();
+  static UserIDResolver &GetUserIDResolver();
+
+  static llvm::VersionTuple GetOSVersion();
+  static bool GetOSBuildString(std::string &s);
+  static bool GetOSKernelDescription(std::string &s);
+  static bool GetHostname(std::string &s);
+  static FileSpec GetProgramFileSpec();
+  static FileSpec GetDefaultShell();
+
+  static bool GetEnvironmentVar(const std::string &var_name, std::string &var);
+
+private:
+  static FileSpec m_program_filespec;
+};
+}
+
+#endif
diff --git a/linux-x64/clang/include/lldb/Host/windows/HostProcessWindows.h b/linux-x64/clang/include/lldb/Host/windows/HostProcessWindows.h
new file mode 100644
index 0000000..925d565
--- /dev/null
+++ b/linux-x64/clang/include/lldb/Host/windows/HostProcessWindows.h
@@ -0,0 +1,46 @@
+//===-- HostProcessWindows.h ------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef lldb_Host_HostProcessWindows_h_
+#define lldb_Host_HostProcessWindows_h_
+
+#include "lldb/Host/HostNativeProcessBase.h"
+#include "lldb/lldb-types.h"
+
+namespace lldb_private {
+
+class FileSpec;
+
+class HostProcessWindows : public HostNativeProcessBase {
+public:
+  HostProcessWindows();
+  explicit HostProcessWindows(lldb::process_t process);
+  ~HostProcessWindows();
+
+  void SetOwnsHandle(bool owns);
+
+  Status Terminate() override;
+  Status GetMainModule(FileSpec &file_spec) const override;
+
+  lldb::pid_t GetProcessId() const override;
+  bool IsRunning() const override;
+
+  virtual llvm::Expected<HostThread>
+  StartMonitoring(const Host::MonitorChildProcessCallback &callback,
+                  bool monitor_signals) override;
+
+private:
+  static lldb::thread_result_t MonitorThread(void *thread_arg);
+
+  void Close();
+
+  bool m_owns_handle;
+};
+}
+
+#endif
diff --git a/linux-x64/clang/include/lldb/Host/windows/HostThreadWindows.h b/linux-x64/clang/include/lldb/Host/windows/HostThreadWindows.h
new file mode 100644
index 0000000..be3f7fe
--- /dev/null
+++ b/linux-x64/clang/include/lldb/Host/windows/HostThreadWindows.h
@@ -0,0 +1,40 @@
+//===-- HostThreadWindows.h -------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef lldb_Host_windows_HostThreadWindows_h_
+#define lldb_Host_windows_HostThreadWindows_h_
+
+#include "lldb/Host/HostNativeThreadBase.h"
+
+#include "llvm/ADT/SmallString.h"
+
+namespace lldb_private {
+
+class HostThreadWindows : public HostNativeThreadBase {
+  DISALLOW_COPY_AND_ASSIGN(HostThreadWindows);
+
+public:
+  HostThreadWindows();
+  HostThreadWindows(lldb::thread_t thread);
+  virtual ~HostThreadWindows();
+
+  void SetOwnsHandle(bool owns);
+
+  virtual Status Join(lldb::thread_result_t *result);
+  virtual Status Cancel();
+  virtual void Reset();
+  virtual bool EqualsThread(lldb::thread_t thread) const;
+
+  lldb::tid_t GetThreadId() const;
+
+private:
+  bool m_owns_handle;
+};
+}
+
+#endif
diff --git a/linux-x64/clang/include/lldb/Host/windows/LockFileWindows.h b/linux-x64/clang/include/lldb/Host/windows/LockFileWindows.h
new file mode 100644
index 0000000..0312d14
--- /dev/null
+++ b/linux-x64/clang/include/lldb/Host/windows/LockFileWindows.h
@@ -0,0 +1,41 @@
+//===-- LockFileWindows.h ---------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef liblldb_Host_posix_LockFileWindows_h_
+#define liblldb_Host_posix_LockFileWindows_h_
+
+#include "lldb/Host/LockFileBase.h"
+#include "lldb/Host/windows/windows.h"
+
+namespace lldb_private {
+
+class LockFileWindows : public LockFileBase {
+public:
+  explicit LockFileWindows(int fd);
+  ~LockFileWindows();
+
+protected:
+  Status DoWriteLock(const uint64_t start, const uint64_t len) override;
+
+  Status DoTryWriteLock(const uint64_t start, const uint64_t len) override;
+
+  Status DoReadLock(const uint64_t start, const uint64_t len) override;
+
+  Status DoTryReadLock(const uint64_t start, const uint64_t len) override;
+
+  Status DoUnlock() override;
+
+  bool IsValidFile() const override;
+
+private:
+  HANDLE m_file;
+};
+
+} // namespace lldb_private
+
+#endif // liblldb_Host_posix_LockFileWindows_h_
diff --git a/linux-x64/clang/include/lldb/Host/windows/PipeWindows.h b/linux-x64/clang/include/lldb/Host/windows/PipeWindows.h
new file mode 100644
index 0000000..4b5be28
--- /dev/null
+++ b/linux-x64/clang/include/lldb/Host/windows/PipeWindows.h
@@ -0,0 +1,89 @@
+//===-- PipeWindows.h -------------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef liblldb_Host_windows_PipeWindows_h_
+#define liblldb_Host_windows_PipeWindows_h_
+
+#include "lldb/Host/PipeBase.h"
+#include "lldb/Host/windows/windows.h"
+
+namespace lldb_private {
+
+/// \class Pipe PipeWindows.h "lldb/Host/windows/PipeWindows.h"
+/// A windows-based implementation of Pipe, a class that abtracts
+///        unix style pipes.
+///
+/// A class that abstracts the LLDB core from host pipe functionality.
+class PipeWindows : public PipeBase {
+public:
+  static const int kInvalidDescriptor = -1;
+
+public:
+  PipeWindows();
+  PipeWindows(lldb::pipe_t read, lldb::pipe_t write);
+  ~PipeWindows() override;
+
+  // Create an unnamed pipe.
+  Status CreateNew(bool child_process_inherit) override;
+
+  // Create a named pipe.
+  Status CreateNewNamed(bool child_process_inherit);
+  Status CreateNew(llvm::StringRef name, bool child_process_inherit) override;
+  Status CreateWithUniqueName(llvm::StringRef prefix,
+                              bool child_process_inherit,
+                              llvm::SmallVectorImpl<char> &name) override;
+  Status OpenAsReader(llvm::StringRef name,
+                      bool child_process_inherit) override;
+  Status
+  OpenAsWriterWithTimeout(llvm::StringRef name, bool child_process_inherit,
+                          const std::chrono::microseconds &timeout) override;
+
+  bool CanRead() const override;
+  bool CanWrite() const override;
+
+  lldb::pipe_t GetReadPipe() const override { return lldb::pipe_t(m_read); }
+  lldb::pipe_t GetWritePipe() const override { return lldb::pipe_t(m_write); }
+
+  int GetReadFileDescriptor() const override;
+  int GetWriteFileDescriptor() const override;
+  int ReleaseReadFileDescriptor() override;
+  int ReleaseWriteFileDescriptor() override;
+  void CloseReadFileDescriptor() override;
+  void CloseWriteFileDescriptor() override;
+
+  void Close() override;
+
+  Status Delete(llvm::StringRef name) override;
+
+  Status Write(const void *buf, size_t size, size_t &bytes_written) override;
+  Status ReadWithTimeout(void *buf, size_t size,
+                         const std::chrono::microseconds &timeout,
+                         size_t &bytes_read) override;
+
+  // PipeWindows specific methods.  These allow access to the underlying OS
+  // handle.
+  HANDLE GetReadNativeHandle();
+  HANDLE GetWriteNativeHandle();
+
+private:
+  Status OpenNamedPipe(llvm::StringRef name, bool child_process_inherit,
+                       bool is_read);
+
+  HANDLE m_read;
+  HANDLE m_write;
+
+  int m_read_fd;
+  int m_write_fd;
+
+  OVERLAPPED m_read_overlapped;
+  OVERLAPPED m_write_overlapped;
+};
+
+} // namespace lldb_private
+
+#endif // liblldb_Host_posix_PipePosix_h_
diff --git a/linux-x64/clang/include/lldb/Host/windows/PosixApi.h b/linux-x64/clang/include/lldb/Host/windows/PosixApi.h
new file mode 100644
index 0000000..6a6ed3e
--- /dev/null
+++ b/linux-x64/clang/include/lldb/Host/windows/PosixApi.h
@@ -0,0 +1,117 @@
+//===-- windows/PosixApi.h --------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef liblldb_Host_windows_PosixApi_h
+#define liblldb_Host_windows_PosixApi_h
+
+#include "lldb/Host/Config.h"
+#include "llvm/Support/Compiler.h"
+#if !defined(_WIN32)
+#error "windows/PosixApi.h being #included on non Windows system!"
+#endif
+
+// va_start, va_end, etc macros.
+#include <stdarg.h>
+
+// time_t, timespec, etc.
+#include <time.h>
+
+#ifndef PATH_MAX
+#define PATH_MAX 32768
+#endif
+
+#define O_NOCTTY 0
+#define O_NONBLOCK 0
+#define SIGTRAP 5
+#define SIGKILL 9
+#define SIGSTOP 20
+
+#if defined(_MSC_VER)
+#define S_IRUSR S_IREAD  /* read, user */
+#define S_IWUSR S_IWRITE /* write, user */
+#define S_IXUSR 0        /* execute, user */
+#endif
+#define S_IRGRP 0 /* read, group */
+#define S_IWGRP 0 /* write, group */
+#define S_IXGRP 0 /* execute, group */
+#define S_IROTH 0 /* read, others */
+#define S_IWOTH 0 /* write, others */
+#define S_IXOTH 0 /* execute, others */
+#define S_IRWXU 0
+#define S_IRWXG 0
+#define S_IRWXO 0
+
+#if HAVE_SYS_TYPES_H
+// pyconfig.h typedefs this.  We require python headers to be included before
+// any LLDB headers, but there's no way to prevent python's pid_t definition
+// from leaking, so this is the best option.
+#ifndef NO_PID_T
+#include <sys/types.h>
+#endif
+#endif // HAVE_SYS_TYPES_H
+
+#ifdef _MSC_VER
+
+// PRIxxx format macros for printf()
+#include <inttypes.h>
+
+// open(), close(), creat(), etc.
+#include <io.h>
+
+typedef unsigned short mode_t;
+
+// pyconfig.h typedefs this.  We require python headers to be included before
+// any LLDB headers, but there's no way to prevent python's pid_t definition
+// from leaking, so this is the best option.
+#ifndef NO_PID_T
+typedef uint32_t pid_t;
+#endif
+
+#define STDIN_FILENO 0
+#define STDOUT_FILENO 1
+#define STDERR_FILENO 2
+
+#define S_IFDIR _S_IFDIR
+
+#ifndef S_ISDIR
+#define S_ISDIR(mode) (((mode)&S_IFMT) == S_IFDIR)
+#endif
+
+#endif // _MSC_VER
+
+// Various useful posix functions that are not present in Windows.  We provide
+// custom implementations.
+int vasprintf(char **ret, const char *fmt, va_list ap);
+char *strcasestr(const char *s, const char *find);
+char *realpath(const char *name, char *resolved);
+
+#ifdef _MSC_VER
+
+char *basename(char *path);
+char *dirname(char *path);
+
+int strcasecmp(const char *s1, const char *s2);
+int strncasecmp(const char *s1, const char *s2, size_t n);
+
+#endif // _MSC_VER
+
+// empty functions
+inline int posix_openpt(int flag) { LLVM_BUILTIN_UNREACHABLE; }
+
+inline int strerror_r(int errnum, char *buf, size_t buflen) {
+  LLVM_BUILTIN_UNREACHABLE;
+}
+
+inline int unlockpt(int fd) { LLVM_BUILTIN_UNREACHABLE; }
+inline int grantpt(int fd) { LLVM_BUILTIN_UNREACHABLE; }
+inline char *ptsname(int fd) { LLVM_BUILTIN_UNREACHABLE; }
+
+inline pid_t fork(void) { LLVM_BUILTIN_UNREACHABLE; }
+inline pid_t setsid(void) { LLVM_BUILTIN_UNREACHABLE; }
+
+#endif
diff --git a/linux-x64/clang/include/lldb/Host/windows/ProcessLauncherWindows.h b/linux-x64/clang/include/lldb/Host/windows/ProcessLauncherWindows.h
new file mode 100644
index 0000000..e765f1e
--- /dev/null
+++ b/linux-x64/clang/include/lldb/Host/windows/ProcessLauncherWindows.h
@@ -0,0 +1,29 @@
+//===-- ProcessLauncherWindows.h --------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef lldb_Host_windows_ProcessLauncherWindows_h_
+#define lldb_Host_windows_ProcessLauncherWindows_h_
+
+#include "lldb/Host/ProcessLauncher.h"
+#include "lldb/Host/windows/windows.h"
+
+namespace lldb_private {
+
+class ProcessLaunchInfo;
+
+class ProcessLauncherWindows : public ProcessLauncher {
+public:
+  virtual HostProcess LaunchProcess(const ProcessLaunchInfo &launch_info,
+                                    Status &error);
+
+protected:
+  HANDLE GetStdioHandle(const ProcessLaunchInfo &launch_info, int fd);
+};
+}
+
+#endif
diff --git a/linux-x64/clang/include/lldb/Host/windows/editlinewin.h b/linux-x64/clang/include/lldb/Host/windows/editlinewin.h
new file mode 100644
index 0000000..7575f67
--- /dev/null
+++ b/linux-x64/clang/include/lldb/Host/windows/editlinewin.h
@@ -0,0 +1,115 @@
+//===-- editlinewin.h -------------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#pragma once
+
+#include <stdio.h>
+
+// EditLine editor function return codes.
+// For user-defined function interface
+#define CC_NORM 0
+#define CC_NEWLINE 1
+#define CC_EOF 2
+#define CC_ARGHACK 3
+#define CC_REFRESH 4
+#define CC_CURSOR 5
+#define CC_ERROR 6
+#define CC_FATAL 7
+#define CC_REDISPLAY 8
+#define CC_REFRESH_BEEP 9
+
+// el_set/el_get parameters
+#define EL_PROMPT 0      // , el_pfunc_t
+#define EL_TERMINAL 1    // , const char *
+#define EL_EDITOR 2      // , const char *
+#define EL_SIGNAL 3      // , int);
+#define EL_BIND 4        // , const char *, ..., NULL
+#define EL_TELLTC 5      // , const char *, ..., NULL
+#define EL_SETTC 6       // , const char *, ..., NULL
+#define EL_ECHOTC 7      // , const char *, ..., NULL
+#define EL_SETTY 8       // , const char *, ..., NULL
+#define EL_ADDFN 9       // , const char *, const char *, el_func_t
+#define EL_HIST 10       // , hist_fun_t, const char *
+#define EL_EDITMODE 11   // , int
+#define EL_RPROMPT 12    // , el_pfunc_t
+#define EL_GETCFN 13     // , el_rfunc_t
+#define EL_CLIENTDATA 14 // , void *
+#define EL_UNBUFFERED 15 // , int
+#define EL_PREP_TERM 16  // , int
+#define EL_GETTC 17      // , const char *, ..., NULL
+#define EL_GETFP 18      // , int, FILE **
+#define EL_SETFP 19      // , int, FILE *
+#define EL_REFRESH 20    // , void
+#define EL_PROMPT_ESC 21 // , prompt_func, Char);              set/get
+
+#define EL_BUILTIN_GETCFN (NULL)
+
+// history defines
+#define H_FUNC 0        // , UTSL
+#define H_SETSIZE 1     // , const int
+#define H_GETSIZE 2     // , void
+#define H_FIRST 3       // , void
+#define H_LAST 4        // , void
+#define H_PREV 5        // , void
+#define H_NEXT 6        // , void
+#define H_CURR 8        // , const int
+#define H_SET 7         // , int
+#define H_ADD 9         // , const char *
+#define H_ENTER 10      // , const char *
+#define H_APPEND 11     // , const char *
+#define H_END 12        // , void
+#define H_NEXT_STR 13   // , const char *
+#define H_PREV_STR 14   // , const char *
+#define H_NEXT_EVENT 15 // , const int
+#define H_PREV_EVENT 16 // , const int
+#define H_LOAD 17       // , const char *
+#define H_SAVE 18       // , const char *
+#define H_CLEAR 19      // , void
+#define H_SETUNIQUE 20  // , int
+#define H_GETUNIQUE 21  // , void
+#define H_DEL 22        // , int
+
+struct EditLine {};
+
+struct LineInfo {
+  const char *buffer;
+  const char *cursor;
+  const char *lastchar;
+};
+
+struct History {};
+
+struct HistEvent {
+  int num;
+  const char *str;
+};
+
+extern "C" {
+// edit line API
+EditLine *el_init(const char *, FILE *, FILE *, FILE *);
+const char *el_gets(EditLine *, int *);
+int el_set(EditLine *, int, ...);
+
+void el_end(EditLine *);
+void el_reset(EditLine *);
+int el_getc(EditLine *, char *);
+void el_push(EditLine *, const char *);
+void el_beep(EditLine *);
+int el_parse(EditLine *, int, const char **);
+int el_get(EditLine *, int, ...);
+int el_source(EditLine *, const char *);
+void el_resize(EditLine *);
+const LineInfo *el_line(EditLine *);
+int el_insertstr(EditLine *, const char *);
+void el_deletestr(EditLine *, int);
+
+// history API
+History *history_init(void);
+void history_end(History *);
+int history(History *, HistEvent *, int, ...);
+};
diff --git a/linux-x64/clang/include/lldb/Host/windows/windows.h b/linux-x64/clang/include/lldb/Host/windows/windows.h
new file mode 100644
index 0000000..11594c6
--- /dev/null
+++ b/linux-x64/clang/include/lldb/Host/windows/windows.h
@@ -0,0 +1,31 @@
+//===-- windows.h -----------------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_lldb_windows_h_
+#define LLDB_lldb_windows_h_
+
+#define NTDDI_VERSION NTDDI_VISTA
+#undef _WIN32_WINNT // undef a previous definition to avoid warning
+#define _WIN32_WINNT _WIN32_WINNT_VISTA
+#define WIN32_LEAN_AND_MEAN
+#define NOGDI
+#undef NOMINMAX // undef a previous definition to avoid warning
+#define NOMINMAX
+#include <windows.h>
+#undef GetUserName
+#undef LoadImage
+#undef CreateProcess
+#undef Yield
+#undef far
+#undef near
+#undef FAR
+#undef NEAR
+#define FAR
+#define NEAR
+
+#endif // LLDB_lldb_windows_h_