$NetBSD: patch-ae,v 1.3 2025/12/16 10:19:11 hauke Exp $ * adds support for mutexes on aarch64 * fixes build failure on MIPS arch with -mips1. * adds mutex support for sparc v[789] --- dbinc/mutex_int.h.orig 2025-12-15 13:35:56.838500475 +0000 +++ dbinc/mutex_int.h @@ -751,14 +751,24 @@ typedef unsigned char tsl_t; !__r; \ }) +#if defined (__sparc_v9__) #define MUTEX_UNSET(tsl) (*(tsl) = 0, MUTEX_MEMBAR(tsl)) -#define MUTEX_INIT(tsl) (MUTEX_UNSET(tsl), 0) #define MUTEX_MEMBAR(x) \ ({ __asm__ volatile ("membar #StoreStore|#StoreLoad|#LoadStore"); }) #define MEMBAR_ENTER() \ ({ __asm__ volatile ("membar #StoreStore|#StoreLoad"); }) #define MEMBAR_EXIT() \ ({ __asm__ volatile ("membar #StoreStore|#LoadStore"); }) +#else +#define MUTEX_UNSET(tsl) ({ \ + __asm__ volatile ("stbar"); \ + *(tsl) = 0; }) +#define MUTEX_MEMBAR(x) \ + ({ __asm__ volatile ("stbar"); }) +#define MEMBAR_ENTER() +#define MEMBAR_EXIT() +#endif +#define MUTEX_INIT(tsl) (MUTEX_UNSET(tsl), 0) #endif #endif