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.
Thanks Andreas.
Signed-off-by: Andreas Schwab <redacted>
I think we should get it into stable too.
Anton
quoted hunk ↗ jump to hunk
---
arch/powerpc/kernel/module_64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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++;
}
}
}