On Tue, 12 Jan 2016 23:14:22 +1100 Michael Ellerman <m...@ellerman.id.au> wrote:
> From: Ulrich Weigand <ulrich.weig...@de.ibm.com> > > If a text section starts out with a data blob before the first > function start label, disassembly parsing doing in recordmcount.pl > gets confused on powerpc, leading to creation of corrupted module > objects. > > This was not a problem so far since the compiler would never create > such text sections. However, this has changed with a recent change > in GCC 6 to support distances of > 2GB between a function and its > assoicated TOC in the ELFv2 ABI, exposing this problem. > > There is already code in recordmcount.pl to handle such data blobs > on the sparc64 platform. This patch uses the same method to handle > those on powerpc as well. > > Cc: sta...@vger.kernel.org > Signed-off-by: Ulrich Weigand <ulrich.weig...@de.ibm.com> > Signed-off-by: Michael Ellerman <m...@ellerman.id.au> > --- > scripts/recordmcount.pl | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > Steve can we get an ack for this one, to go via powerpc? cheers Acked-by: Steven Rostedt <rost...@goodmis.org> -- Steve > > diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl > index 826470d7f000..96e2486a6fc4 100755 > --- a/scripts/recordmcount.pl > +++ b/scripts/recordmcount.pl > @@ -263,7 +263,8 @@ if ($arch eq "x86_64") { > > } elsif ($arch eq "powerpc") { > $local_regex = "^[0-9a-fA-F]+\\s+t\\s+(\\.?\\S+)"; > - $function_regex = "^([0-9a-fA-F]+)\\s+<(\\.?.*?)>:"; > + # See comment in the sparc64 section for why we use '\w'. > + $function_regex = "^([0-9a-fA-F]+)\\s+<(\\.?\\w*?)>:"; > $mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\s\\.?_mcount\$"; > > if ($bits == 64) { _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev