nix icon indicating copy to clipboard operation
nix copied to clipboard

Switch to libc wrapper instead of raw syscall for `gettid()` and `execveat()`

Open SteveLauC opened this issue 2 years ago • 3 comments
trafficstars

gettid() was initially added in #293, at that time, we didn't have a libc wrapper so we had to involve the syscall() directly. The wrapper in glibc was added in 2.30, and the libc crate has exposed this interface since this PR, so we probably should switch to the libc wrapper and get rid of the raw syscall.

My concern, on Linux/glibc, it is available since 2.30, but the current supported glibc version is 2.17, so I am afraid we will have conpatibility issue just like this one #2146

SteveLauC avatar Oct 05 '23 02:10 SteveLauC

execveat() was added in #800, still no libc wrapper at that time, but for now, from its man page, glibc seems to have a wrapper for it since 2.34, the libc crate has not exposed it yet

Update: musl, uClibc and bionic(Android) don't have a wrapper for execveat(), I will add a binding for glibc to the libc crate

SteveLauC avatar Oct 05 '23 03:10 SteveLauC

I will add a binding for glibc to the libc crate

PR filed

SteveLauC avatar Oct 05 '23 04:10 SteveLauC

Nice research.

asomers avatar Oct 05 '23 15:10 asomers