libc: The signature of "execv" | "execve" | "execvp" | "fexecve" is incorrect
The type of argv is *const *const c_char but should be *const *mut c_char. With the current incorrect signatures, libc-test fails for these APIs, but this does not surface because these tests are skipped. With the fixed signatures, all tests pass.
AFAICT, this affects all unix targets.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 15 (14 by maintainers)
Commits related to this issue
- Clean libc-test for apple targets This cleans up the build.rs of `libc-test` for apple targets. I wanted to update the docker containers of some targets so that we can start testing newer currently-... — committed to gnzlbg/libc by gnzlbg 5 years ago
- Clean libc-test for apple targets This cleans up the build.rs of `libc-test` for apple targets. I wanted to update the docker containers of some targets so that we can start testing newer currently-... — committed to gnzlbg/libc by gnzlbg 5 years ago
- Auto merge of #1274 - gnzlbg:clean_libctest_apple, r=gnzlbg Clean libc-test for apple targets This cleans up the build.rs of `libc-test` for apple targets. I wanted to update the docker containers ... — committed to rust-lang/libc by bors 5 years ago
- Auto merge of #2467 - rtzoeller:dfly_fexecve, r=JohnTitor Add fexecve() to DragonFly DragonFly 6.0 added support for `fexecve(2)`. Implementing it with a mismatched signature from what C exposes, a... — committed to rust-lang/libc by bors 3 years ago
- Change prototypes for exec* function to match headers. Yes, this makes the prototypes harder to use. And less intuitive. But this makes them match headers, and thus now we can properly test them. Thi... — committed to safinaskar/libc by deleted user 4 months ago
- Change prototypes for exec* function to match headers. Yes, this makes the prototypes harder to use. And less intuitive. But this makes them match headers, and thus now we can properly test them. Thi... — committed to safinaskar/libc by deleted user 4 months ago
- Change prototypes for exec* function to match headers. Yes, this makes the prototypes harder to use. And less intuitive. But this makes them match headers, and thus now we can properly test them. Thi... — committed to safinaskar/libc by deleted user 4 months ago
- Change prototypes for exec* function to match headers. Yes, this makes the prototypes harder to use. And less intuitive. But this makes them match headers, and thus now we can properly test them. Thi... — committed to safinaskar/libc by deleted user 4 months ago
- Change prototypes for exec* function to match headers. Yes, this makes the prototypes harder to use. And less intuitive. But this makes them match headers, and thus now we can properly test them. Thi... — committed to Andy-Python-Programmer/libc by deleted user 4 months ago
I suppose it wouldn’t hurt if libc were breaking many more things at the same time. But it would have to be a major version bump.
I tend to think that you should stick with the current wrong, but really right, rust definition. That will certainly cause less pain for Rust users, at least.