public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in x11-libs/libdrm/files: 2.4.15-0002-configure-Typo-in-error-message.patch 2.4.15-0001-configure-Conditionally-build-libdrm_intel.patch 2.4.15-0003-intel-Fallback-to-atomic-ops.h-libatomic-ops-dev.patch
@ 2009-12-11 10:32 Remi Cardona (remi)
  0 siblings, 0 replies; only message in thread
From: Remi Cardona (remi) @ 2009-12-11 10:32 UTC (permalink / raw
  To: gentoo-commits

remi        09/12/11 10:32:52

  Added:                2.4.15-0002-configure-Typo-in-error-message.patch
                        2.4.15-0001-configure-Conditionally-build-libdrm_intel.patch
                        2.4.15-0003-intel-Fallback-to-atomic-ops.h-libatomic-ops-dev.patch
  Log:
  x11-libs/libdrm: fix build on !intel arches wrt atomic ops (see bug #296482)
  (Portage version: 2.2_rc58/cvs/Linux i686)

Revision  Changes    Path
1.1                  x11-libs/libdrm/files/2.4.15-0002-configure-Typo-in-error-message.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-libs/libdrm/files/2.4.15-0002-configure-Typo-in-error-message.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-libs/libdrm/files/2.4.15-0002-configure-Typo-in-error-message.patch?rev=1.1&content-type=text/plain

Index: 2.4.15-0002-configure-Typo-in-error-message.patch
===================================================================
From 24c905f84120a7b0bcd7c5e86c58e908b9e850f9 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 13 Oct 2009 14:25:54 +0100
Subject: [PATCH 2/3] configure: Typo in error message.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 configure.ac |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/configure.ac b/configure.ac
index 0c216ce..fd6f696 100644
--- a/configure.ac
+++ b/configure.ac
@@ -171,7 +171,7 @@ if test "x$INTEL" != "xno"; then
 
     if test "x$drm_cv_atomic_primitives" = "xnone"; then
 	    if test "x$INTEL" != "xauto"; then
-		    AC_MSG_ERROR([libdrm_intel depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or disable support for Intel GPUs by passing --disable-intel to ./configue])
+		    AC_MSG_ERROR([libdrm_intel depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or disable support for Intel GPUs by passing --disable-intel to ./configure])
 	   else
 		    INTEL=no
 	   fi
-- 
1.6.5.5




1.1                  x11-libs/libdrm/files/2.4.15-0001-configure-Conditionally-build-libdrm_intel.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-libs/libdrm/files/2.4.15-0001-configure-Conditionally-build-libdrm_intel.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-libs/libdrm/files/2.4.15-0001-configure-Conditionally-build-libdrm_intel.patch?rev=1.1&content-type=text/plain

Index: 2.4.15-0001-configure-Conditionally-build-libdrm_intel.patch
===================================================================
From fc8f6be5a9bd84e10149770b76ff9353d25ce2a7 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Mon, 12 Oct 2009 23:58:47 +0100
Subject: [PATCH 1/3] configure: Conditionally build libdrm_intel

Only build libdrm_intel automatically if we have support for atomic
operations. To force configure to build drm pass --enable-intel, which
will cause the configure to error if no support is found. Or pass
--disable-intel to explicitly prevent libdrm_intel from being built.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 configure.ac |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/configure.ac b/configure.ac
index 870c056..0c216ce 100644
--- a/configure.ac
+++ b/configure.ac
@@ -45,8 +45,8 @@ AC_ARG_ENABLE(udev,	AS_HELP_STRING([--enable-udev],
 
 AC_ARG_ENABLE(intel,
 	      AS_HELP_STRING([--disable-intel],
-	      [Enable support for intel's KMS API (default: enabled)]),
-	      [INTEL=$enableval], [INTEL=yes])
+	      [Enable support for intel's KMS API (default: auto)]),
+	      [INTEL=$enableval], [INTEL=auto])
 
 AC_ARG_ENABLE(nouveau-experimental-api,
 	      AS_HELP_STRING([--enable-nouveau-experimental-api],
@@ -151,9 +151,7 @@ if test "x$HAVE_LIBUDEV" = xyes; then
 fi
 AM_CONDITIONAL(HAVE_LIBUDEV, [test "x$HAVE_LIBUDEV" = xyes])
 
-AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" = xyes])
-
-if test "x$INTEL" = xyes; then
+if test "x$INTEL" != "xno"; then
     # Check for atomic intrinsics
     AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives,
     [
@@ -170,8 +168,19 @@ if test "x$INTEL" = xyes; then
 	    AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1,
 		      [Enable if your compiler supports the Intel __sync_* atomic primitives])
     fi
+
+    if test "x$drm_cv_atomic_primitives" = "xnone"; then
+	    if test "x$INTEL" != "xauto"; then
+		    AC_MSG_ERROR([libdrm_intel depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or disable support for Intel GPUs by passing --disable-intel to ./configue])
+	   else
+		    INTEL=no
+	   fi
+    fi
 fi
 
+AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" != "xno"])
+
+
 AC_SUBST(WARN_CFLAGS)
 AC_OUTPUT([
 	Makefile
-- 
1.6.5.5




1.1                  x11-libs/libdrm/files/2.4.15-0003-intel-Fallback-to-atomic-ops.h-libatomic-ops-dev.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-libs/libdrm/files/2.4.15-0003-intel-Fallback-to-atomic-ops.h-libatomic-ops-dev.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/x11-libs/libdrm/files/2.4.15-0003-intel-Fallback-to-atomic-ops.h-libatomic-ops-dev.patch?rev=1.1&content-type=text/plain

Index: 2.4.15-0003-intel-Fallback-to-atomic-ops.h-libatomic-ops-dev.patch
===================================================================
From 901bacd29cb5b242f68302b8384de6e193413a49 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue, 13 Oct 2009 15:13:00 +0100
Subject: [PATCH 3/3] intel: Fallback to atomic-ops.h [libatomic-ops-dev]

Use the external implementation for atomic operations across a wide
range of architectures.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 configure.ac                |   10 +++++++++-
 libdrm/intel/intel_atomic.h |   17 +++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/configure.ac b/configure.ac
index fd6f696..7efc4d4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -163,15 +163,23 @@ if test "x$INTEL" != "xno"; then
     ], [],
 	      drm_cv_atomic_primitives="Intel"
 	      )
+
+	    if test "x$drm_cv_atomic_primitives" = "xnone"; then
+		    AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops")
+	    fi
+
     ])
     if test "x$drm_cv_atomic_primitives" = xIntel; then
 	    AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1,
 		      [Enable if your compiler supports the Intel __sync_* atomic primitives])
     fi
+    if test "x$drm_cv_atomic_primitives" = "xlibatomic-ops"; then
+	    AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, [Enable if you have libatomic-ops-dev installed])
+    fi
 
     if test "x$drm_cv_atomic_primitives" = "xnone"; then
 	    if test "x$INTEL" != "xauto"; then
-		    AC_MSG_ERROR([libdrm_intel depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or disable support for Intel GPUs by passing --disable-intel to ./configure])
+		    AC_MSG_ERROR([libdrm_intel depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for Intel GPUs by passing --disable-intel to ./configure])
 	   else
 		    INTEL=no
 	   fi
diff --git a/libdrm/intel/intel_atomic.h b/libdrm/intel/intel_atomic.h
index 9eb50a1..e725c4a 100644
--- a/libdrm/intel/intel_atomic.h
+++ b/libdrm/intel/intel_atomic.h
@@ -54,6 +54,23 @@ typedef struct {
 
 #endif
 
+#if HAVE_LIB_ATOMIC_OPS
+#include <atomic_ops.h>
+
+#define HAS_ATOMIC_OPS 1
+
+typedef struct {
+	AO_t atomic;
+} atomic_t;
+
+# define atomic_read(x) AO_load_full(&(x)->atomic)
+# define atomic_set(x, val) AO_store_full(&(x)->atomic, (val))
+# define atomic_inc(x) ((void) AO_fetch_and_add1_full(&(x)->atomic))
+# define atomic_dec_and_test(x) (AO_fetch_and_sub1_full(&(x)->atomic) == 1)
+# define atomic_cmpxchg(x, oldv, newv) AO_compare_and_swap_full(&(x)->atomic, oldv, newv)
+
+#endif
+
 #if ! HAS_ATOMIC_OPS
 #error libdrm-intel requires atomic operations, please define them for your CPU/compiler.
 #endif
-- 
1.6.5.5







^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2009-12-11 10:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-11 10:32 [gentoo-commits] gentoo-x86 commit in x11-libs/libdrm/files: 2.4.15-0002-configure-Typo-in-error-message.patch 2.4.15-0001-configure-Conditionally-build-libdrm_intel.patch 2.4.15-0003-intel-Fallback-to-atomic-ops.h-libatomic-ops-dev.patch Remi Cardona (remi)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox