<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/x11/libdrm/Makefile,v
retrieving revision 1.3
diff -u -b -r1.3 Makefile
--- Makefile	23 Mar 2007 16:28:30 -0000	1.3
+++ Makefile	30 Apr 2008 16:45:24 -0000
@@ -2,7 +2,7 @@
 #
 
 DISTNAME=		libdrm-2.3.0
-PKGREVISION=		1
+PKGREVISION=		2
 CATEGORIES=		x11 graphics
 MASTER_SITES=		http://dri.freedesktop.org/libdrm/
 EXTRACT_SUFX=		.tar.bz2
@@ -18,4 +18,24 @@
 PKGCONFIG_OVERRIDE+=	libdrm.pc.in
 GNU_CONFIGURE=		yes
 
+.include "../../mk/bsd.prefs.mk"
+
+ATOMIC_OPS_CHECK?=	0
+
+SUBST_CLASSES+=		atomic
+SUBST_FILES.atomic=	libdrm/xf86drm.h
+SUBST_MESSAGE.atomic=	Configuring xf86drm.h's atomic operations.
+SUBST_STAGE.atomic=	pre-configure
+SUBST_VARS.atomic=	ATOMIC_OPS_CHECK
+
+.if ${OPSYS} == "NetBSD" &amp;&amp; !target(netbsd-atomic-ops-check)
+netbsd-atomic-ops-check:
+ATOMIC_OPS_CHECK!=\
+  if ( ${NM} /usr/lib/libc.so | ${GREP} -q atomic_cas_uint ); then	\
+    ${ECHO} "1";	\
+  else	\
+    ${ECHO} "0";	\
+  fi
+.endif
+
 .include "../../mk/bsd.pkg.mk"
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/x11/libdrm/distinfo,v
retrieving revision 1.3
diff -u -b -r1.3 distinfo
--- distinfo	23 Mar 2007 16:28:30 -0000	1.3
+++ distinfo	30 Apr 2008 16:45:24 -0000
@@ -5,3 +5,4 @@
 Size (libdrm-2.3.0.tar.bz2) = 267949 bytes
 SHA1 (patch-aa) = cc63dd837d6c25925e3a4d70c1ebd4860da1edd8
 SHA1 (patch-ab) = 46a47c10afd42d3138dfefc855511a9138564b83
+SHA1 (patch-ac) = 5ec8e94e952c1f7681076ab85e9a47335e64eb1e
Index: patches/patch-ac
===================================================================
RCS file: patches/patch-ac
diff -N patches/patch-ac
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-ac	30 Apr 2008 16:45:24 -0000
@@ -0,0 +1,30 @@
+$NetBSD$
+
+--- libdrm/xf86drm.h.orig	2006-11-08 16:55:14.000000000 -0500
++++ libdrm/xf86drm.h
+@@ -37,7 +37,11 @@
+ #define _XF86DRM_H_
+ 
+ #include &lt;stdarg.h&gt;
++#if @ATOMIC_OPS_CHECK@	/* configured by pkgsrc */
++#include &lt;sys/atomic.h&gt;
++#else
+ #include &lt;sys/types.h&gt;
++#endif
+ #include &lt;drm.h&gt;
+ 
+ 				/* Defaults, if nothing set in xf86config */
+@@ -305,7 +309,12 @@ typedef struct _drmSetVersion {
+ #define DRM_LOCK_HELD  0x80000000U /**&lt; Hardware lock is held */
+ #define DRM_LOCK_CONT  0x40000000U /**&lt; Hardware lock is contended */
+ 
+-#if defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 2)
++#if @ATOMIC_OPS_CHECK@ /* configured by pkgsrc */
++
++#define DRM_CAS(lock, old, new, __ret)	\
++ (__ret = atomic_cas_uint(&amp;__drm_dummy_lock(lock), (old), (new)) != (old));
++
++#elif defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 2)
+ # if defined(__i386) || defined(__AMD64__) || defined(__x86_64__) || defined(__amd64__)
+ 				/* Reflect changes here to drmP.h */
+ #define DRM_CAS(lock,old,new,__ret)                                    \
</pre></body></html>