Hello everybody!
Here's a fix for the non-working SuSE Build-Script in Catalyst 8.11.
Background:
On SuSE systems the file firegl_public.c needs to be patched to properly handle SMP configurations. This is done by the SuSE build-script using the file fglrx-install.xxxxx/packages/SuSE/ati-2.6.25-build-fix.diff. In Catalyst 8.11 this patch has not been updated to work with the changed firegl_public.c, so building of the RPM-package will fail.
Fix:
This is a modified version of ati-2.6.25-build-fix.diff that will do the trick:
Usage:
1. Unpack installer files
2. Replace contents of fglrx-install.xxxxx/packages/SuSE/ati-2.6.25-build-fix.diff by new diff code (see above)
3. Build RPM-package
4. Have a lot of fun...
Cheers,
knutbert
Here's a fix for the non-working SuSE Build-Script in Catalyst 8.11.
Background:
On SuSE systems the file firegl_public.c needs to be patched to properly handle SMP configurations. This is done by the SuSE build-script using the file fglrx-install.xxxxx/packages/SuSE/ati-2.6.25-build-fix.diff. In Catalyst 8.11 this patch has not been updated to work with the changed firegl_public.c, so building of the RPM-package will fail.
Fix:
This is a modified version of ati-2.6.25-build-fix.diff that will do the trick:
Code:
--- firegl_public.c 2008-11-11 17:18:15.000000000 +0100 +++ firegl_public.c.knutbert 2008-11-15 11:12:40.000000000 +0100 @@ -243,7 +243,7 @@ const char BUILD_KERNEL_HAS_MODVERSIONS_CLEARED; #endif -#ifdef __SMP__ +#if CONFIG_SMP const unsigned long __ke_SMP_State = 1; const char BUILD_KERNEL_HAS_SMP_SET; #else @@ -2481,7 +2481,7 @@ /*****************************************************************************/ -#ifdef __SMP__ +#if CONFIG_SMP static atomic_t cpus_waiting; static void deferred_flush(void* contextp) @@ -2497,7 +2497,7 @@ while (atomic_read(&cpus_waiting) > 0) barrier(); } -#endif /* __SMP__ */ +#endif /* CONFIG_SMP */ /** \brief Run a function on all other CPUs. * \param func The function to run. @@ -2513,7 +2513,7 @@ int ATI_API_CALL __ke_flush_cache(void) { -#ifdef __SMP__ +#if CONFIG_SMP /* write back invalidate all other CPUs (exported by kernel) */ if (KCL_SmpCallFunction(deferred_flush, NULL, 1, 0) != 0) panic("timed out waiting for the other CPUs!\n"); @@ -2529,7 +2529,7 @@ while (atomic_read(&cpus_waiting) > 0) barrier(); -#else /* !__SMP__ */ +#else /* !CONFIG_SMP */ #if defined(__i386__) || defined(__x86_64__) asm volatile ("wbinvd":::"memory"); #elif defined(__alpha__) || defined(__sparc__) @@ -2537,7 +2537,7 @@ #else #error "Please define flush_cache for your architecture." #endif -#endif /* !__SMP__ */ +#endif /* !CONFIG_SMP */ //for kernel 2.6.25, tlb_flush has been included when calling set_pages_*. #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
1. Unpack installer files
sh ati-driver-installer-8-11-x86.x86_64.run --extract
2. Replace contents of fglrx-install.xxxxx/packages/SuSE/ati-2.6.25-build-fix.diff by new diff code (see above)
3. Build RPM-package
sh ati-installer.sh 8.552 --buildpkg SuSE/SUSE110-IA32
4. Have a lot of fun...
Cheers,
knutbert
Comment