After fix one platform issue, this patches can work in our X64 real hardware 
platform. So, I add Tested-By: Liming Gao 
<[email protected]<mailto:[email protected]>>

For the patch 6, I have given my comments. Other patches are good to me. 
Reviewed-by: Liming Gao<[email protected]>

Thanks
Liming
From: edk2-devel [mailto:[email protected]] On Behalf Of Gao, 
Liming
Sent: Monday, July 18, 2016 9:27 AM
To: Justen, Jordan L <[email protected]>; Ard Biesheuvel 
<[email protected]>; [email protected]; [email protected]; 
[email protected]; Shi, Steven <[email protected]>; Zhu, Yonghong 
<[email protected]>; Kinney, Michael D <[email protected]>; 
Bjorge, Erik C <[email protected]>
Cc: [email protected]; [email protected]; Long, Qin <[email protected]>; Ye, 
Ting <[email protected]>; Ard Biesheuvel <[email protected]>
Subject: Re: [edk2] [PATCH v3 0/9] MdePkg BaseTools: GCC optimization for X64

Jordan:
Thanks for your reminder. Yes. I will verify this patch on another real 
hardware platform.

Thanks
Liming
> -----Original Message-----
> From: Justen, Jordan L
> Sent: Monday, July 18, 2016 6:45 AM
> To: Ard Biesheuvel ; [email protected]<mailto:[email protected]>;
> [email protected]<mailto:[email protected]>; 
> [email protected]<mailto:[email protected]>; Gao, Liming ;
> Shi, Steven ; Zhu, Yonghong
> ; Kinney, Michael D
> ; Gao, Liming ; Bjorge,
> Erik C
> Cc: [email protected]<mailto:[email protected]>; 
> [email protected]<mailto:[email protected]>; Ard Biesheuvel
> ; Ye, Ting ; Long, Qin
>
> Subject: Re: [edk2] [PATCH v3 0/9] MdePkg BaseTools: GCC optimization for
> X64
>
> I tested a bit with OVMF on GCC44 and GCC49. For the series:
> Reviewed-by: Jordan Justen
>
> I wonder if Liming or Erik might want to test GCC49 on another
> (non-OVMF) platform. Possibly with some windows boot testing.
>
> On 2016-07-17 03:34:37, Ard Biesheuvel wrote:
> > This is v3 of the series to enable compiler optimization under GCC for 
> > builds
> > targetting X64. It includes a patch from Steven Shi, taken from his series 
> > to
> > introduce support for GCC 5.x and Clang 3.8/X64 to EDK2.
> >
> > The first patch fixes the issue that __builtin_unreachable() is not
> > implemented by GCC 4.4 or earlier.
> >
> > Patch #2 sets a new define for OpensslLib that we will test in patches #3
> > and #4 to inhibit the use of the MS varargs ABI when building OpenSSL,
> which
> > lacks the ms_abi attributes on its variadic functions.
> >
> > Patch #3 is Steven's patch to switch to the flavor of VA_LIST that is
> > explicitly modeled after the MS implementation. This by itself is an
> > improvement, since the open coded implementation that performs
> arithmetic
> > on the address of explicit arguments to obtain the variadic arguments is
> > fragile and difficult to maintain, and should be best avoided.
> >
> > Patch #4 ports patch #3 to EdkCompatibilityPkg
> >
> > Patch #5 enables -Os optimization for X64/RELEASE and X86/DEBUG all the
> way
> > back to GCC44. This aligns X64 with IA32, which is already built using -Os
> > for both DEBUG and RELEASE.
> >
> > Note that the reported breakage regarding the use of -Os [0] is likely
> caused
> > by the poor man's __builtin_ms_va_list (NO_BUILTIN_VA_FUNCS) that we
> used for
> > GCC/X64 before Steven's patch above switches us to a properly defined
> builtin
> > type. (The poor man's implementation uses pointer arithmetic involving
> the
> > address of the last named argument to calculate pointers to the variadic
> > arguments and dereferences them to obtain the argument values. I'm
> quite
> > surprised it works as well as it does at -O0, to be honest)
> >
> > I tested this change with both Ovmf and EmulatorPkg built in various ways
> > and with various versions, with the caveat that I did not always use a
> matching
> > binutils (i.e., of the same era). Since the issues this series deal with are
> > all code generation issues, I think this is reasonable, but more testing 
> > would
> > be appreciated. (v2: this still applies, I have tested DEBUG and RELEASE
> builds
> > using GCC44, GCC46, GCC47 and GCC48, but all on the same Ubuntu 14.04
> system,
> > which means they all use the same ld version 2.24.90)
> >
> > [0] http://thread.gmane.org/gmane.comp.bios.tianocore.devel/10963
> >
> > Patch #6 explicitly forbids the poor man's MS ABI varargs implementation
> when
> > using GCC with optimization enabled.
> >
> > Patch #7 drops checks for the NO_BUILTIN_VA_FUNCS macro, which is
> never defined
> > anymore.
> >
> > Patch #8 applies the visibility 'protected' GCC pragma globally. Please 
> > refer
> to
> > the commit log for the motivation.
> >
> > Patch #9 switches GCC/X64 to the PIE small code model, which results in
> smaller
> > code.
> >
> > Changes in v3:
> > - Ensure OpensslLib does not switch to the MS varargs ABI inadvertently
> > - Switch to -fpie code generation rather than -fpic, which is more suitable
> for
> > executables. Note that this is *not* the -pie linker switch which generates
> > a RELA section and a _DYNAMIC entrypoint.
> > - Use 'protected' rather than 'hidden' visibility, which is equally 
> > suitable for
> > our purposes (inhibiting generation of GOT entries) but interoperates
> better
> > with LTO, which we intend to enable for GCC 5 and up
> > - dropped Laszlo's 'tested-by' from all patches, which was given based on
> v1
> >
> > Branch can be found here
> > https://git.linaro.org/people/ard.biesheuvel/uefi-
> next.git/shortlog/refs/heads/gcc-x64-opt-v3
> >
> > Changes in v2:
> > - Switch to -Os optimization, both for DEBUG and RELEASE builds. This turns
> out
> > to work fine (as far as I could establish) and gives the best results in 
> > terms
> > of code size.
> >
> > Ard Biesheuvel (8):
> > MdePkg: avoid __builtin_unreachable() on GCC v4.4
> > CryptoPkg: set new define to avoid MS ABI VA_LIST on GCC/X64
> > EdkCompatibilityPkg: Enable new MS VA intrinsics for GNUC x86 64bits
> > build
> > BaseTools/tools_def: enable Os optimization for GCC X64 builds
> > MdePkg: disallow open coded varargs implementation on optimizing GCC
> > MdePkg CryptoPkg EdkCompatibilityPkg: retire NO_BUILTIN_VA_FUNCS
> > define
> > MdePkg X64: force 'protected' visibility when building with -fpic
> > BaseTools/tools_def: switch GCC/X64 to the PIE small model
> >
> > Shi, Steven (1):
> > MdePkg: Enable new MS VA intrinsics for GNUC x86 64bits build
> >
> > BaseTools/Conf/tools_def.template | 2 +-
> > CryptoPkg/Library/OpensslLib/OpensslLib.inf | 2 +-
> > EdkCompatibilityPkg/Foundation/Include/EfiStdArg.h | 28
> ++++++++++++++-
> > MdePkg/Include/Base.h | 36 ++++++++++++++++++--
> > MdePkg/Include/X64/ProcessorBind.h | 9 +++++
> > 5 files changed, 72 insertions(+), 5 deletions(-)
> >
> > --
> > 1.9.1
> >
> > _______________________________________________
> > edk2-devel mailing list
> > [email protected]<mailto:[email protected]>
> > https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]<mailto:[email protected]>
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to