[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: fglrx 8.18.6 (and former probably) not working with 2.6.14 on amd64
- From: Flavio Stanchina <flavio at stanchina dot net>
- Date: Thu, 03 Nov 2005 17:53:32 +0100
Thorsten Müller wrote:
The fglrx drivers won't work on kernel 2.6.14 on an amd64 architecture.
I narrowed it down to changes in linux/ioctl32.h from 2.6.13.* to 2.6.14.
The declaration of the already deprecated functions/macros [...]
was deleted, which leads to an
undifined symbol register_ioctl32_conversion
undifined symbol unregister_ioctl32_conversion
I really think kernel modules shouldn't be allowed to build when there
are undefined symbols during compilation. I'm not sure if this is a
"feature" of the kernel build system or fglrx's makefiles... I'll have a
look if I find some time.
Regarding this specific problem, apparently these two functions were
already no-ops in 2.6.13, so we just need to stop calling them on
kernels that don't have them. The attached patch should do the trick,
please test.
--
Ciao, Flavio
--- firegl_public.c-orig 2005-10-24 18:21:59.000000000 +0200
+++ firegl_public.c 2005-11-03 15:55:30.000000000 +0100
@@ -2221,12 +2221,20 @@
#ifdef __x86_64__
int ATI_API_CALL __ke_register_ioctl32_conversion(unsigned int cmd, int (*handler)(unsigned int, unsigned int, unsigned long, struct file*))
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
+ return 0;
+#else
return register_ioctl32_conversion(cmd, handler);
+#endif
}
void ATI_API_CALL __ke_unregister_ioctl32_conversion(unsigned int cmd)
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
+ return;
+#else
unregister_ioctl32_conversion(cmd);
+#endif
}
#endif