]>
Commit | Line | Data |
---|---|---|
241ffb2b GKH |
1 | From f15838e9cac8f78f0cc506529bb9d3b9fa589c1f Mon Sep 17 00:00:00 2001 |
2 | From: Andreas Schwab <schwab@linux-m68k.org> | |
3 | Date: Fri, 5 Feb 2016 19:50:03 +0100 | |
4 | Subject: powerpc: Fix dedotify for binutils >= 2.26 | |
5 | ||
6 | From: Andreas Schwab <schwab@linux-m68k.org> | |
7 | ||
8 | commit f15838e9cac8f78f0cc506529bb9d3b9fa589c1f upstream. | |
9 | ||
10 | Since binutils 2.26 BFD is doing suffix merging on STRTAB sections. But | |
11 | dedotify modifies the symbol names in place, which can also modify | |
12 | unrelated symbols with a name that matches a suffix of a dotted name. To | |
13 | remove the leading dot of a symbol name we can just increment the pointer | |
14 | into the STRTAB section instead. | |
15 | ||
16 | Backport to all stables to avoid breakage when people update their | |
17 | binutils - mpe. | |
18 | ||
19 | Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> | |
20 | Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> | |
21 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
22 | ||
23 | --- | |
24 | arch/powerpc/kernel/module_64.c | 2 +- | |
25 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
26 | ||
27 | --- a/arch/powerpc/kernel/module_64.c | |
28 | +++ b/arch/powerpc/kernel/module_64.c | |
29 | @@ -192,7 +192,7 @@ static void dedotify(Elf64_Sym *syms, un | |
30 | if (syms[i].st_shndx == SHN_UNDEF) { | |
31 | char *name = strtab + syms[i].st_name; | |
32 | if (name[0] == '.') | |
33 | - memmove(name, name+1, strlen(name)); | |
34 | + syms[i].st_name++; | |
35 | } | |
36 | } | |
37 | } |