[RFC PATCH v2 0/7] objtool: Enable and implement --mcount option on powerpc

Sathvika Vasireddy sv at linux.vnet.ibm.com
Thu May 26 04:12:49 AEST 2022


On 25/05/22 23:09, Christophe Leroy wrote:
> Hi Sathvika,
>
> Le 25/05/2022 à 12:14, Sathvika Vasireddy a écrit :
>> Hi Christophe,
>>
>> On 24/05/22 18:47, Christophe Leroy wrote:
>>> This draft series adds PPC32 support to Sathvika's series.
>>> Verified on pmac32 on QEMU.
>>>
>>> It should in principle also work for PPC64 BE but for the time being
>>> something goes wrong. In the beginning I had a segfaut hence the first
>>> patch. But I still get no mcount section in the files.
>> Since PPC64 BE uses older elfv1 ABI, it prepends a dot to symbols.
>> And so, the relocation records in case of PPC64BE point to "._mcount",
>> rather than just "_mcount". We should be looking for "._mcount" to be
>> able to generate mcount_loc section in the files.
>>
>> Like:
>>
>> diff --git a/tools/objtool/check.c b/tools/objtool/check.c
>> index 70be5a72e838..7da5bf8c7236 100644
>> --- a/tools/objtool/check.c
>> +++ b/tools/objtool/check.c
>> @@ -2185,7 +2185,7 @@ static int classify_symbols(struct objtool_file
>> *file)
>>                           if (arch_is_retpoline(func))
>>                                   func->retpoline_thunk = true;
>>
>> -                       if ((!strcmp(func->name, "__fentry__")) ||
>> (!strcmp(func->name, "_mcount")))
>> +                       if ((!strcmp(func->name, "__fentry__")) ||
>> (!strcmp(func->name, "_mcount")) || (!strcmp(func->name, "._mcount")))
>>                                   func->fentry = true;
>>
>>                           if (is_profiling_func(func->name))
>>
>>
>> With this change, I could see __mcount_loc section being
>> generated in individual ppc64be object files.
>>
> Or should we implement an equivalent of arch_ftrace_match_adjust() in
> objtool ?

Yeah, I think it makes more sense if we make it arch specific.
Thanks for the suggestion. I'll make this change in next revision :-)

- Sathvika




More information about the Linuxppc-dev mailing list