--- 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 +#include + +// 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 -#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 +#undef pt_regs +#else #include -#endif // __ANDROID__ +#endif namespace lldb_private { namespace process_linux {