Message ID | 87bn7vm1pg.fsf@linux-m68k.org (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Fri, 2016-05-02 at 18:50:03 UTC, Andreas Schwab wrote: > Since binutils 2.26 BFD is doing suffix merging on STRTAB sections. But > dedotify modifies the symbol names in place, which can also modify > unrelated symbols with a name that matches a suffix of a dotted name. To > remove the leading dot of a symbol name we can just increment the pointer > into the STRTAB section instead. > > Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> Applied to powerpc fixes, thanks. https://git.kernel.org/powerpc/c/f15838e9cac8f78f0cc506529b cheers
diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c index ac64ffd..08b7a40 100644 --- a/arch/powerpc/kernel/module_64.c +++ b/arch/powerpc/kernel/module_64.c @@ -340,7 +340,7 @@ static void dedotify(Elf64_Sym *syms, unsigned int numsyms, char *strtab) if (name[0] == '.') { if (strcmp(name+1, "TOC.") == 0) syms[i].st_shndx = SHN_ABS; - memmove(name, name+1, strlen(name)); + syms[i].st_name++; } } }
Since binutils 2.26 BFD is doing suffix merging on STRTAB sections. But dedotify modifies the symbol names in place, which can also modify unrelated symbols with a name that matches a suffix of a dotted name. To remove the leading dot of a symbol name we can just increment the pointer into the STRTAB section instead. Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> --- arch/powerpc/kernel/module_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)