Messages in this thread Patch in this message |  | | | Date | Sun, 15 Aug 2004 22:15:13 +0200 | | From | Sam Ravnborg <> | | Subject | kbuild: bogus has no CRC warning |
| |
# This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/08/15 11:54:27+02:00 sam@mars.ravnborg.org # kbuild: Bogus "has no CRC" in external module builds # # From: Pavel Roskin <proski@gnu.org> # The recent fixes for the external module build have fixed the major # breakage, but they left one annoyance unfixed. If CONFIG_MODVERSIONS is # disabled, a warning is printed for every exported symbol that is has no # CRC. For instance, I see this when compiling the standalone Orinoco # driver on Linux 2.6.6-rc3: # # *** Warning: "__orinoco_down" [/usr/local/src/orinoco/spectrum_cs.ko] has # no CRC! # *** Warning: "hermes_struct_init" [/usr/local/src/orinoco/spectrum_cs.ko] # has no CRC! # *** Warning: "free_orinocodev" [/usr/local/src/orinoco/spectrum_cs.ko] has # no CRC! # [further warnings skipped] # # I have found that the "-i" option for modpost is used for external builds, # whereas the internal modules use "-o". The "-i" option causes read_dump() # in modpost.c to be called. This function sets "modversions" variable # under some conditions that I don't understand. The comment before the # modversions declarations says: "Are we using CONFIG_MODVERSIONS?" # # Apparently modpost fails to answer this question. I think it's better to # use an explicit option rather than a kludge. # # The attached patch adds a new option "-m" that is specified if and only if # CONFIG_MODVERSIONS is enabled. The patch has been successfully tested # both with and without CONFIG_MODVERSIONS. # # Signed-off-by: Sam Ravnborg <sam@ravnborg.org> # # scripts/mod/modpost.c # 2004/08/15 11:54:12+02:00 sam@mars.ravnborg.org +4 -3 # Do not try to guess modversions - use -m option # # scripts/Makefile.modpost # 2004/08/15 11:54:12+02:00 sam@mars.ravnborg.org +2 -1 # Pass -m option to modpost if CONFIG_MODVERSIONS # diff -Nru a/scripts/Makefile.modpost b/scripts/Makefile.modpost --- a/scripts/Makefile.modpost 2004-08-15 22:14:34 +02:00 +++ b/scripts/Makefile.modpost 2004-08-15 22:14:34 +02:00 @@ -50,7 +50,8 @@ # Step 2), invoke modpost # Includes step 3,4 quiet_cmd_modpost = MODPOST - cmd_modpost = scripts/mod/modpost \ + cmd_modpost = scripts/mod/modpost \ + $(if $(CONFIG_MODVERSIONS),-m) \ $(if $(KBUILD_EXTMOD),-i,-o) $(symverfile) \ $(filter-out FORCE,$^) diff -Nru a/scripts/mod/modpost.c b/scripts/mod/modpost.c --- a/scripts/mod/modpost.c 2004-08-15 22:14:34 +02:00 +++ b/scripts/mod/modpost.c 2004-08-15 22:14:34 +02:00 @@ -343,7 +343,6 @@ crc = (unsigned int) sym->st_value; add_exported_symbol(symname + strlen(CRC_PFX), mod, &crc); - modversions = 1; } break; case SHN_UNDEF: @@ -649,7 +648,6 @@ if (!(mod = find_module(modname))) { if (is_vmlinux(modname)) { - modversions = 1; have_vmlinux = 1; } mod = new_module(NOFAIL(strdup(modname))); @@ -696,10 +694,13 @@ char *dump_read = NULL, *dump_write = NULL; int opt; - while ((opt = getopt(argc, argv, "i:o:")) != -1) { + while ((opt = getopt(argc, argv, "i:mo:")) != -1) { switch(opt) { case 'i': dump_read = optarg; + break; + case 'm': + modversions = 1; break; case 'o': dump_write = optarg; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |