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 <jrt...@jrtc27.com> Cc: devel@edk2.groups.io; l...@nuviainc.com; Kinney, Michael D <michael.d.kin...@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....@intel.com> Thanks Liming -----Original Message----- From: Jessica Clarke <jrt...@jrtc27.com> Sent: 2020年7月20日 23:06 To: Gao, Liming <liming....@intel.com> Cc: devel@edk2.groups.io; l...@nuviainc.com; Kinney, Michael D <michael.d.kin...@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....@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 <jrt...@jrtc27.com> >> Cc: devel@edk2.groups.io; Kinney, Michael D >> <michael.d.kin...@intel.com>; Gao, Liming <liming....@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 <l...@nuviainc.com> >>> Signed-off-by: Jessica Clarke <jrt...@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 <l...@nuviainc.com> >> >>> /** >>> Get the return address of the calling function. >>> >>> -- >>> 2.20.1 >>> >> >> > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#63168): https://edk2.groups.io/g/devel/message/63168 Mute This Topic: https://groups.io/mt/75682100/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-