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