* [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