Module Name:    src
Committed By:   martin
Date:           Sat Apr 16 17:45:45 UTC 2011

Modified Files:
        src/crypto/external/bsd/heimdal/dist/base: baselocl.h
        src/crypto/external/bsd/heimdal/include: config.h

Log Message:
Use <sys/atomic.h> ops on NetBSD (instead of MD gcc-isms). Stopgap fix
to unbreak the build on some risc platforms.
OK: elric


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 \
    src/crypto/external/bsd/heimdal/dist/base/baselocl.h
cvs rdiff -u -r1.2 -r1.3 src/crypto/external/bsd/heimdal/include/config.h

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

Modified files:

Index: src/crypto/external/bsd/heimdal/dist/base/baselocl.h
diff -u src/crypto/external/bsd/heimdal/dist/base/baselocl.h:1.1.1.1 src/crypto/external/bsd/heimdal/dist/base/baselocl.h:1.2
--- src/crypto/external/bsd/heimdal/dist/base/baselocl.h:1.1.1.1	Wed Apr 13 18:14:32 2011
+++ src/crypto/external/bsd/heimdal/dist/base/baselocl.h	Sat Apr 16 17:45:44 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: baselocl.h,v 1.1.1.1 2011/04/13 18:14:32 elric Exp $	*/
+/*	$NetBSD: baselocl.h,v 1.2 2011/04/16 17:45:44 martin Exp $	*/
 
 /*
  * Copyright (c) 2010 Kungliga Tekniska Högskolan
@@ -56,7 +56,17 @@
 #include <dispatch/dispatch.h>
 #endif
 
-#if defined(__GNUC__) && defined(HAVE___SYNC_ADD_AND_FETCH)
+#if defined(USE_ATOMIC_INCDEC)
+
+#include <sys/atomic.h>
+#define heim_base_atomic_inc(x) atomic_inc_32_nv((x))
+#define heim_base_atomic_dec(x) atomic_dec_32_nv((x))
+#define heim_base_atomic_type	uint32_t
+#define heim_base_atomic_max    UINT32_MAX
+
+#define heim_base_exchange_pointer(t,v) atomic_swap_ptr((t), (v))
+
+#elif defined(__GNUC__) && defined(HAVE___SYNC_ADD_AND_FETCH)
 
 #define heim_base_atomic_inc(x) __sync_add_and_fetch((x), 1)
 #define heim_base_atomic_dec(x) __sync_sub_and_fetch((x), 1)

Index: src/crypto/external/bsd/heimdal/include/config.h
diff -u src/crypto/external/bsd/heimdal/include/config.h:1.2 src/crypto/external/bsd/heimdal/include/config.h:1.3
--- src/crypto/external/bsd/heimdal/include/config.h:1.2	Fri Apr 15 21:01:22 2011
+++ src/crypto/external/bsd/heimdal/include/config.h	Sat Apr 16 17:45:45 2011
@@ -1276,8 +1276,15 @@
 /* Define if you have the `__progname' variable. */
 #define HAVE___PROGNAME 1
 
+/*
+ * Not all NetBSD platforms have __sync_add_and_fetch, but NetBSD provides
+ * the standard <sys/atomic.h> API everywhere.
+ */
+#define USE_ATOMIC_INCDEC	1
 /* have __sync_add_and_fetch */
-#define HAVE___SYNC_ADD_AND_FETCH 1
+/*
+ * #define HAVE___SYNC_ADD_AND_FETCH 1
+ */
 
 /* Define if you want support for weak crypto */
 #define HEIM_WEAK_CRYPTO 1

Reply via email to