From: "Liming Gao" <liming.gao@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
"Gao, Liming" <liming.gao@intel.com>,
Jessica Clarke <jrtc27@jrtc27.com>
Cc: "leif@nuviainc.com" <leif@nuviainc.com>,
"Kinney, Michael D" <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] [PATCH] MdePkg Base.h: Delete prototype for __builtin_return_address
Date: Thu, 23 Jul 2020 01:10:34 +0000 [thread overview]
Message-ID: <MWHPR11MB1630F9EEE09E54F652BEC7ED80760@MWHPR11MB1630.namprd11.prod.outlook.com> (raw)
In-Reply-To: <1623A39CDBDFA4B6.5706@groups.io>
Jess:
In the commit message, below line is too long that can't pass patch check. Can you move this line from the commit message to BZ?
[1] https://github.com/llvm/llvm-project/commit/41af97137572ad6d4dafc872e7ecf6bbb08d4984
Thanks
Liming
-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Liming Gao
Sent: 2020年7月21日 10:30
To: Jessica Clarke <jrtc27@jrtc27.com>
Cc: devel@edk2.groups.io; leif@nuviainc.com; Kinney, Michael D <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] [PATCH] MdePkg Base.h: Delete prototype for __builtin_return_address
Jess:
OK. Seemly, there is no impact with this change. Reviewed-by: Liming Gao <liming.gao@intel.com>
Thanks
Liming
-----Original Message-----
From: Jessica Clarke <jrtc27@jrtc27.com>
Sent: 2020年7月20日 23:06
To: Gao, Liming <liming.gao@intel.com>
Cc: devel@edk2.groups.io; leif@nuviainc.com; Kinney, Michael D <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] [PATCH] MdePkg Base.h: Delete prototype for __builtin_return_address
It will always look like void *__builtin_return_address(unsigned) and work like that, just that under the hood it's being implemented slightly differently, which has the unfortunate side-effect of triggering this bug. We've been compiling the embedded EDK2 in our CheriBSD with that line deleted for years now with no issue.
Jess
> On 20 Jul 2020, at 15:58, Gao, Liming <liming.gao@intel.com> wrote:
>
> Clarke:
> Do you mean CLANG compiler may have the different prototype for __builtin_return_address()? If so, dose __builtin_return_address (L) always work?
>
> Thanks
> Liming
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Leif
>> Lindholm
>> Sent: Monday, July 20, 2020 10:05 PM
>> To: Jessica Clarke <jrtc27@jrtc27.com>
>> Cc: devel@edk2.groups.io; Kinney, Michael D
>> <michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>
>> Subject: Re: [edk2-devel] [PATCH] MdePkg Base.h: Delete prototype for
>> __builtin_return_address
>>
>> +Mike, Liming
>>
>> On Mon, Jul 20, 2020 at 14:49:46 +0100, Jessica Clarke wrote:
>>> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1004
>>>
>>> Being a compiler builtin, the type of __builtin_return_address is
>>> already known to the compiler so no prototype is needed. Clang also
>>> errors out when redeclaring certain builtins like this[1], though
>>> currently only for ones with custom type checking. At the moment,
>>> __builtin_return_address does not use custom type checking and so
>>> does not trigger this error, however, the CHERI fork of LLVM, which
>>> will form the basis of the toolchain for Arm's experimental Morello
>>> platform, does use custom type checking for it, and so gives an
>>> error. Thus, simply delete the unnecessary line.
>>>
>>> [1]
>>> https://github.com/llvm/llvm-project/commit/41af97137572ad6d4dafc872
>>> e7ecf6bbb08d4984
>>>
>>> Cc: Leif Lindholm <leif@nuviainc.com>
>>> Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com>
>>> ---
>>> MdePkg/Include/Base.h | 1 -
>>> 1 file changed, 1 deletion(-)
>>>
>>> diff --git a/MdePkg/Include/Base.h b/MdePkg/Include/Base.h index
>>> 85a091b9d5..8e4271f6ea 100644
>>> --- a/MdePkg/Include/Base.h
>>> +++ b/MdePkg/Include/Base.h
>>> @@ -1273,7 +1273,6 @@ typedef UINTN RETURN_STATUS;
>>> **/
>>> #define RETURN_ADDRESS(L) ((L == 0) ? _ReturnAddress() : (VOID *) 0)
>>> #elif defined (__GNUC__) || defined (__clang__)
>>> - void * __builtin_return_address (unsigned int level);
>>
>> Agreed this looks somewhat bonkers.
>> And I can't see any ill effects from dropping it, so:
>> Reviewed-by: Leif Lindholm <leif@nuviainc.com>
>>
>>> /**
>>> Get the return address of the calling function.
>>>
>>> --
>>> 2.20.1
>>>
>>
>>
>
next prev parent reply other threads:[~2020-07-23 1:10 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-20 13:49 [PATCH] MdePkg Base.h: Delete prototype for __builtin_return_address Jessica Clarke
2020-07-20 14:04 ` Leif Lindholm
2020-07-20 14:58 ` [edk2-devel] " Liming Gao
2020-07-20 15:06 ` Jessica Clarke
2020-07-21 2:29 ` Liming Gao
[not found] ` <1623A39CDBDFA4B6.5706@groups.io>
2020-07-23 1:10 ` Liming Gao [this message]
2020-07-27 1:58 ` [PATCH v2] " Jessica Clarke
2020-07-27 2:17 ` Liming Gao
[not found] ` <16257A6ED97D2A8D.26462@groups.io>
2020-07-28 0:26 ` [edk2-devel] " Liming Gao
2020-07-21 1:59 ` [edk2-devel] [PATCH] " Zhiguang Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=MWHPR11MB1630F9EEE09E54F652BEC7ED80760@MWHPR11MB1630.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox