[PATCH] kbuild: fix usage with directories containing '.o'

From: Sam Ravnborg
Date: Fri Mar 05 2004 - 17:54:46 EST


From: Daniel Mack <daniel@xxxxxxxxxx>, me

modpost unconditionally searched for ".o" assuming this is always
the suffix of the module. This fails in two cases:
a) when building external modules where any
directory include ".o" in the name.
One example is a directory named: .../cvs.alsa.org/...
b) when someone names a kernel directory so it contains ".o".
One example is drivers/scsi/aic.ok/...

case b) was triggered by renaming the directory for aic7xxx, and
modifying Makefile and Kconfig. This caused make modules to fail.

Sam

kbuild-fix-modpost.patch:
===== scripts/modpost.c 1.19 vs edited =====
--- 1.19/scripts/modpost.c Fri Feb 27 06:33:07 2004
+++ edited/scripts/modpost.c Fri Mar 5 23:42:26 2004
@@ -64,17 +64,20 @@
{
struct module *mod;
char *p;
+ size_t len;

mod = NOFAIL(malloc(sizeof(*mod)));
memset(mod, 0, sizeof(*mod));
- mod->name = NOFAIL(strdup(modname));
+ p = NOFAIL(strdup(modname));

- /* strip trailing .o */
- p = strstr(mod->name, ".o");
- if (p)
- *p = 0;
+ len = strlen(p);

+ /* strip trailing .o */
+ if (len > 2 && p[len-2] == '.' && p[len-1] == 'o')
+ p[len -2] = '\0';
+
/* add to list */
+ mod->name = NOFAIL(strdup(p));
mod->next = modules;
modules = mod;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/