Today this is the only problem that I'm facing trying to cross-compile lldb for AArch64 using Linaro's toolchain. - PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS are not defined for AArch64 - These things can be defined different ways for other architectures, e.g. for x86_64 Linux, asm/ptrace-abi.h defines them as preprocessor constants while sys/ptrace.h defines them in enum along with corresponding PT_* preprocessor constants - NativeProcessLinux.cpp includes sys/ptrace.h - To avoid accidental redefinition of enums with preprocessor constants, I'm proposing this patch which first checks for PT_* preprocessor constants then checks for PTRACE_* constants then when it still can not find them, it defines preprocessor constants. - Similar approach was already used for PTRACE_GETREGSET and PTRACE_SETREGSET constants; in this case however it was easier, since enum values in sys/ptrace.h and preprocessor constants shared all exactly the same names (e.g. there's no additional PT_GETREGSET name defined).
http://reviews.llvm.org/D4366 Files: source/Plugins/Process/Linux/NativeProcessLinux.cpp Index: source/Plugins/Process/Linux/NativeProcessLinux.cpp =================================================================== --- source/Plugins/Process/Linux/NativeProcessLinux.cpp +++ source/Plugins/Process/Linux/NativeProcessLinux.cpp @@ -53,12 +53,26 @@ #define DEBUG_PTRACE_MAXBYTES 20 // Support ptrace extensions even when compiled without required kernel support +#ifndef PT_GETREGS #ifndef PTRACE_GETREGS -#define PTRACE_GETREGS 12 + #define PTRACE_GETREGS 12 #endif +#endif +#ifndef PT_SETREGS #ifndef PTRACE_SETREGS #define PTRACE_SETREGS 13 #endif +#endif +#ifndef PT_GETFPREGS +#ifndef PTRACE_GETFPREGS + #define PTRACE_GETFPREGS 14 +#endif +#endif +#ifndef PT_SETFPREGS +#ifndef PTRACE_SETFPREGS + #define PTRACE_SETFPREGS 15 +#endif +#endif #ifndef PTRACE_GETREGSET #define PTRACE_GETREGSET 0x4204 #endif
Index: source/Plugins/Process/Linux/NativeProcessLinux.cpp =================================================================== --- source/Plugins/Process/Linux/NativeProcessLinux.cpp +++ source/Plugins/Process/Linux/NativeProcessLinux.cpp @@ -53,12 +53,26 @@ #define DEBUG_PTRACE_MAXBYTES 20 // Support ptrace extensions even when compiled without required kernel support +#ifndef PT_GETREGS #ifndef PTRACE_GETREGS -#define PTRACE_GETREGS 12 + #define PTRACE_GETREGS 12 #endif +#endif +#ifndef PT_SETREGS #ifndef PTRACE_SETREGS #define PTRACE_SETREGS 13 #endif +#endif +#ifndef PT_GETFPREGS +#ifndef PTRACE_GETFPREGS + #define PTRACE_GETFPREGS 14 +#endif +#endif +#ifndef PT_SETFPREGS +#ifndef PTRACE_SETFPREGS + #define PTRACE_SETFPREGS 15 +#endif +#endif #ifndef PTRACE_GETREGSET #define PTRACE_GETREGSET 0x4204 #endif
_______________________________________________ lldb-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
