Kernel Bug Tracker – Bug 12483
Reference to inexistent struct dmi_device_id breaks the build
Last modified: 2009-01-29 14:05:10 UTC
Latest working kernel version: 22.214.171.124
Earliest failing kernel version: 2.6.28
Distribution: Slackware 11.0
Hardware Environment: i386
Software Environment: gcc 3.4.6, GNU ld 126.96.36.199.2
Kernel build fails with either of the following errors:
drivers/hwmon/applesmc.c:1582: error: storage size of '__mod_dmi_device_table' isn't known
drivers/video/backlight/mbp_nvidia_bl.c:114: error: storage size of '__mod_dmi_device_table' isn't known
This is because MODULE_DEVICE_TABLE(dmi, ...) expands to:
extern const struct dmi_device_id __mod_dmi_device_table ...
and struct dmi_device_id doesn't exist.
Steps to reproduce:
Build kernel 2.6.28 or 2.6.29-rc2 on x86 with gcc 3.
Apparently the problem doesn't happen with gcc 4.
This problem has already been discussed:
But a patch still has to be submitted to mainline and then ported to 2.6.28-stable.
Patch sent: http://lkml.org/lkml/2009/1/27/271
Fixed in Linus' tree: