Summary: | media-libs/svgalib-1.9.25 + sys-kernel/gentoo-sources-2.6.26 - error: implicit declaration of function ‘class_device_create’ | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Marco Leogrande <dark.knight.ita> |
Component: | [OLD] Core system | Assignee: | SpanKY <vapier> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | andriy155, gengor, gentoo, jesse, kamensky.fb, orodruinlair, patrizio.bassi, pcmoore, proteuss |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 232070 | ||
Attachments: |
my emerge-info and kernel config
change to kernel26compat.h updated patch to kernel26compat.h My emerge --info and kernel config |
Description
Marco Leogrande
2008-07-17 21:01:13 UTC
I assume you also configured and built that kernel... Your steps to reproduce omit that information. Yes, I have built the kernel before trying to reinstall svgalib. I forgot to explicitly write it, sorry about that. Created attachment 160864 [details]
my emerge-info and kernel config
Exactly the same problem here. I have created an attachment with my emerge --info and kernel config (http://bugs.gentoo.org/attachment.cgi?id=160864) This has been removed from 2.6.26 kernel sources in file drivers/base/class.c 692 struct class_device *class_device_create(struct class *cls, 693 struct class_device *parent, 694 dev_t devt, 695 struct device *device, 696 const char *fmt, ...) and it's referenced in file kernel/svgalib_helper/kernel26compat.h 98 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15) 99 # define SLH_SYSFS_ADD_CONTROL \ 100 class_device_create(svgalib_helper_class, \ 101 MKDEV(SVGALIB_HELPER_MAJOR, 0), \ 102 NULL, "svga"); 103 104 # define SLH_SYSFS_ADD_DEVICE(_name, _minor) \ 105 class_device_create(svgalib_helper_class, \ 106 MKDEV(SVGALIB_HELPER_MAJOR, _minor), \ 107 &sh_pci_devs[_minor]->dev->dev, _name); 108 #else /* 2.6.15 changed class_device_create */ 109 # define SLH_SYSFS_ADD_CONTROL \ 110 class_device_create(svgalib_helper_class, NULL, \ 111 MKDEV(SVGALIB_HELPER_MAJOR, 0), \ 112 NULL, "svga"); 113 114 # define SLH_SYSFS_ADD_DEVICE(_name, _minor) \ 115 class_device_create(svgalib_helper_class, NULL, \ 116 MKDEV(SVGALIB_HELPER_MAJOR, _minor), \ 117 &sh_pci_devs[_minor]->dev->dev, _name); 118 #endif /* 2.6.15 */ Created attachment 161385 [details, diff]
change to kernel26compat.h
class_device_create has been removed in version 2.6.26
use device_create instead
(In reply to comment #6) Patch worked for me. Excellent! Thank you for your help. (In reply to comment #6) The same here, error has gone. Thank you! The provided patch fixes compilation here too, thanks. Anyway, I've not tested the library yet. (In reply to comment #6) After further tests the patch only lets it compile, not work correctly. Although a few of the programs that depend on it to build still seem to work correctly. (In reply to comment #10) > After further tests the patch only lets it compile, not work correctly. Can you please give some detail regarding the failure to work properly. (In reply to comment #11) trying to load the kernel modules svgalib_helper results in a seg fault Created attachment 161475 [details, diff]
updated patch to kernel26compat.h
This patch allows the kernel module svgalib_helper to load.
(In reply to comment #13) Patch works svgalib_helper modprobes ok. Once again thank you. can you push into the official portage? Created attachment 162378 [details]
My emerge --info and kernel config
Works for me as well (vanilla-sources-2.6.26.1, Pentium-M and i810)
added to the tree, thanks |