Jordan:
  If enable -mabi=ms, EFIAPI and ms_var_list will not be required to be 
defined, right? Do you verify it on X64 arch?

Thanks
Liming
>-----Original Message-----
>From: Laszlo Ersek [mailto:[email protected]]
>Sent: Wednesday, February 22, 2017 8:00 AM
>To: Justen, Jordan L <[email protected]>; Anthony PERARD
><[email protected]>; Rebecca Cran <[email protected]>
>Cc: Gao, Liming <[email protected]>; Zhu, Yonghong
><[email protected]>; Ard Biesheuvel <[email protected]>;
>[email protected]; Konrad Rzeszutek Wilk <[email protected]>
>Subject: Re: [PATCH 0/4] Fix runtime issue in XenBusDxe when compiled with
>GCC5
>
>On 02/21/17 23:45, Jordan Justen wrote:
>> On 2017-02-21 11:08:24, Rebecca Cran wrote:
>>> On 2/21/2017 12:02 PM, Laszlo Ersek wrote:
>>>
>>>> But in this case, the full edk2 codebase has to be grepped for
>>>> VA_LIST-taking functions, and all of them must be flipped to EFIAPI, if
>>>> they currently aren't EFIAPI. Covering just XenStoreVSPrint() seems
>>>> incomplete. (Note: CryptoPkg/Library/OpensslLib is an exception.)
>>>
>>> I think this was discussed previously but I can't remember: is there a
>>> reason for not just compiling everything with -mabi=ms ?
>>>
>>
>> Originally GCC didn't support -mabi=ms. Once it gained support, it
>> then produced larger executables. Nowadays (and for quite some time),
>> I think it generally results in smaller executables.
>>
>> A benefit of not using -mabi=ms is that we are able to catch some
>> cases of misused EFIAPI
>
>I agree.
>
>> with a compiler warning, or unfortunately in
>> some cases with crashes or misbehaving code.
>>
>> I think the benefit of helping keep EFIAPI clean means that we should
>> continue to not use -mabi=ms for DEBUG builds.
>
>I agree (also for NOOPT builds).
>
>> But, I think it would
>> be good to get the size advantages of -mabi=ms by enabling it for
>> RELEASE builds.
>
>That sounds useful too (even though it wouldn't make the current problem go
>away).
>
>As one caveat, I believe -mabi=ms wouldn't be allowed for building OpensslLib
>even for RELEASE. See "-DNO_MSABI_VA_FUNCS" in "OpensslLib.inf":
>
>commit b2dc04a87fab89307240dc0f30b9a23bb5726c81
>Author: Ard Biesheuvel <[email protected]>
>Date:   Sun Jul 17 11:57:45 2016 +0200
>
>    CryptoPkg: set new define to avoid MS ABI VA_LIST on GCC/X64
>
>    Set the #define NO_MSABI_VA_FUNCS that will be introduced in a
>subsequent
>    patch to avoid the use of the MS ABI in variadic functions. In EDK2, such
>    functions normally require the EFIAPI modifier to be used, but for external
>    libraries such as OpenSSL, which lack these annotations, it is easier to
>    simply revert to the default SysV style VA_LIST ABI.
>
>    Contributed-under: TianoCore Contribution Agreement 1.0
>    Signed-off-by: Ard Biesheuvel <[email protected]>
>    Reviewed-by: Jordan Justen <[email protected]>
>    Tested-by: Laszlo Ersek <[email protected]>
>    Tested-By: Liming Gao <[email protected]>
>    Reviewed-by: Liming Gao <[email protected]>
>
>Thanks!
>Laszlo

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to