diff --git a/catalyst-lts/3.2.8.patch b/catalyst-lts/3.2.8.patch new file mode 100644 index 000000000..381250214 --- /dev/null +++ b/catalyst-lts/3.2.8.patch @@ -0,0 +1,21 @@ +Signed-off-by: Gianluca Gennari +--- +--- 12.1/common/lib/modules/fglrx/build_mod/firegl_public.c ++++ 12.1/common/lib/modules/fglrx/build_mod/firegl_public.c +@@ -5797,10 +5797,16 @@ void ATI_API_CALL KCL_fpu_begin(void) + #ifdef CONFIG_X86_64 + kernel_fpu_begin(); + #else ++#ifndef TS_USEDFPU ++ preempt_disable(); ++ if (__thread_has_fpu(current)) ++ __save_init_fpu(current); ++#else + struct thread_info *cur_task = current_thread_info(); + preempt_disable(); + if (cur_task->status & TS_USEDFPU) + __save_init_fpu(cur_task->task); ++#endif + else + clts(); + #endif diff --git a/catalyst-lts/PKGBUILD b/catalyst-lts/PKGBUILD index d07d00993..abfc668d4 100644 --- a/catalyst-lts/PKGBUILD +++ b/catalyst-lts/PKGBUILD @@ -1,39 +1,37 @@ # # Chakra Packages for Chakra, part of chakra-project.org # -# maintainer (i686): Phil Miller # maintainer (x86_64): Manuel Tortosa -# Find the kernel name inside the chroot -_extramodules=extramodules-`pacman -Q linux-lts | cut -c11-13 | sed 's/linux-lts //g'`-CHAKRA-LTS -_kver="$(cat /lib/modules/${_extramodules}/version)" +_kernver="3.0-CHAKRA-LTS" pkgname=catalyst-lts pkgver=12.2 -pkgrel=1 +pkgrel=2 pkgdesc="AMD/ATI Catalyst drivers for linux. fglrx kernel module only" arch=('i686' 'x86_64') url="http://www.ati.amd.com" +screenshot="http://linuxtation3.files.wordpress.com/2007/03/pantallazo.jpg" license=('custom') -depends=('linux-lts>=3.0' 'linux-lts<3.1' 'catalyst-utils') +depends=('linux-lts=3.0.22' 'catalyst-utils') makedepends=('gcc-libs' 'gcc>4.0.0' 'make' 'linux-lts-headers') -conflicts=('catalyst-test' 'nvidia-lts' 'xf86-video-ati' 'xf86-video-radeonhd' 'ati-dri') +conflicts=('catalyst-test' 'nvidia' 'xf86-video-ati' 'xf86-video-radeonhd' 'ati-dri') install=catalyst.install source=(http://www2.ati.com/drivers/linux/amd-driver-installer-${pkgver/./-}-x86.x86_64.run ati_make.sh - makefile_compat.patch) + makefile_compat.patch + 3.2.8.patch) md5sums=('7764bd0343ed542a8e0ebed05e347865' - '660396540b0ceaff71d6155c986734de' - '3e1b82bd69774ea808da69c983d6a43b') - - + '660396540b0ceaff71d6155c986734de' + '3e1b82bd69774ea808da69c983d6a43b' + '32c8142c73dcfed5db426f494feda9e3') build() { msg "Setting compilation variables ..." - ## include ati_make.sh and use _ati_check function from it + # include ati_make.sh and use _ati_check function from it . ati_make.sh _ati_check @@ -45,7 +43,6 @@ build() { if [ "${CARCH}" = "x86_64" ]; then BUILDARCH=x86_64 _archdir=x86_64 - sed -i -e s'~COMPAT_ALLOC_USER_SPACE~arch_compat_alloc_user_space~' ${srcdir}/archive_files/common/lib/modules/fglrx/build_mod//kcl_ioctl.c fi if [ "${CARCH}" = "i686" ]; then BUILDARCH=i386 @@ -54,36 +51,52 @@ build() { cd "${srcdir}/archive_files/" - msg "Applying patch(es) ..." - ## makefile patch to choose arch_compat_alloc_user_space or older compat_alloc_user_space - ## works only in combination with ati_make.sh script - patch -Np1 -i ../makefile_compat.patch - #if [[ ${_kver:0:6} < "2.6.39" ]] && [[ `cat /lib/modules/${_kver}/build/.config | grep -c CONFIG_BKL=y` = 0 ]]; then - # patch -Np1 -i ../no_bkl.patch - #fi + msg "Applying patch(es) ..." + # makefile patch to choose arch_compat_alloc_user_space or older compat_alloc_user_space + # works only in combination with ati_make.sh script + patch -Np1 -i ../makefile_compat.patch || return 1 + + patch -Np1 -i ../3.2.8.patch || return 1 cd "${srcdir}/archive_files/common/lib/modules/fglrx/build_mod" - cp "${srcdir}/archive_files/arch/${_archdir}/lib/modules/fglrx/build_mod/libfglrx_ip.a" . - cp 2.6.x/Makefile . + cp "${srcdir}/archive_files/arch/${_archdir}/lib/modules/fglrx/build_mod/libfglrx_ip.a" . || return 1 + cp 2.6.x/Makefile . || return 1 msg "Compiling fglrx module ..." - ## Compile module using _ati_check variables - make -C /lib/modules/${_kver}/build SUBDIRS="`pwd`" ARCH=${BUILDARCH} \ - MODFLAGS="-DMODULE -DATI -DFGL -DPAGE_ATTR_FIX=$PAGE_ATTR_FIX -DCOMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE $def_smp $def_modversions" \ - PAGE_ATTR_FIX=$PAGE_ATTR_FIX COMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE modules + # Compile module using _ati_check variables + make -C /lib/modules/${_kernver}/build SUBDIRS="`pwd`" ARCH=${BUILDARCH} \ + MODFLAGS="-DMODULE -DATI -DFGL -DPAGE_ATTR_FIX=$PAGE_ATTR_FIX -DCOMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE $def_smp $def_modversions" \ + PAGE_ATTR_FIX=$PAGE_ATTR_FIX COMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE modules || return 1 } package() { + + # here we are checking kernel's extramodules dir + for r in /lib/modules/*; do + s=${r:13} + if [[ ${s:0:3} = "ext" ]]; then + if [[ `cat ${r}/version | grep -c ${_kernver}` != 0 ]]; then + _destidir=${s} + sed -i -e "s/EXTRAMODULES=.*/EXTRAMODULES=${s}/" $startdir/catalyst.install + fi + elif [[ ${s} = ${_kernver} ]] && [[ ! -e ${r}/extramodules ]]; then + _destidir=${_kernver}/video + sed -i -e "s/EXTRAMODULES=.*/EXTRAMODULES=null/" $startdir/catalyst.install + fi + done + + cd "${srcdir}/archive_files/common/lib/modules/fglrx/build_mod" - install -m755 -d "${pkgdir}/lib/modules/${_extramodules}" - install -m644 fglrx.ko "${pkgdir}/lib/modules/${_extramodules}" - gzip "${pkgdir}/lib/modules/${_extramodules}/fglrx.ko" + install -m755 -d "${pkgdir}/lib/modules/${_destidir}/" || return 1 + install -m644 fglrx.ko "${pkgdir}/lib/modules/${_destidir}/" || return 1 + find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; + sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" $startdir/catalyst.install - ## License + # License install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" - install -m644 "${srcdir}/archive_files/LICENSE.TXT" "${pkgdir}/usr/share/licenses/${pkgname}/" + install -m644 "${srcdir}/archive_files/LICENSE.TXT" "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 - sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" ${startdir}/*.install + sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" $startdir/*.install } diff --git a/catalyst-lts/catalyst.install b/catalyst-lts/catalyst.install index 20cff4a4f..6f49bbc67 100644 --- a/catalyst-lts/catalyst.install +++ b/catalyst-lts/catalyst.install @@ -7,18 +7,18 @@ remove_hook(){ } post_install() { - EXTRAMODULES='extramodules-3.0-CHAKRA-LTS' + EXTRAMODULES=extramodules-3.0-CHAKRA-LTS depmod $(cat /lib/modules/$EXTRAMODULES/version) } post_upgrade() { remove_hook - EXTRAMODULES='extramodules-3.0-CHAKRA-LTS' + EXTRAMODULES=extramodules-3.0-CHAKRA-LTS depmod $(cat /lib/modules/$EXTRAMODULES/version) } post_remove() { - EXTRAMODULES='extramodules-3.0-CHAKRA-LTS' + EXTRAMODULES=extramodules-3.0-CHAKRA-LTS depmod $(cat /lib/modules/$EXTRAMODULES/version) echo "----------------------------------------------------------------" echo "Don't forget to remove fglrx from MODULES array of /etc/rc.conf" diff --git a/catalyst/PKGBUILD b/catalyst/PKGBUILD index ac32fb5c0..33ff45597 100644 --- a/catalyst/PKGBUILD +++ b/catalyst/PKGBUILD @@ -1,24 +1,22 @@ # # Chakra Packages for Chakra, part of chakra-project.org # -# maintainer (i686): Phil Miller # maintainer (x86_64): Manuel Tortosa -# Find the kernel name inside the chroot -_extramodules=extramodules-`pacman -Q linux | cut -c7-9 | sed 's/linux //g'`-CHAKRA -_kver="$(cat /lib/modules/${_extramodules}/version)" +_kernver="3.2-CHAKRA" pkgname=catalyst pkgver=12.2 -pkgrel=1 +pkgrel=2 pkgdesc="AMD/ATI Catalyst drivers for linux. fglrx kernel module only" arch=('i686' 'x86_64') url="http://www.ati.amd.com" +screenshot="http://linuxtation3.files.wordpress.com/2007/03/pantallazo.jpg" license=('custom') depends=('linux>=3.2' 'linux<3.3' 'catalyst-utils') makedepends=('gcc-libs' 'gcc>4.0.0' 'make' 'linux-headers') conflicts=('catalyst-test' 'nvidia' 'xf86-video-ati' 'xf86-video-radeonhd' 'ati-dri') -install=${pkgname}.install +install=catalyst.install source=(http://www2.ati.com/drivers/linux/amd-driver-installer-${pkgver/./-}-x86.x86_64.run ati_make.sh @@ -26,16 +24,14 @@ source=(http://www2.ati.com/drivers/linux/amd-driver-installer-${pkgver/./-}-x86 3.2.8.patch) md5sums=('7764bd0343ed542a8e0ebed05e347865' - '660396540b0ceaff71d6155c986734de' - '3e1b82bd69774ea808da69c983d6a43b' - '32c8142c73dcfed5db426f494feda9e3') - - + '660396540b0ceaff71d6155c986734de' + '3e1b82bd69774ea808da69c983d6a43b' + '32c8142c73dcfed5db426f494feda9e3') build() { msg "Setting compilation variables ..." - ## include ati_make.sh and use _ati_check function from it + # include ati_make.sh and use _ati_check function from it . ati_make.sh _ati_check @@ -47,7 +43,6 @@ build() { if [ "${CARCH}" = "x86_64" ]; then BUILDARCH=x86_64 _archdir=x86_64 - sed -i -e s'~COMPAT_ALLOC_USER_SPACE~arch_compat_alloc_user_space~' ${srcdir}/archive_files/common/lib/modules/fglrx/build_mod//kcl_ioctl.c fi if [ "${CARCH}" = "i686" ]; then BUILDARCH=i386 @@ -56,32 +51,29 @@ build() { cd "${srcdir}/archive_files/" + msg "Applying patch(es) ..." - ## makefile patch to choose arch_compat_alloc_user_space or older compat_alloc_user_space - ## works only in combination with ati_make.sh script - patch -Np1 -i ../makefile_compat.patch + # makefile patch to choose arch_compat_alloc_user_space or older compat_alloc_user_space + # works only in combination with ati_make.sh script + patch -Np1 -i ../makefile_compat.patch || return 1 - patch -Np1 -i ../3.2.8.patch - - #if [[ ${_kver:0:6} < "2.6.39" ]] && [[ `cat /lib/modules/${_kver}/build/.config | grep -c CONFIG_BKL=y` = 0 ]]; then - # patch -Np1 -i ../no_bkl.patch - #fi + patch -Np1 -i ../3.2.8.patch || return 1 cd "${srcdir}/archive_files/common/lib/modules/fglrx/build_mod" - cp "${srcdir}/archive_files/arch/${_archdir}/lib/modules/fglrx/build_mod/libfglrx_ip.a" . - cp 2.6.x/Makefile . + cp "${srcdir}/archive_files/arch/${_archdir}/lib/modules/fglrx/build_mod/libfglrx_ip.a" . || return 1 + cp 2.6.x/Makefile . || return 1 msg "Compiling fglrx module ..." - ## Compile module using _ati_check variables - make -C /lib/modules/${_kver}/build SUBDIRS="`pwd`" ARCH=${BUILDARCH} \ - MODFLAGS="-DMODULE -DATI -DFGL -DPAGE_ATTR_FIX=$PAGE_ATTR_FIX -DCOMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE $def_smp $def_modversions" \ - PAGE_ATTR_FIX=$PAGE_ATTR_FIX COMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE modules + # Compile module using _ati_check variables + make -C /lib/modules/${_kernver}/build SUBDIRS="`pwd`" ARCH=${BUILDARCH} \ + MODFLAGS="-DMODULE -DATI -DFGL -DPAGE_ATTR_FIX=$PAGE_ATTR_FIX -DCOMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE $def_smp $def_modversions" \ + PAGE_ATTR_FIX=$PAGE_ATTR_FIX COMPAT_ALLOC_USER_SPACE=$COMPAT_ALLOC_USER_SPACE modules || return 1 } package() { - ## here we are checking kernel's extramodules dir + # here we are checking kernel's extramodules dir for r in /lib/modules/*; do s=${r:13} if [[ ${s:0:3} = "ext" ]]; then @@ -95,14 +87,16 @@ package() { fi done + cd "${srcdir}/archive_files/common/lib/modules/fglrx/build_mod" - install -m755 -d "${pkgdir}/lib/modules/${_extramodules}" - install -m644 fglrx.ko "${pkgdir}/lib/modules/${_extramodules}" - gzip "${pkgdir}/lib/modules/${_extramodules}/fglrx.ko" + install -m755 -d "${pkgdir}/lib/modules/${_destidir}/" || return 1 + install -m644 fglrx.ko "${pkgdir}/lib/modules/${_destidir}/" || return 1 + find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; + sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" $startdir/catalyst.install - ## License + # License install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" - install -m644 "${srcdir}/archive_files/LICENSE.TXT" "${pkgdir}/usr/share/licenses/${pkgname}/" + install -m644 "${srcdir}/archive_files/LICENSE.TXT" "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 - sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" ${startdir}/*.install + sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" $startdir/*.install } diff --git a/catalyst/catalyst.install b/catalyst/catalyst.install index 3108a3541..0abb303d7 100644 --- a/catalyst/catalyst.install +++ b/catalyst/catalyst.install @@ -1,5 +1,5 @@ -KERNEL_VERSION="3.2-CHAKRA" +KERNEL_VERSION=3.2-CHAKRA remove_hook(){