$NetBSD: patch-ac,v 1.2 2008/07/16 06:41:17 bjs Exp $

--- libdrm/xf86drm.h.orig	2008-07-01 03:51:40.000000000 -0400
+++ libdrm/xf86drm.h
@@ -35,7 +35,11 @@
 #define _XF86DRM_H_
 
 #include <stdarg.h>
+#if @ATOMIC_OPS_CHECK@
+#include <sys/atomic.h>
+#else
 #include <sys/types.h>
+#endif
 #include <stdint.h>
 #include <drm.h>
 
@@ -305,7 +309,12 @@ typedef struct _drmSetVersion {
 #define DRM_LOCK_HELD  0x80000000U /**< Hardware lock is held */
 #define DRM_LOCK_CONT  0x40000000U /**< Hardware lock is contended */
 
-#if defined(__GNUC__) && (__GNUC__ >= 2)
+#if @ATOMIC_OPS_CHECK@ /* configured by pkgsrc */
+
+#define DRM_CAS(lock, old, new, __ret)	\
+ (__ret = atomic_cas_uint(&__drm_dummy_lock(lock), (old), (new)) != (old));
+
+#elif defined(__GNUC__) && (__GNUC__ >= 2)
 # if defined(__i386) || defined(__AMD64__) || defined(__x86_64__) || defined(__amd64__)
 				/* Reflect changes here to drmP.h */
 #define DRM_CAS(lock,old,new,__ret)                                    \
