Module Name:    src
Committed By:   pooka
Date:           Fri Jun 26 10:05:18 UTC 2015

Modified Files:
        src/lib/libpthread: pthread_types.h

Log Message:
Don't depend on __CPU_SIMPLE_LOCK_PAD to determine the type of
__cpu_simple_lock_t (because it doesn't).  Instead, use sizeof/alignof
with a struct { uchar[] }.

Fixes problem in previous commit, caught by Nick Hudson.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/lib/libpthread/pthread_types.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libpthread/pthread_types.h
diff -u src/lib/libpthread/pthread_types.h:1.14 src/lib/libpthread/pthread_types.h:1.15
--- src/lib/libpthread/pthread_types.h:1.14	Fri Jun 26 01:33:08 2015
+++ src/lib/libpthread/pthread_types.h	Fri Jun 26 10:05:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_types.h,v 1.14 2015/06/26 01:33:08 pooka Exp $	*/
+/*	$NetBSD: pthread_types.h,v 1.15 2015/06/26 10:05:17 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2008 The NetBSD Foundation, Inc.
@@ -89,11 +89,9 @@ struct	__pthread_attr_st {
  * does not touch the guts of those types, we redefine them as non-volatile
  */
 #ifdef __cplusplus
-# ifdef __CPU_SIMPLE_LOCK_PAD
-#  define __pthread_spin_t unsigned char
-# else
-#  define __pthread_spin_t unsigned int
-# endif
+# define __pthread_spin_t \
+    struct { unsigned char _simplelock[sizeof(__cpu_simple_lock_t)]; } \
+        __aligned(__alignof(__cpu_simple_lock_t))
 # define __pthread_volatile
 #else /* __cplusplus */
 # define __pthread_spin_t pthread_spin_t

Reply via email to