Module Name: src Committed By: kamil Date: Wed Feb 5 11:05:10 UTC 2020
Modified Files: src/lib/libpthread: pthread_int.h pthread_rwlock.c pthread_spin.c Log Message: Retire ifdef ERRORCHECK in pthread(3) It is enabled unconditionally since 2003 and used only for rwlocks and spinlocks. LLVM sanitizers make assumptions that these checks are enabled always. To generate a diff of this commit: cvs rdiff -u -r1.100 -r1.101 src/lib/libpthread/pthread_int.h cvs rdiff -u -r1.38 -r1.39 src/lib/libpthread/pthread_rwlock.c cvs rdiff -u -r1.7 -r1.8 src/lib/libpthread/pthread_spin.c 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_int.h diff -u src/lib/libpthread/pthread_int.h:1.100 src/lib/libpthread/pthread_int.h:1.101 --- src/lib/libpthread/pthread_int.h:1.100 Tue Jan 28 13:08:40 2020 +++ src/lib/libpthread/pthread_int.h Wed Feb 5 11:05:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: pthread_int.h,v 1.100 2020/01/28 13:08:40 ad Exp $ */ +/* $NetBSD: pthread_int.h,v 1.101 2020/02/05 11:05:10 kamil Exp $ */ /*- * Copyright (c) 2001, 2002, 2003, 2006, 2007, 2008, 2020 @@ -36,7 +36,6 @@ #include <sys/tls.h> /* #define PTHREAD__DEBUG */ -#define ERRORCHECK #include "pthread_types.h" #include "pthread_queue.h" Index: src/lib/libpthread/pthread_rwlock.c diff -u src/lib/libpthread/pthread_rwlock.c:1.38 src/lib/libpthread/pthread_rwlock.c:1.39 --- src/lib/libpthread/pthread_rwlock.c:1.38 Fri Jan 31 17:52:14 2020 +++ src/lib/libpthread/pthread_rwlock.c Wed Feb 5 11:05:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: pthread_rwlock.c,v 1.38 2020/01/31 17:52:14 kamil Exp $ */ +/* $NetBSD: pthread_rwlock.c,v 1.39 2020/02/05 11:05:10 kamil Exp $ */ /*- * Copyright (c) 2002, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: pthread_rwlock.c,v 1.38 2020/01/31 17:52:14 kamil Exp $"); +__RCSID("$NetBSD: pthread_rwlock.c,v 1.39 2020/02/05 11:05:10 kamil Exp $"); #include <sys/types.h> #include <sys/lwpctl.h> @@ -158,10 +158,8 @@ pthread__rwlock_rdlock(pthread_rwlock_t pthread_t self; int error; -#ifdef ERRORCHECK pthread__error(EINVAL, "Invalid rwlock", ptr->ptr_magic == _PT_RWLOCK_MAGIC); -#endif for (owner = (uintptr_t)ptr->ptr_owner;; owner = next) { /* @@ -248,10 +246,8 @@ pthread_rwlock_tryrdlock(pthread_rwlock_ if (__predict_false(__uselibcstub)) return __libc_rwlock_tryrdlock_stub(ptr); -#ifdef ERRORCHECK pthread__error(EINVAL, "Invalid rwlock", ptr->ptr_magic == _PT_RWLOCK_MAGIC); -#endif /* * Don't get a readlock if there is a writer or if there are waiting @@ -283,10 +279,8 @@ pthread__rwlock_wrlock(pthread_rwlock_t self = pthread__self(); _DIAGASSERT(((uintptr_t)self & RW_FLAGMASK) == 0); -#ifdef ERRORCHECK pthread__error(EINVAL, "Invalid rwlock", ptr->ptr_magic == _PT_RWLOCK_MAGIC); -#endif for (owner = (uintptr_t)ptr->ptr_owner;; owner = next) { /* @@ -374,10 +368,8 @@ pthread_rwlock_trywrlock(pthread_rwlock_ if (__predict_false(__uselibcstub)) return __libc_rwlock_trywrlock_stub(ptr); -#ifdef ERRORCHECK pthread__error(EINVAL, "Invalid rwlock", ptr->ptr_magic == _PT_RWLOCK_MAGIC); -#endif self = pthread__self(); _DIAGASSERT(((uintptr_t)self & RW_FLAGMASK) == 0); @@ -453,10 +445,8 @@ pthread_rwlock_unlock(pthread_rwlock_t * if (__predict_false(__uselibcstub)) return __libc_rwlock_unlock_stub(ptr); -#ifdef ERRORCHECK pthread__error(EINVAL, "Invalid rwlock", ptr->ptr_magic == _PT_RWLOCK_MAGIC); -#endif #ifndef PTHREAD__ATOMIC_IS_MEMBAR membar_exit(); Index: src/lib/libpthread/pthread_spin.c diff -u src/lib/libpthread/pthread_spin.c:1.7 src/lib/libpthread/pthread_spin.c:1.8 --- src/lib/libpthread/pthread_spin.c:1.7 Fri Jan 31 17:52:14 2020 +++ src/lib/libpthread/pthread_spin.c Wed Feb 5 11:05:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: pthread_spin.c,v 1.7 2020/01/31 17:52:14 kamil Exp $ */ +/* $NetBSD: pthread_spin.c,v 1.8 2020/02/05 11:05:10 kamil Exp $ */ /*- * Copyright (c) 2001, 2006, 2007 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: pthread_spin.c,v 1.7 2020/01/31 17:52:14 kamil Exp $"); +__RCSID("$NetBSD: pthread_spin.c,v 1.8 2020/02/05 11:05:10 kamil Exp $"); #include <sys/types.h> #include <sys/ras.h> @@ -53,11 +53,10 @@ int pthread_spin_init(pthread_spinlock_t *lock, int pshared) { -#ifdef ERRORCHECK pthread__error(EINVAL, "Invalid pshared", pshared == PTHREAD_PROCESS_PRIVATE || pshared == PTHREAD_PROCESS_SHARED); -#endif + lock->pts_magic = _PT_SPINLOCK_MAGIC; /* @@ -75,13 +74,11 @@ int pthread_spin_destroy(pthread_spinlock_t *lock) { -#ifdef ERRORCHECK pthread__error(EINVAL, "Invalid spinlock", lock->pts_magic == _PT_SPINLOCK_MAGIC); if (!__SIMPLELOCK_UNLOCKED_P(&lock->pts_spin)) return EBUSY; -#endif lock->pts_magic = _PT_SPINLOCK_DEAD; @@ -93,10 +90,8 @@ pthread_spin_lock(pthread_spinlock_t *lo { pthread_t self; -#ifdef ERRORCHECK pthread__error(EINVAL, "Invalid spinlock", lock->pts_magic == _PT_SPINLOCK_MAGIC); -#endif self = pthread__self(); while (pthread__spintrylock(self, &lock->pts_spin) == 0) { @@ -111,10 +106,8 @@ pthread_spin_trylock(pthread_spinlock_t { pthread_t self; -#ifdef ERRORCHECK pthread__error(EINVAL, "Invalid spinlock", lock->pts_magic == _PT_SPINLOCK_MAGIC); -#endif self = pthread__self(); if (pthread__spintrylock(self, &lock->pts_spin) == 0) @@ -127,10 +120,8 @@ pthread_spin_unlock(pthread_spinlock_t * { pthread_t self; -#ifdef ERRORCHECK pthread__error(EINVAL, "Invalid spinlock", lock->pts_magic == _PT_SPINLOCK_MAGIC); -#endif self = pthread__self(); pthread__spinunlock(self, &lock->pts_spin);