On Wed, 2016-03-09 at 23:13 +1100, Michael Ellerman wrote: > From: Andreas Schwab <schwab@xxxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxxx> > Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > --- > arch/powerpc/kernel/module_64.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Backport to v4.4.y Thanks. I included the same patch in Debians's package version 4.4.4-2, and the ppc64 big-endian and little-endian kernels built from that both work for me. Ben. > diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c > index 59663af9315f..e4f7d4eed20c 100644 > --- a/arch/powerpc/kernel/module_64.c > +++ b/arch/powerpc/kernel/module_64.c > @@ -335,7 +335,7 @@ static void dedotify(Elf64_Sym *syms, unsigned int numsyms, char *strtab) > 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++; > } > } > } -- Ben Hutchings When in doubt, use brute force. - Ken Thompson
Attachment:
signature.asc
Description: This is a digitally signed message part