diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3ab7c200..99a0ddd6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -157,6 +157,12 @@ set (MACHO_SRCS ) set (SOLIB_generated ) + +# Avoid error: invalid conversion from 'int' to '__ptrace_request' on PowerPC +if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_TARGET_ARCHITECTURES MATCHES "ppc64") + add_compile_options(-fpermissive) +endif() + # Linux-specific sources if (CMAKE_SYSTEM_NAME STREQUAL "Linux") find_package (LibElf) diff --git a/src/engines/ptrace_linux.cc b/src/engines/ptrace_linux.cc index a73be00f..0f63fdff 100644 --- a/src/engines/ptrace_linux.cc +++ b/src/engines/ptrace_linux.cc @@ -329,7 +329,7 @@ static long getRegs(pid_t pid, void *addr, void *regs, size_t len) return ptrace(PTRACE_GETREGSET, pid, (void *)NT_PRSTATUS, &iov); #else (void) len; - return ptrace((__ptrace_request ) PTRACE_GETREGS, pid, NULL, regs); + return ptrace(PTRACE_GETREGS, pid, NULL, regs); #endif } @@ -361,12 +361,12 @@ static int kill_lwp(unsigned long lwpid, int signo) unsigned long ptrace_sys::peekWord(pid_t pid, unsigned long aligned_addr) { - return ptrace((__ptrace_request ) PTRACE_PEEKTEXT, pid, aligned_addr, 0); + return ptrace(PTRACE_PEEKTEXT, pid, aligned_addr, 0); } void ptrace_sys::pokeWord(pid_t pid, unsigned long aligned_addr, unsigned long value) { - ptrace((__ptrace_request ) PTRACE_POKETEXT, pid, aligned_addr, value); + ptrace(PTRACE_POKETEXT, pid, aligned_addr, value); } static long setRegs(pid_t pid, void *addr, void *regs, size_t len) @@ -377,7 +377,7 @@ static long setRegs(pid_t pid, void *addr, void *regs, size_t len) return ptrace(PTRACE_SETREGSET, pid, (void *)NT_PRSTATUS, &iov); #else (void) len; - return ptrace((__ptrace_request ) PTRACE_SETREGS, pid, NULL, regs); + return ptrace(PTRACE_SETREGS, pid, NULL, regs); #endif }