[PATCH 1/2] scripts/recordmcount.pl: support data in text section on powerpc
Steven Rostedt
rostedt at goodmis.org
Wed Jan 13 02:42:23 AEDT 2016
On Tue, 12 Jan 2016 23:14:22 +1100
Michael Ellerman <mpe at ellerman.id.au> wrote:
> From: Ulrich Weigand <ulrich.weigand at 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: stable at vger.kernel.org
> Signed-off-by: Ulrich Weigand <ulrich.weigand at de.ibm.com>
> Signed-off-by: Michael Ellerman <mpe at 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 <rostedt at 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) {
More information about the Linuxppc-dev
mailing list