diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /vendor/rustix/ci | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/rustix/ci')
-rw-r--r-- | vendor/rustix/ci/getsockopt-timeouts.patch | 80 | ||||
-rw-r--r-- | vendor/rustix/ci/s390x-stat-have-nsec.patch | 27 | ||||
-rw-r--r-- | vendor/rustix/ci/translate-errno.patch | 28 |
3 files changed, 135 insertions, 0 deletions
diff --git a/vendor/rustix/ci/getsockopt-timeouts.patch b/vendor/rustix/ci/getsockopt-timeouts.patch new file mode 100644 index 000000000..a9a989325 --- /dev/null +++ b/vendor/rustix/ci/getsockopt-timeouts.patch @@ -0,0 +1,80 @@ +From: Dan Gohman <dev@sunfishcode.online> +Subject: [PATCH] Avoid storing unexpected values for `SO_RCVTIMEO_NEW` etc. + +This issue is reported upstream [here]. + +[here]: https://gitlab.com/qemu-project/qemu/-/issues/885 + +--- + linux-user/generic/sockbits.h | 2 ++ + linux-user/mips/sockbits.h | 2 ++ + linux-user/sparc/sockbits.h | 2 ++ + linux-user/syscall.c | 6 ++++++ + 4 files changed, 12 insertions(+) + +diff --git a/linux-user/generic/sockbits.h b/linux-user/generic/sockbits.h +index b3b4a8e44c..f95747e3cc 100644 +--- a/linux-user/generic/sockbits.h ++++ b/linux-user/generic/sockbits.h +@@ -36,6 +36,8 @@ + #define TARGET_SO_SNDLOWAT 19 + #define TARGET_SO_RCVTIMEO 20 + #define TARGET_SO_SNDTIMEO 21 ++#define TARGET_SO_RCVTIMEO_NEW 66 ++#define TARGET_SO_SNDTIMEO_NEW 67 + + /* Security levels - as per NRL IPv6 - don't actually do anything */ + #define TARGET_SO_SECURITY_AUTHENTICATION 22 +diff --git a/linux-user/mips/sockbits.h b/linux-user/mips/sockbits.h +index 562cad88e2..4d411f7b61 100644 +--- a/linux-user/mips/sockbits.h ++++ b/linux-user/mips/sockbits.h +@@ -39,6 +39,8 @@ + #define TARGET_SO_RCVLOWAT 0x1004 /* receive low-water mark */ + #define TARGET_SO_SNDTIMEO 0x1005 /* send timeout */ + #define TARGET_SO_RCVTIMEO 0x1006 /* receive timeout */ ++#define TARGET_SO_RCVTIMEO_NEW 66 ++#define TARGET_SO_SNDTIMEO_NEW 67 + #define TARGET_SO_ACCEPTCONN 0x1009 + #define TARGET_SO_PROTOCOL 0x1028 /* protocol type */ + #define TARGET_SO_DOMAIN 0x1029 /* domain/socket family */ +diff --git a/linux-user/sparc/sockbits.h b/linux-user/sparc/sockbits.h +index 0a822e3e1f..8420ef9953 100644 +--- a/linux-user/sparc/sockbits.h ++++ b/linux-user/sparc/sockbits.h +@@ -26,6 +26,8 @@ + #define TARGET_SO_SNDLOWAT 0x1000 + #define TARGET_SO_RCVTIMEO 0x2000 + #define TARGET_SO_SNDTIMEO 0x4000 ++#define TARGET_SO_RCVTIMEO_NEW 68 ++#define TARGET_SO_SNDTIMEO_NEW 69 + #define TARGET_SO_ACCEPTCONN 0x8000 + + #define TARGET_SO_SNDBUF 0x1001 +diff --git a/linux-user/syscall.c b/linux-user/syscall.c +index a8eae3c4ac..8326e03a19 100644 +--- a/linux-user/syscall.c ++++ b/linux-user/syscall.c +@@ -2348,6 +2348,9 @@ set_timeout: + case TARGET_SO_SNDTIMEO: + optname = SO_SNDTIMEO; + goto set_timeout; ++ case TARGET_SO_RCVTIMEO_NEW: ++ case TARGET_SO_SNDTIMEO_NEW: ++ return -TARGET_ENOPROTOOPT; + case TARGET_SO_ATTACH_FILTER: + { + struct target_sock_fprog *tfprog; +@@ -2595,6 +2598,9 @@ get_timeout: + case TARGET_SO_SNDTIMEO: + optname = SO_SNDTIMEO; + goto get_timeout; ++ case TARGET_SO_RCVTIMEO_NEW: ++ case TARGET_SO_SNDTIMEO_NEW: ++ return -TARGET_ENOPROTOOPT; + case TARGET_SO_PEERCRED: { + struct ucred cr; + socklen_t crlen; +-- +2.32.0 + diff --git a/vendor/rustix/ci/s390x-stat-have-nsec.patch b/vendor/rustix/ci/s390x-stat-have-nsec.patch new file mode 100644 index 000000000..1a4562298 --- /dev/null +++ b/vendor/rustix/ci/s390x-stat-have-nsec.patch @@ -0,0 +1,27 @@ +From: Dan Gohman <dev@sunfishcode.online> +Subject: [PATCH] Define `TARGET_STAT_HAVE_NSEC` for s390x + +Without this, The `fstat` syscall sets `st_mtime_nsec` and the other `_nsec` +fields to 0. Libc `fstat` will sometimes use the `fstatat` or `fstat64` +syscalls instead, which aren't affected, but the libc `fstat` on ubuntu-20.04 +on Github Actions appears to be affected. + +This can be seen in the `st_mtime_nsec` assert in tests/fs/futimens.rs. + +It's not yet known why upstream qemu doesn't define this. + +--- + linux-user/generic/sockbits.h | 1 + + 1 files changed, 1 insertions(+) + +diff -ur a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h +--- a/linux-user/syscall_defs.h 2021-08-24 10:35:41.000000000 -0700 ++++ b/linux-user/syscall_defs.h 2022-04-12 13:23:25.291064887 -0700 +@@ -2040,6 +2040,7 @@ + abi_long __unused[3]; + }; + #elif defined(TARGET_S390X) ++#define TARGET_STAT_HAVE_NSEC + struct target_stat { + abi_ulong st_dev; + abi_ulong st_ino; diff --git a/vendor/rustix/ci/translate-errno.patch b/vendor/rustix/ci/translate-errno.patch new file mode 100644 index 000000000..6a4152038 --- /dev/null +++ b/vendor/rustix/ci/translate-errno.patch @@ -0,0 +1,28 @@ +From: Dan Gohman <dev@sunfishcode.online> +Subject: [PATCH] Translate errno codes from host to target for `SO_ERROR`. + +This issue is reported upstream [here]. + +[here]: https://gitlab.com/qemu-project/qemu/-/issues/872 + +--- + linux-user/syscall.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/linux-user/syscall.c b/linux-user/syscall.c +index b9b18a7eaf..a8eae3c4ac 100644 +--- a/linux-user/syscall.c ++++ b/linux-user/syscall.c +@@ -2767,6 +2767,9 @@ get_timeout: + if (optname == SO_TYPE) { + val = host_to_target_sock_type(val); + } ++ if (level == SOL_SOCKET && optname == SO_ERROR) { ++ val = host_to_target_errno(val); ++ } + if (len > lv) + len = lv; + if (len == 4) { +-- +2.32.0 + |