X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fsparc%2Fkernel%2Fmodule.c;h=787d5f1347ec48de6538bc46e44d712acbddab40;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=7931d6f92819eb768c78792e336af88219b11892;hpb=daddc0d38b3571bed170afa273a49a0eba090c1e;p=linux-2.6.git diff --git a/arch/sparc/kernel/module.c b/arch/sparc/kernel/module.c index 7931d6f92..787d5f134 100644 --- a/arch/sparc/kernel/module.c +++ b/arch/sparc/kernel/module.c @@ -10,6 +10,7 @@ #include #include #include +#include void *module_alloc(unsigned long size) { @@ -37,7 +38,7 @@ void module_free(struct module *mod, void *module_region) } /* Make generic code ignore STT_REGISTER dummy undefined symbols, - * and replace references to .func with func as in ppc64's dedotify. + * and replace references to .func with _Func */ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, @@ -64,8 +65,10 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, sym[i].st_shndx = SHN_ABS; else { char *name = strtab + sym[i].st_name; - if (name[0] == '.') - memmove(name, name+1, strlen(name)); + if (name[0] == '.') { + name[0] = '_'; + name[1] = toupper(name[1]); + } } } }