| From f15838e9cac8f78f0cc506529bb9d3b9fa589c1f Mon Sep 17 00:00:00 2001 |
| From: Andreas Schwab <schwab@linux-m68k.org> |
| Date: Fri, 5 Feb 2016 19:50:03 +0100 |
| Subject: powerpc: Fix dedotify for binutils >= 2.26 |
| |
| From: Andreas Schwab <schwab@linux-m68k.org> |
| |
| commit f15838e9cac8f78f0cc506529bb9d3b9fa589c1f upstream. |
| |
| 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. |
| |
| Backport to all stables to avoid breakage when people update their |
| binutils - mpe. |
| |
| Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/powerpc/kernel/module_64.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/arch/powerpc/kernel/module_64.c |
| +++ b/arch/powerpc/kernel/module_64.c |
| @@ -192,7 +192,7 @@ static void dedotify(Elf64_Sym *syms, un |
| if (syms[i].st_shndx == SHN_UNDEF) { |
| char *name = strtab + syms[i].st_name; |
| if (name[0] == '.') |
| - memmove(name, name+1, strlen(name)); |
| + syms[i].st_name++; |
| } |
| } |
| } |