diff options
Diffstat (limited to 'scripts/mod/modpost.c')
| -rw-r--r-- | scripts/mod/modpost.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 3f01fd908730..c4e7d1510f9d 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c | |||
| @@ -132,8 +132,10 @@ static struct module *new_module(char *modname) | |||
| 132 | /* strip trailing .o */ | 132 | /* strip trailing .o */ |
| 133 | s = strrchr(p, '.'); | 133 | s = strrchr(p, '.'); |
| 134 | if (s != NULL) | 134 | if (s != NULL) |
| 135 | if (strcmp(s, ".o") == 0) | 135 | if (strcmp(s, ".o") == 0) { |
| 136 | *s = '\0'; | 136 | *s = '\0'; |
| 137 | mod->is_dot_o = 1; | ||
| 138 | } | ||
| 137 | 139 | ||
| 138 | /* add to list */ | 140 | /* add to list */ |
| 139 | mod->name = p; | 141 | mod->name = p; |
| @@ -587,7 +589,8 @@ static void handle_modversions(struct module *mod, struct elf_info *info, | |||
| 587 | unsigned int crc; | 589 | unsigned int crc; |
| 588 | enum export export; | 590 | enum export export; |
| 589 | 591 | ||
| 590 | if (!is_vmlinux(mod->name) && strncmp(symname, "__ksymtab", 9) == 0) | 592 | if ((!is_vmlinux(mod->name) || mod->is_dot_o) && |
| 593 | strncmp(symname, "__ksymtab", 9) == 0) | ||
| 591 | export = export_from_secname(info, get_secindex(info, sym)); | 594 | export = export_from_secname(info, get_secindex(info, sym)); |
| 592 | else | 595 | else |
| 593 | export = export_from_sec(info, get_secindex(info, sym)); | 596 | export = export_from_sec(info, get_secindex(info, sym)); |
