[Lldb-commits] [lldb] lldb: Linux: restore __ptrace_request typedef for bionic+musl (PR #219237)
Nick Desaulniers via lldb-commits
lldb-commits at lists.llvm.org
Thu Aug 27 12:52:48 PDT 2026
nickdesaulniers wrote:
[Bionic](https://source.corp.google.com/h/googleplex-android/platform/superproject/main/+/main:external/llvm-libc/src/sys/ptrace/ptrace.h;l=21) declares `ptrace` as:
```c++
long ptrace(int request, ...);
```
[musl](https://git.musl-libc.org/cgit/musl/tree/include/sys/ptrace.h#n142) declares `ptrace` as:
```c++
long ptrace(int, ...);
```
glibc declares `ptrace` as:
```c++
extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
```
(unable to link to their sources, their server appears to be having trouble).
The issue is in C++, does not allow implicit conversion from an integer to an enum (unlike C). Removing the static_cast then calling glibc's declaration triggers:
clang:
```
error: no matching function for call to 'ptrace'
note: candidate function not viable: no known conversion from 'int' to 'enum __ptrace_request' for 1st argument
```
gcc:
```
error: invalid conversion from 'int' to '__ptrace_request' [-fpermissive]
```
At the least, I'll keep the change as is, but add a comment and update the commit & pr descriptions.
https://github.com/llvm/llvm-project/pull/219237
More information about the lldb-commits
mailing list