aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrooks Davis <brooks@FreeBSD.org>2023-03-22 16:23:22 +0000
committerBrooks Davis <brooks@FreeBSD.org>2023-03-22 16:23:22 +0000
commitde761318a4a0a030035657ff72ddc93bdd2e0bb0 (patch)
treeaaca63ddb04039ce70b34a03e4cbcd81acc44001
parent3d2837f3bd044d879d652e64ced79cd890e690c5 (diff)
downloadsrc-de761318a4a0a030035657ff72ddc93bdd2e0bb0.tar.gz
src-de761318a4a0a030035657ff72ddc93bdd2e0bb0.zip
riscv: Fix sig_atomic_t limit definitions
sig_atomic_t is defined as a long and thus is 64-bit on arm64. For some reason its limit was incorrectly specified as a 32-bit number. This had the unfortunate side effect of causing gnulib to override most of the definitions in stdint.h. On CheriBSD this breaks all software that uses gnulib in annoying and hard to debug ways. Technically updating the limits might be an ABI change, but these defines are largely unused (the only use in tree is in the libc++ test suite where it's use an assertion that will fail due to this bug). Further, since the underlying type remains the same, we're just increasing the range of values a paranoid program might use. Reviewed by: emaste Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D39194
-rw-r--r--sys/riscv/include/_stdint.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/riscv/include/_stdint.h b/sys/riscv/include/_stdint.h
index 32e5b6fd081e..d73a9c088b59 100644
--- a/sys/riscv/include/_stdint.h
+++ b/sys/riscv/include/_stdint.h
@@ -143,8 +143,8 @@
#define PTRDIFF_MAX INT64_MAX
/* Limits of sig_atomic_t. */
-#define SIG_ATOMIC_MIN INT32_MIN
-#define SIG_ATOMIC_MAX INT32_MAX
+#define SIG_ATOMIC_MIN INT64_MIN
+#define SIG_ATOMIC_MAX INT64_MAX
/* Limit of size_t. */
#define SIZE_MAX UINT64_MAX