From 84597bd925b6a870e6e33e6dc08c9b19ffb6d77e Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sat, 16 Nov 2024 22:52:07 -0600 Subject: [PATCH] Add a diff note about execv* mutability changes Changed in e77f551de9 ("Change prototypes for exec* function to match headers.") --- src/fuchsia/mod.rs | 5 +++++ src/unix/aix/mod.rs | 3 +++ src/unix/bsd/freebsdlike/mod.rs | 3 +++ src/unix/bsd/netbsdlike/mod.rs | 3 +++ src/unix/haiku/mod.rs | 3 +++ src/unix/hurd/mod.rs | 2 ++ src/unix/linux_like/mod.rs | 3 +++ src/unix/mod.rs | 3 +++ src/unix/newlib/mod.rs | 3 +++ src/unix/nto/mod.rs | 2 ++ src/unix/solarish/solaris.rs | 1 + src/windows/mod.rs | 2 ++ 12 files changed, 33 insertions(+) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 9a0b8755c4659..c4c7e6544b21b 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -3809,6 +3809,8 @@ extern "C" { pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; pub fn execve( prog: *const c_char, @@ -3816,6 +3818,7 @@ extern "C" { envp: *const *const c_char, ) -> ::c_int; pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn fork() -> pid_t; pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; @@ -4155,6 +4158,8 @@ extern "C" { termp: *const termios, winp: *const ::winsize, ) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 58d606f6b45f9..d404c3e8b52a1 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -2812,11 +2812,14 @@ extern "C" { ) -> ::c_int; pub fn fattach(fildes: ::c_int, path: *const ::c_char) -> ::c_int; pub fn fdatasync(fd: ::c_int) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn fexecve( fd: ::c_int, argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int; + pub fn ffs(value: ::c_int) -> ::c_int; pub fn ffsl(value: ::c_long) -> ::c_int; pub fn ffsll(value: ::c_longlong) -> ::c_int; diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs index 57a38a538f01b..9b7b560fc7cff 100644 --- a/src/unix/bsd/freebsdlike/mod.rs +++ b/src/unix/bsd/freebsdlike/mod.rs @@ -1530,11 +1530,14 @@ extern "C" { pub fn duplocale(base: ::locale_t) -> ::locale_t; pub fn endutxent(); pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn fexecve( fd: ::c_int, argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int; + pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; pub fn getdomainname(name: *mut ::c_char, len: ::c_int) -> ::c_int; pub fn getgrent_r( diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs index 6bdaae48dcbfe..496a66c08955f 100644 --- a/src/unix/bsd/netbsdlike/mod.rs +++ b/src/unix/bsd/netbsdlike/mod.rs @@ -755,11 +755,14 @@ extern "C" { pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void; pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int; + pub fn waitid( idtype: idtype_t, id: ::id_t, diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 748196fe3ff8a..2f9a0bb45c53a 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -1842,11 +1842,14 @@ extern "C" { pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t; pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, environment: *const *const ::c_char, ) -> ::c_int; + pub fn getgrgid_r( gid: ::gid_t, grp: *mut ::group, diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 453d0392daf72..f7c86ac9a9611 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -4209,6 +4209,8 @@ extern "C" { envp: *const *mut c_char, flags: ::c_int, ) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 618980e53dd27..bd943b99940f2 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1753,6 +1753,8 @@ extern "C" { rusage: *mut ::rusage, ) -> ::pid_t; pub fn login_tty(fd: ::c_int) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, @@ -1763,6 +1765,7 @@ extern "C" { argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int; + pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; pub fn freeifaddrs(ifa: *mut ::ifaddrs); pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int; diff --git a/src/unix/mod.rs b/src/unix/mod.rs index b3cc7424cd0d4..35194ac0ebc51 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -904,6 +904,8 @@ extern "C" { pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; pub fn execve( prog: *const c_char, @@ -911,6 +913,7 @@ extern "C" { envp: *const *const c_char, ) -> ::c_int; pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; + pub fn fork() -> pid_t; pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; diff --git a/src/unix/newlib/mod.rs b/src/unix/newlib/mod.rs index 45d1b1a028fad..3b02d93fb3dd7 100644 --- a/src/unix/newlib/mod.rs +++ b/src/unix/newlib/mod.rs @@ -873,11 +873,14 @@ extern "C" { flags: ::c_int, ) -> ::c_int; pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn fexecve( fd: ::c_int, argv: *const *const ::c_char, envp: *const *const ::c_char, ) -> ::c_int; + pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; pub fn getgrgid_r( gid: ::gid_t, diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 1f87c7390cc0d..7c6eba66eea8d 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -2935,6 +2935,8 @@ extern "C" { options: ::c_int, rusage: *mut ::rusage, ) -> ::pid_t; + + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn execvpe( file: *const ::c_char, argv: *const *const ::c_char, diff --git a/src/unix/solarish/solaris.rs b/src/unix/solarish/solaris.rs index 7db0bd0fc9146..58f03ab252693 100644 --- a/src/unix/solarish/solaris.rs +++ b/src/unix/solarish/solaris.rs @@ -207,6 +207,7 @@ pub const PRIV_USER: ::c_uint = PRIV_DEBUG | PRIV_PROC_TPD_RESET; extern "C" { + // DIFF(main): changed to `*const *mut` in e77f551de9 pub fn fexecve( fd: ::c_int, argv: *const *const ::c_char, diff --git a/src/windows/mod.rs b/src/windows/mod.rs index 2270e7078c966..43075e7e0362a 100644 --- a/src/windows/mod.rs +++ b/src/windows/mod.rs @@ -456,6 +456,7 @@ extern "C" { #[link_name = "_wexeclpe"] pub fn wexeclpe(path: *const wchar_t, arg0: *const wchar_t, ...) -> intptr_t; #[link_name = "_execv"] + // DIFF(main): changed to `intptr_t` in e77f551de9 pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::intptr_t; #[link_name = "_execve"] pub fn execve( @@ -471,6 +472,7 @@ extern "C" { argv: *const *const c_char, envp: *const *const c_char, ) -> ::c_int; + #[link_name = "_wexecv"] pub fn wexecv(prog: *const wchar_t, argv: *const *const wchar_t) -> ::intptr_t; #[link_name = "_wexecve"]