b4ee532f36
as detailed within, adding `asm/ptrace.h` leads to `asm/ptrace-abi.h` being included which defines preprocessor symbols that clash with identifiers used in the LLVM headers (`FS` and `CS` only defined on i686)
46 lines
1.2 KiB
Diff
46 lines
1.2 KiB
Diff
--- a/source/Plugins/Process/Linux/Procfs.h
|
|
+++ b/source/Plugins/Process/Linux/Procfs.h
|
|
@@ -10,6 +10,13 @@
|
|
// sys/procfs.h on Android/Linux for all supported architectures.
|
|
|
|
#include <sys/ptrace.h>
|
|
+#include <asm/ptrace.h>
|
|
+
|
|
+// on i686 preprocessor symbols with these register names are defined as
|
|
+// numeric constants; these symbols clash with identifier names used in
|
|
+// `llvm/Support/VirtualFileSystem.h` and `llvm/ADT/SmallVector.h`
|
|
+#undef FS
|
|
+#undef CS
|
|
|
|
#include "lldb/lldb-types.h"
|
|
|
|
@@ -17,23 +24,13 @@
|
|
|
|
#include <vector>
|
|
|
|
-#ifdef __ANDROID__
|
|
-#if defined(__arm64__) || defined(__aarch64__)
|
|
-typedef unsigned long elf_greg_t;
|
|
-typedef elf_greg_t
|
|
- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
|
|
-typedef struct user_fpsimd_state elf_fpregset_t;
|
|
-#ifndef NT_FPREGSET
|
|
-#define NT_FPREGSET NT_PRFPREG
|
|
-#endif // NT_FPREGSET
|
|
-#elif defined(__mips__)
|
|
-#ifndef NT_FPREGSET
|
|
-#define NT_FPREGSET NT_PRFPREG
|
|
-#endif // NT_FPREGSET
|
|
-#endif
|
|
-#else // __ANDROID__
|
|
+#if !defined(__GLIBC__) && defined(__powerpc__)
|
|
+#define pt_regs musl_pt_regs
|
|
+#include <sys/procfs.h>
|
|
+#undef pt_regs
|
|
+#else
|
|
#include <sys/procfs.h>
|
|
-#endif // __ANDROID__
|
|
+#endif
|
|
|
|
namespace lldb_private {
|
|
namespace process_linux {
|