linux-mips
[Top] [All Lists]

[PATCH v2 3/6] add an endian argument to scripts/recordmcount.pl

To: linux-mips@linux-mips.org, linux-kernel@vger.kernel.org
Subject: [PATCH v2 3/6] add an endian argument to scripts/recordmcount.pl
From: wuzhangjin@gmail.com
Date: Fri, 29 May 2009 23:04:50 +0800
Cc: Wu Zhangjin <wuzj@lemote.com>, Steven Rostedt <rostedt@goodmis.org>, Ralf Baechle <ralf@linux-mips.org>, Ingo Molnar <mingo@elte.hu>, Andrew Morton <akpm@linux-foundation.org>, Frederic Weisbecker <fweisbec@gmail.com>, Thomas Gleixner <tglx@linutronix.de>, Nicholas Mc Guire <der.herr@hofr.at>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer:in-reply-to:references; bh=xD+EfyvJ1cJ95VWtO9dUklc0lDMhIT4QpIx5YI2E1jI=; b=nNm1sTN8ycfYOiZ6+xPUBNV4OXAyekpfth+ONY44ryJuITsUANks95Lns6hk6yTDE8 dg4/+BbCrnacMZO2uZjF8XPVVOT7KzQA/DcEmOPT2RKYP+4apdlvDG6gVv7c6T2E3vh/ E0cwKRR5yVnJ+O/gd9VNfqCG/LHPAKG+jmwd0=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; b=unrhXlGN9Z5FZGRPKACBCwUTx+H8Xh3bQvLsdQ2xdt0Eor+d7QCdGnWV3c90hQKuh9 zX+i3Nv9Ui5yyLlnGSQT+p2ydQqmbPZ/1ENB6sCDsrpioNA5kaC80oS+1Qj1ADwvdNQn VgAQGxisuibRG49Q7KCKreho24MHcCDOVdxHA=
In-reply-to: <cover.1243604390.git.wuzj@lemote.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <cover.1243604390.git.wuzj@lemote.com>
Sender: linux-mips-bounce@linux-mips.org
From: Wu Zhangjin <wuzj@lemote.com>

mips architecture need this argument to handle big/little endian
differently.

Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Wu Zhangjin <wuzj@lemote.com>
---
 scripts/Makefile.build  |    1 +
 scripts/recordmcount.pl |   21 +++++++++++++++------
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 5c4b7a4..548d575 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -207,6 +207,7 @@ endif
 
 ifdef CONFIG_FTRACE_MCOUNT_RECORD
 cmd_record_mcount = perl $(srctree)/scripts/recordmcount.pl "$(ARCH)" \
+       "$(if $(CONFIG_CPU_BIG_ENDIAN),big,little)" \
        "$(if $(CONFIG_64BIT),64,32)" \
        "$(OBJDUMP)" "$(OBJCOPY)" "$(CC)" "$(LD)" "$(NM)" "$(RM)" "$(MV)" \
        "$(if $(part-of-module),1,0)" "$(@)";
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index a5d2ace..57a2b6a 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -100,13 +100,13 @@ $P =~ s@.*/@@g;
 
 my $V = '0.1';
 
-if ($#ARGV < 7) {
-       print "usage: $P arch bits objdump objcopy cc ld nm rm mv is_module 
inputfile\n";
+if ($#ARGV < 8) {
+       print "usage: $P arch endian bits objdump objcopy cc ld nm rm mv 
is_module inputfile\n";
        print "version: $V\n";
        exit(1);
 }
 
-my ($arch, $bits, $objdump, $objcopy, $cc,
+my ($arch, $endian, $bits, $objdump, $objcopy, $cc,
     $ld, $nm, $rm, $mv, $is_module, $inputfile) = @ARGV;
 
 # This file refers to mcount and shouldn't be ftraced, so lets' ignore it
@@ -216,9 +216,18 @@ if ($arch eq "x86_64") {
 
 } elsif ($arch eq "mips") {
        $mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\s_mcount\$";
-       $ld .= " -melf".$bits."btsmip";
+       $objdump .= " -Melf-trad".$endian."mips ";
 
-       $cc .= " -mno-abicalls -fno-pic ";
+       if ($endian eq "big") {
+               $endian = " -EB ";
+               $ld .= " -melf".$bits."btsmip";
+       } else {
+               $endian = " -EL ";
+               $ld .= " -melf".$bits."ltsmip";
+       }
+
+       $cc .= " -mno-abicalls -fno-pic -mabi=" . $bits . $endian;
+       $ld .= $endian;
 
     if ($bits == 64) {
                $type = ".dword";
-- 
1.6.0.4


<Prev in Thread] Current Thread [Next in Thread>