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 */
 

Reply via email to