[Lldb-commits] [PATCH] lldb - problem with some PTRACE_* constants in NativeProcessLinux.cpp file

Paul Osmialowski pawelo at king.net.pl
Wed Jul 2 13:46:18 PDT 2014


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4366.11033.patch
Type: text/x-patch
Size: 840 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20140702/81cd6534/attachment.bin>


More information about the lldb-commits mailing list