Module Name: src
Committed By: riastradh
Date: Sat May 25 13:44:48 UTC 2024
Modified Files:
src/sys/sys: ucontext.h
Log Message:
ucontext.h: Expose __UCONTEXT_SIZE to userland.
But don't expose __CTASSERT(__UCONTEXT_SIZE == sizeof(ucontext_t)) to
userland.
- __UCONTEXT_SIZE will be needed soon by libc and signal trampolines
in order to version ucontext so we can safely expand it with
architecture extensions.
- __CTASSERT is not safe to use in header files in arbitrary
compilation environments (although in the NetBSD kernel build it is
safe). Exposing the __CTASSERT in a header file used by userland
appears to have the side effect of breaking the Firefox build in
rustc, though the mechanism isn't entirely clear.
Firefox/rustc discussion here:
https://mail-index.netbsd.org/pkgsrc-users/2024/05/18/msg039578.html
Let's see if this makes a difference -- if it works, great; if not,
maybe it will help us to narrow down what's happening with rustc and
Firefox.
To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/sys/sys/ucontext.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/sys/ucontext.h
diff -u src/sys/sys/ucontext.h:1.23 src/sys/sys/ucontext.h:1.24
--- src/sys/sys/ucontext.h:1.23 Fri May 24 13:50:30 2024
+++ src/sys/sys/ucontext.h Sat May 25 13:44:48 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: ucontext.h,v 1.23 2024/05/24 13:50:30 ryoon Exp $ */
+/* $NetBSD: ucontext.h,v 1.24 2024/05/25 13:44:48 riastradh Exp $ */
/*-
* Copyright (c) 1999, 2003, 2024 The NetBSD Foundation, Inc.
@@ -82,6 +82,10 @@ struct __ucontext {
#define _UC_UCONTEXT_ALIGN (~0)
#endif
+#ifndef __UCONTEXT_SIZE
+#define __UCONTEXT_SIZE sizeof(ucontext_t)
+#endif
+
#ifndef _UC_TLSBASE
#error _UC_TLSBASE not defined.
#endif
@@ -105,8 +109,6 @@ int cpu_mcontext_validate(struct lwp *,
#ifdef __UCONTEXT_SIZE
__CTASSERT(sizeof(ucontext_t) == __UCONTEXT_SIZE);
-#else
-#define __UCONTEXT_SIZE sizeof(ucontext_t)
#endif
#endif /* _KERNEL */