* [PATCH] powerpc: fix dedotify for binutils >= 2.26
@ 2016-02-05 18:50 Andreas Schwab
2016-02-06 23:45 ` Anton Blanchard
2016-02-09 12:16 ` Michael Ellerman
0 siblings, 2 replies; 5+ messages in thread
From: Andreas Schwab @ 2016-02-05 18:50 UTC (permalink / raw)
To: linuxppc-dev; +Cc: linux-kernel
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(-)
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++;
}
}
}
--
2.7.0
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] powerpc: fix dedotify for binutils >= 2.26
2016-02-05 18:50 [PATCH] powerpc: fix dedotify for binutils >= 2.26 Andreas Schwab
@ 2016-02-06 23:45 ` Anton Blanchard
2016-02-09 12:16 ` Michael Ellerman
1 sibling, 0 replies; 5+ messages in thread
From: Anton Blanchard @ 2016-02-06 23:45 UTC (permalink / raw)
To: Andreas Schwab; +Cc: linuxppc-dev, linux-kernel, Alan Modra
> 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 <schwab@linux-m68k.org>
I think we should get it into stable too.
Anton
> ---
> 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++;
> }
> }
> }
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: powerpc: fix dedotify for binutils >= 2.26
2016-02-05 18:50 [PATCH] powerpc: fix dedotify for binutils >= 2.26 Andreas Schwab
2016-02-06 23:45 ` Anton Blanchard
@ 2016-02-09 12:16 ` Michael Ellerman
1 sibling, 0 replies; 5+ messages in thread
From: Michael Ellerman @ 2016-02-09 12:16 UTC (permalink / raw)
To: Andreas Schwab, linuxppc-dev; +Cc: linux-kernel
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] powerpc: Fix dedotify for binutils >= 2.26
2016-03-09 12:13 [PATCH] powerpc: Fix " Michael Ellerman
@ 2016-03-09 16:14 ` Ben Hutchings
0 siblings, 0 replies; 5+ messages in thread
From: Ben Hutchings @ 2016-03-09 16:14 UTC (permalink / raw)
To: Michael Ellerman, stable; +Cc: amodra
[-- Attachment #1: Type: text/plain, Size: 1614 bytes --]
On Wed, 2016-03-09 at 23:13 +1100, Michael Ellerman wrote:
> 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>
> ---
> 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 #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] powerpc: Fix dedotify for binutils >= 2.26
@ 2016-03-09 12:13 Michael Ellerman
2016-03-09 16:14 ` Ben Hutchings
0 siblings, 1 reply; 5+ messages in thread
From: Michael Ellerman @ 2016-03-09 12:13 UTC (permalink / raw)
To: stable; +Cc: ben, amodra
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>
---
arch/powerpc/kernel/module_64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Backport to v4.4.y
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++;
}
}
}
--
2.5.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-03-09 16:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-05 18:50 [PATCH] powerpc: fix dedotify for binutils >= 2.26 Andreas Schwab
2016-02-06 23:45 ` Anton Blanchard
2016-02-09 12:16 ` Michael Ellerman
2016-03-09 12:13 [PATCH] powerpc: Fix " Michael Ellerman
2016-03-09 16:14 ` Ben Hutchings
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.