summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Erculiani <lxnay@gentoo.org>2009-12-15 12:10:34 +0000
committerFabio Erculiani <lxnay@gentoo.org>2009-12-15 12:10:34 +0000
commit2672be47e82fb8fedd64715bf0b513eecf819f09 (patch)
treee8da7b96f7dafaf257806ca683102b9cd39450e9 /x11-drivers
parentRemove --with-default-audio so mpg321 will use libao default instead wrt #297... (diff)
downloadgentoo-2-2672be47e82fb8fedd64715bf0b513eecf819f09.tar.gz
gentoo-2-2672be47e82fb8fedd64715bf0b513eecf819f09.tar.bz2
gentoo-2-2672be47e82fb8fedd64715bf0b513eecf819f09.zip
make ati-drivers-9.11 compile with 2.6.32 kernel, close bug #294997
(Portage version: 2.2_rc46/cvs/Linux x86_64)
Diffstat (limited to 'x11-drivers')
-rw-r--r--x11-drivers/ati-drivers/ChangeLog6
-rw-r--r--x11-drivers/ati-drivers/ati-drivers-9.11.ebuild14
-rw-r--r--x11-drivers/ati-drivers/files/kernel/2.6.32-9.11-fix_compilation.patch37
3 files changed, 49 insertions, 8 deletions
diff --git a/x11-drivers/ati-drivers/ChangeLog b/x11-drivers/ati-drivers/ChangeLog
index 218162461673..9c0476efccb9 100644
--- a/x11-drivers/ati-drivers/ChangeLog
+++ b/x11-drivers/ati-drivers/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for x11-drivers/ati-drivers
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ChangeLog,v 1.204 2009/12/02 09:35:23 scarabeus Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ChangeLog,v 1.205 2009/12/15 12:10:33 lxnay Exp $
+
+ 15 Dec 2009; Fabio Erculiani <lxnay@gentoo.org> ati-drivers-9.11.ebuild,
+ +files/kernel/2.6.32-9.11-fix_compilation.patch:
+ make ati-drivers-9.11 compile with 2.6.32 kernel, close bug #294997
02 Dec 2009; Tomáš Chvátal <scarabeus@gentoo.org>
-files/8.40.4/ati-drivers-2.6.23.patch,
diff --git a/x11-drivers/ati-drivers/ati-drivers-9.11.ebuild b/x11-drivers/ati-drivers/ati-drivers-9.11.ebuild
index 12e27acffd66..5a75d8cf78e5 100644
--- a/x11-drivers/ati-drivers/ati-drivers-9.11.ebuild
+++ b/x11-drivers/ati-drivers/ati-drivers-9.11.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ati-drivers-9.11.ebuild,v 1.1 2009/11/19 19:09:36 lu_zero Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ati-drivers-9.11.ebuild,v 1.2 2009/12/15 12:10:33 lxnay Exp $
EAPI="2"
@@ -101,12 +101,6 @@ _check_kernel_config() {
die "CONFIG_PREEMT_RCU enabled"
fi
- # kernel hook checking up latest allowed version
- if kernel_is ge 2 6 32; then
- eerror "Kernels newer then 2.6.31 are not supported by this driver"
- die "Downgrade your kernel"
- fi
-
if ! linux_chkconfig_present MTRR; then
ewarn "You don't have MTRR support enabled in the kernel."
ewarn "Direct rendering will not work."
@@ -223,6 +217,12 @@ src_unpack() {
src_prepare() {
epatch "${FILESDIR}"/ati-drivers-xen.patch
+ # Upstream will support 2.6.32 Linux kernel from next version
+ # so this (and patch in FILESDIR) will be removed afterwards
+ if kernel_is ge 2 6 32; then
+ epatch "${FILESDIR}"/kernel/2.6.32-${PV}-fix_compilation.patch
+ fi
+
# All kernel options for prepare are ment to be in here
if use modules; then
# version patches
diff --git a/x11-drivers/ati-drivers/files/kernel/2.6.32-9.11-fix_compilation.patch b/x11-drivers/ati-drivers/files/kernel/2.6.32-9.11-fix_compilation.patch
new file mode 100644
index 000000000000..38519d76c343
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/kernel/2.6.32-9.11-fix_compilation.patch
@@ -0,0 +1,37 @@
+--- work/common/lib/modules/fglrx/build_mod/firegl_public.c
++++ work.new/common/lib/modules/fglrx/build_mod/firegl_public.c
+@@ -1441,7 +1441,9 @@
+ todo !!!
+ #endif
+
+-unsigned long ATI_API_CALL __ke__cmpxchg(volatile void *ptr, unsigned long old,
++void __cmpxchg_wrong_size(void) {}
++
++unsigned long ATI_API_CALL __ke__cmpxchg(volatile unsigned long *ptr, unsigned long old,
+ unsigned long new, int size)
+ {
+ #ifndef __HAVE_ARCH_CMPXCHG
+--- work/common/lib/modules/fglrx/build_mod/firegl_public.h
++++ work.new/common/lib/modules/fglrx/build_mod/firegl_public.h
+@@ -441,7 +441,8 @@
+ extern void ATI_API_CALL KCL_SIGNAL_BlockAll(int (*notifier)(void *priv), void *pPriv, __ke_sigset_t *pSigMask);
+ extern void ATI_API_CALL KCL_SIGNAL_UnblockAll(void);
+
+-extern unsigned long ATI_API_CALL __ke__cmpxchg(volatile void *ptr, unsigned long old,
++extern void __cmpxchg_wrong_size(void);
++extern unsigned long ATI_API_CALL __ke__cmpxchg(volatile unsigned long *ptr, unsigned long old,
+ unsigned long new, int size);
+
+ #define __ke_cmpxchg(ptr,o,n) \
+--- work/common/lib/modules/fglrx/build_mod/kcl_io.c
++++ work.new/common/lib/modules/fglrx/build_mod/kcl_io.c
+@@ -37,8 +37,9 @@
+ */
+
+ #include <linux/version.h>
+ #include <linux/autoconf.h>
+ #include <linux/poll.h>
++#include <linux/signal.h>
+ #include <asm/io.h>
+
+ #include "kcl_config.h"