[PATCH v3 3/4] powerpc/kbuild: Use flags variables rather than overriding LD/CC/AS
Michael Ellerman
mpe at ellerman.id.au
Tue May 15 15:24:21 AEST 2018
Steven Rostedt <rostedt at goodmis.org> writes:
> On Mon, 14 May 2018 13:52:27 +1000
> Nicholas Piggin <npiggin at gmail.com> wrote:
>> The powerpc toolchain can compile combinations of 32/64 bit and
>> big/little endian, so it's convenient to consider, e.g.,
>>
>> `CC -m64 -mbig-endian`
>>
>> To be the C compiler for the purpose of invoking it to build target
>> artifacts. So overriding the the CC variable to include thse flags
...
>> diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
>> index 191eb949d52c..3c67304a7425 100755
>> --- a/scripts/recordmcount.pl
>> +++ b/scripts/recordmcount.pl
>> @@ -274,6 +274,13 @@ if ($arch eq "x86_64") {
>> if ($bits == 64) {
>> $type = ".quad";
>> }
>> + if ($endian eq "big") {
>> + $cc .= " -mbig-endian ";
>> + $ld .= " -EB ";
>> + } else {
>> + $cc .= " -mlittle-endian ";
>> + $ld .= " -EL ";
>> + }
>
> Have you tried building all current archs with function tracing enabled
> to make sure this doesn't break any of them? I can do it if you want.
We shouldn't need to should we? This is only touching powerpc specific
code (if I understand perl that is).
eg:
$ git diff -U9 scripts/recordmcount.pl
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index 191eb949d52c..3c67304a7425 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -268,18 +268,25 @@ if ($arch eq "x86_64") {
} elsif ($arch eq "powerpc") {
$local_regex = "^[0-9a-fA-F]+\\s+t\\s+(\\.?\\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) {
$type = ".quad";
}
+ if ($endian eq "big") {
+ $cc .= " -mbig-endian ";
+ $ld .= " -EB ";
+ } else {
+ $cc .= " -mlittle-endian ";
+ $ld .= " -EL ";
+ }
} elsif ($arch eq "arm") {
$alignment = 2;
$section_type = '%progbits';
$mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*R_ARM_(CALL|PC24|THM_CALL)" .
"\\s+(__gnu_mcount_nc|mcount)\$";
} elsif ($arch eq "arm64") {
$alignment = 3;
cheers
More information about the Linuxppc-dev
mailing list