X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=scripts%2Fmod%2Fmodpost.c;h=c827309c29cf727bae89d42a4b6e38164b9d72a7;hp=7249ab44f44ccf7c5854aea03cb6b4691a14f8f7;hb=772320e84588dcbe1600ffb83e5f328f2209ac2a;hpb=1ce53adf13a54375d2a5c7cdbe341b2558389615 diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 7249ab44f44c..c827309c29cf 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -550,6 +550,11 @@ static int ignore_undef_symbol(struct elf_info *info, const char *symname) strncmp(symname, "_rest32gpr_", sizeof("_rest32gpr_") - 1) == 0 || strncmp(symname, "_save32gpr_", sizeof("_save32gpr_") - 1) == 0) return 1; + if (info->hdr->e_machine == EM_PPC64) + /* Special register function linked on all modules during final link of .ko */ + if (strncmp(symname, "_restgpr0_", sizeof("_restgpr0_") - 1) == 0 || + strncmp(symname, "_savegpr0_", sizeof("_savegpr0_") - 1) == 0) + return 1; /* Do not ignore this symbol */ return 0; } @@ -1392,7 +1397,7 @@ static unsigned int *reloc_location(struct elf_info *elf, int section = shndx2secindex(sechdr->sh_info); return (void *)elf->hdr + sechdrs[section].sh_offset + - (r->r_offset - sechdrs[section].sh_addr); + r->r_offset - sechdrs[section].sh_addr; } static int addend_386_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)