Thread (3 messages) flat view 3 messages, 2 authors, 2008-06-12

Re: [GIT PULL] one kbuild fix for powerpc

From: roel kluin <hidden>
Date: 2008-06-12 14:04:17
Also in: linux-kbuild, lkml

2008/6/12 Sam Ravnborg [off-list ref]:
quoted hunk ↗ jump to hunk
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 508c589..b763aba 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -467,6 +467,26 @@ static void parse_elf_finish(struct elf_info *info)
       release_file(info->hdr, info->size);
 }

+static int ignore_undef_symbol(struct elf_info *info, const char *symname)
+{
+       /* ignore __this_module, it will be resolved shortly */
+       if (strcmp(symname, MODULE_SYMBOL_PREFIX "__this_module") == 0)
+               return 1;
+       /* ignore global offset table */
+       if (strcmp(symname, "_GLOBAL_OFFSET_TABLE_") == 0)
+               return 1;
+       if (info->hdr->e_machine == EM_PPC)
+               /* Special register function linked on all modules during final link of .ko */
+               if (strncmp(symname, "_restgpr_", sizeof("_restgpr_") - 1) == 0 ||
+                   strncmp(symname, "_savegpr_", sizeof("_savegpr_") - 1) == 0 ||
+                   strncmp(symname, "_rest32gpr_", sizeof("_rest32gpr_") - 1) == 0 ||
+                   strncmp(symname, "_save32gpr_", sizeof("_save32gpr_") - 1) == 0) {
+                       return 1;
+       }
Either the indentation is wrong, or you want to move the opening curly
bracket upwards.
quoted hunk ↗ jump to hunk
+       /* Do not ignore this symbol */
+       return 0;
+}
+
 #define CRC_PFX     MODULE_SYMBOL_PREFIX "__crc_"
 #define KSYMTAB_PFX MODULE_SYMBOL_PREFIX "__ksymtab_"
@@ -493,11 +513,7 @@ static void handle_modversions(struct module *mod, struct elf_info *info,
               if (ELF_ST_BIND(sym->st_info) != STB_GLOBAL &&
                   ELF_ST_BIND(sym->st_info) != STB_WEAK)
                       break;
-               /* ignore global offset table */
-               if (strcmp(symname, "_GLOBAL_OFFSET_TABLE_") == 0)
-                       break;
-               /* ignore __this_module, it will be resolved shortly */
-               if (strcmp(symname, MODULE_SYMBOL_PREFIX "__this_module") == 0)
+               if (ignore_undef_symbol(info, symname))
                       break;
 /* cope with newer glibc (2.3.4 or higher) STT_ definition in elf.h */
 #if defined(STT_REGISTER) || defined(STT_SPARC_REGISTER)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help