Hi Andrew, hi Chritoph, On Mon, 7 Jan 2008 11:38:31 -0800, Andrew Morton wrote:Interesting theory... So I tried to split half of the code of dmi_id_init() to a subfunction and bingo! gcc 3.2.3 is now able to build it properly. Thanks for the hint! Here's a workaround for dmi-id. Subject: Fix for __you_cannot_kmalloc_that_much failure in dmi-id gcc 3.2 has a hard time coping with the code in dmi_id_init(): drivers/built-in.o(.init.text+0x789e): In function `dmi_id_init': : undefined reference to `__you_cannot_kmalloc_that_much' make: *** [.tmp_vmlinux1] Error 1 Moving half of the code to a separate function seems to help. This is a no-op for gcc 4.1 which will successfully inline the code anyway. Signed-off-by: Jean Delvare <khali@linux-fr.org> --- drivers/firmware/dmi-id.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) --- linux-2.6.24-rc7.orig/drivers/firmware/dmi-id.c 2007-10-24 09:59:28.000000000 +0200 +++ linux-2.6.24-rc7/drivers/firmware/dmi-id.c 2008-01-08 10:32:00.000000000 +0100 @@ -175,12 +175,11 @@ static struct device *dmi_dev; extern int dmi_available; -static int __init dmi_id_init(void) +/* In a separate function to keep gcc 3.2 happy - do NOT merge this in + dmi_id_init! */ +static void __init dmi_id_init_attr_table(void) { - int ret, i; - - if (!dmi_available) - return -ENODEV; + int i; /* Not necessarily all DMI fields are available on all * systems, hence let's built an attribute table of just @@ -205,6 +204,16 @@ static int __init dmi_id_init(void) ADD_DMI_ATTR(chassis_serial, DMI_CHASSIS_SERIAL); ADD_DMI_ATTR(chassis_asset_tag, DMI_CHASSIS_ASSET_TAG); sys_dmi_attributes[i++] = &sys_dmi_modalias_attr.attr; +} + +static int __init dmi_id_init(void) +{ + int ret; + + if (!dmi_available) + return -ENODEV; + + dmi_id_init_attr_table(); ret = class_register(&dmi_class); if (ret) I'll now check if I can do something similar for snd-mixer-oss. -- Jean Delvare --
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Con Kolivas | Re: [ANNOUNCE] RSDL completely fair starvation free interactive cpu scheduler |
| David Miller | [GIT]: Networking |
| Alan Stern | Re: [linux-pm] Re: Hibernation considerations |
git: | |
| Junio C Hamano | Re: git-diff on touched files: bug or feature? |
| Johannes Schindelin | Re: MinGW port - initial work uploaded |
| Kay Sievers | Re: Rss produced by git is not valid xml? |
| Marek Zawirski | [EGIT PATCH 00/31] Push GUI, GUI improvements, various jgit stuff |
| frantisek holop | nptd regression in 4.2 |
| Thilo Pfennig | OpenBSD project goals |
| Luca Dell'Oca | Authenticate squid in Active Directory |
| Richard Stallman | Real men don't attack straw men |
| Julius Volz | [PATCHv3 00/24] Add first IPv6 support to IPVS |
| Paul Moore | [RFC PATCH v4 01/14] netlabel: Remove unneeded in-kernel API functions |
| David Miller | Re: [PATCH net-2.6.25 1/10][NETNS][FRAGS]: Move ctl tables around. |
| Wenji Wu | Re: RE: A Linux TCP SACK Question |
