From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by mx.groups.io with SMTP id smtpd.web12.11155.1626096953326079909 for ; Mon, 12 Jul 2021 06:35:55 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: byosoft.com.cn, ip: 58.240.74.242, mailfrom: gaoliming@byosoft.com.cn) Received: from DESKTOPS6D0PVI ([116.128.224.11]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Mon, 12 Jul 2021 21:35:50 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 116.128.224.11 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , , , Cc: "'Wang, Jian J'" , "'Lu, XiaoyuX'" , "'Kinney, Michael D'" References: <007601d7663d$7418a790$5c49f6b0$@byosoft.com.cn> <007a01d772d1$149724e0$3dc56ea0$@byosoft.com.cn> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY2IDAvMl0gQ3J5cHRvUGtnL09wZW5zc2xMaWI6IEFkZCBuYXRpdmUgaW5zdHJ1Y3Rpb24gc3VwcG9ydCBmb3IgWDY0?= Date: Mon, 12 Jul 2021 21:35:50 +0800 Message-ID: <01df01d77722$d4902990$7db07cb0$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQFzllcILTG7MWpIES6k50ub60nqmQHnk7c0AhxGv5YB+VBMJgK9NJzbAxZWFaKrqJGPcA== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Include Ard who made this change to discard COMMON section (edk2 214a3b7941= 7f64bf2faae74af42c1b9d23f50dc8).=20 Ard: can you help confirm this change to add back COMMON section? Christopher adds back COMMON section for GCC support from the assembly-acc= elerated OpenSSL patch. Because -fno-common option is still kept, COMMON section can be added.=20 Thanks Liming > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io = =E4=BB=A3=E8=A1=A8 Christopher > Zurcher > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2021=E5=B9=B47=E6=9C=8810=E6=97=A5= 11:00 > =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io; gaoliming@byosoft.com= .cn; > jiewen.yao@intel.com > =E6=8A=84=E9=80=81: 'Wang, Jian J' ; 'Lu, XiaoyuX= ' > ; 'Kinney, Michael D' = ; > 'Ard Biesheuvel' > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH v6 0/2] CryptoPkg/OpensslLib= : Add native > instruction support for X64 >=20 > The -fno-common addition to compiler flags should prevent variables bein= g > emitted into the COMMON section. Discarding the COMMON section > prevents usage of the section even if a driver specifies -fcommon or oth= erwise > utilizes the COMMON section. > I do not think that this change should introduce any issues with other d= rivers > as long as -fno-common remains in the default command line. > The only alternative to removing COMMON from the discards is to drop GCC > support from the assembly-accelerated OpenSSL patch. >=20 > If this is OK for you, I will send a new patch set with the BaseTools ch= ange in a > separate commit. >=20 > Thanks, > Christopher Zurcher >=20 > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of gaoliming > Sent: Tuesday, July 6, 2021 18:41 > To: devel@edk2.groups.io; jiewen.yao@intel.com; 'Christopher Zurcher' > > Cc: 'Wang, Jian J' ; 'Lu, XiaoyuX' > ; 'Kinney, Michael D' = ; > 'Ard Biesheuvel' > Subject: =E5=9B=9E=E5=A4=8D: [edk2-devel] [PATCH v6 0/2] CryptoPkg/Opens= slLib: Add > native instruction support for X64 >=20 > Christopher: > Discard COMMON section is added by edk2 commit > 214a3b79417f64bf2faae74af42c1b9d23f50dc8. Please help evaluate its > impact. >=20 > Thanks > Liming > > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > > =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io =E4=BB=A3=E8=A1=A8 Yao, > Jiewen > > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2021=E5=B9=B46=E6=9C=8823=E6=97= =A5 20:42 > > =E6=94=B6=E4=BB=B6=E4=BA=BA: Christopher Zurcher ; > > devel@edk2.groups.io; gaoliming@byosoft.com.cn > > =E6=8A=84=E9=80=81: Wang, Jian J ; Lu, XiaoyuX > > ; Kinney, Michael D > > ; 'Ard Biesheuvel' > > ; Yao, Jiewen > > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH v6 0/2] CryptoPkg/OpensslL= ib: Add native > > instruction support for X64 > > > > Hi Christopher > > Thank you very much to resume this work. :-) > > > > I have no problem to approve CryptoPkg. (I believe I already did that > > in last year). > > > > But since you updated base tool. We need base tool package maintainer > > to approve that change. > > > > A good practice is to split the patch from package level. Then we can > > let each package maintainer approve its own package. > > > > I will be waiting for the response from base tool owner to review " > > BaseTools/Scripts/GccBase.lds " and give R-B. > > > > > > Thank you > > Yao Jiewen > > > > > -----Original Message----- > > > From: Christopher Zurcher > > > Sent: Tuesday, June 22, 2021 6:05 AM > > > To: devel@edk2.groups.io; gaoliming@byosoft.com.cn > > > Cc: Yao, Jiewen ; Wang, Jian J > > ; > > > Lu, XiaoyuX ; Kinney, Michael D > > > ; 'Ard Biesheuvel' > > > > > Subject: RE: [edk2-devel] [PATCH v6 0/2] CryptoPkg/OpensslLib: Add > > > native instruction support for X64 > > > > > > Yes this was discussed last year, sorry for the delay in follow-up, > > > I was > > changing > > > jobs. > > > The problem is that the assembly code provided by OpenSSL uses "wrt > > > ..imagebase" which is only supported by win64, not elf64. It was > > requested > > > at the time that I include the OpenSSL-provided .S files as a GCC > > > tool chain alternative. > > > > > > Thanks, > > > Christopher Zurcher > > > > > > -----Original Message----- > > > From: devel@edk2.groups.io On Behalf Of > > gaoliming > > > Sent: Sunday, June 20, 2021 18:34 > > > To: devel@edk2.groups.io; christopher.zurcher@outlook.com > > > Cc: 'Jiewen Yao' ; 'Jian J Wang' > > > ; 'Xiaoyu Lu' ; 'Mike > Kinney' > > > ; 'Ard Biesheuvel' > > > > > Subject: =E5=9B=9E=E5=A4=8D: [edk2-devel] [PATCH v6 0/2] CryptoPkg/O= pensslLib: Add > > native > > > instruction support for X64 > > > > > > Christopher: > > > Nasm should support GCC tool chain. Do you meet with the problem > > > on > > nasm > > > version assembly code? > > > So, you have to add GAS assembly code. This topic may be discussed > > > last > > year. > > > Can you give some detail for it? > > > > > > Thanks > > > Liming > > > > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > > > > =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io =E4=BB=A3=E8=A1=A8 > > Christopher > > > > Zurcher > > > > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2021=E5=B9=B46=E6=9C=8819=E6= = =97=A5 10:09 > > > > =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io > > > > =E6=8A=84=E9=80=81: Jiewen Yao ; Jian J Wang > > > > ; Xiaoyu Lu ; Mike > > > > Kinney ; Ard Biesheuvel > > > > > > =E4=B8=BB=E9=A2=98: [edk2-devel] [PATCH v6 0/2] CryptoPkg/OpensslL= ib: Add native > > > > instruction support for X64 > > > > > > > > From: Christopher Zurcher > > > > > > > > V6 Changes: > > > > Add GCC-compatible version of these modifications. Supporting > > > > GCC build > > > of > > > > native OpenSSL .S files requires removal of *(COMMON) from the > > > > /DISCARD/ > > > > section of the GCC linker script. > > > > The VS/CLANG portion of the patch is unchanged from the > > > > previously-approved > > > > patchset. > > > > > > > > V5 Changes: > > > > Move ApiHooks.c into X64 folder > > > > Update process_files.pl to clean architecture-specific > > > > subfolders > > > without > > > > removing them > > > > Rebased INF file to merge latest changes regarding RngLib vs. > > > > TimerLib > > > > > > > > V4 Changes: > > > > Add copyright header to uefi-asm.conf > > > > Move [Sources.X64] block to cover entire X64-specific config > > > > > > > > V3 Changes: > > > > Added definitions for ptrdiff_t and wchar_t to CrtLibSupport.h f= or > > > > LLVM/Clang build support. > > > > Added -UWIN32 to GCC Flags for LLVM/Clang build support. > > > > Added missing AES GCM assembly file. > > > > > > > > V2 Changes: > > > > Limit scope of assembly config to SHA and AES functions. > > > > Removed IA32 native support (reduced config was causing build > > > > failure > > > and > > > > can be added in a later patch). > > > > Removed XMM instructions from assembly generation. > > > > Added automatic copyright header porting for generated assembly > > files. > > > > > > > > This patch adds support for building the native instruction > > > > algorithms for the X64 architecture in OpensslLib. The > > > > process_files.pl script was > > > modified > > > > to parse the .asm file targets from the OpenSSL build config data > > > > struct, > > > and > > > > generate the necessary assembly files for the EDK2 build environme= nt. > > > > > > > > For the X64 variant, OpenSSL includes calls to a Windows error > > > > handling > > > API, > > > > and that function has been stubbed out in ApiHooks.c. > > > > > > > > For all variants, a constructor is added to call the required > > > > CPUID > > > function > > > > within OpenSSL to facilitate processor capability checks in the > > > > native algorithms. > > > > > > > > Additional native architecture variants should be simple to add by > > > following > > > > the changes made for this architecture. > > > > > > > > The OpenSSL assembly files are traditionally generated at build > > > > time using > > > a > > > > perl script. To avoid that burden on EDK2 users, these end-result > > > > assembly files are generated during the configuration steps > > > > performed by the > > > package > > > > maintainer (through process_files.pl). The perl generator scripts > > > > inside OpenSSL do not parse file comments as they are only meant > > > > to create intermediate build files, so process_files.pl contains > > > > additional hooks to preserve the copyright headers as well as > > > > clean up tabs and line endings > > > to > > > > comply with EDK2 coding standards. The resulting file headers > > > > align with the generated .h files which are already included in > > > > the EDK2 > > repository. > > > > > > > > Cc: Jiewen Yao > > > > Cc: Jian J Wang > > > > Cc: Xiaoyu Lu > > > > Cc: Mike Kinney > > > > Cc: Ard Biesheuvel > > > > > > > > Christopher Zurcher (2): > > > > CryptoPkg/OpensslLib: Add native instruction support for X64 > > > > CryptoPkg/OpensslLib: Commit the auto-generated assembly files > > > > for > > > > X64 > > > > > > > > BaseTools/Scripts/GccBase.lds > > > > | 1 - > > > > CryptoPkg/CryptoPkg.ci.yaml > > > > | 21 +- > > > > CryptoPkg/Library/Include/CrtLibSupport.h > > > > | 2 + > > > > CryptoPkg/Library/Include/openssl/opensslconf.h > > > > | 3 - > > > > CryptoPkg/Library/OpensslLib/OpensslLib.inf > > > > | 2 +- > > > > CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c > > > > | 44 + > > > > CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf > > > > | 2 +- > > > > CryptoPkg/Library/OpensslLib/OpensslLibX64.inf > > > > | 653 +++ > > > > CryptoPkg/Library/OpensslLib/OpensslLibX64Gcc.inf > > > > | 653 +++ > > > > CryptoPkg/Library/OpensslLib/UefiAsm.conf > > > > | 30 + > > > > CryptoPkg/Library/OpensslLib/X64/ApiHooks.c > > > > | 22 + > > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm > > > > | 732 +++ > > > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm > > > > | 1916 ++++++++ > > > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256-x86_64.nasm > > > > | 78 + > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm > > > > | 5103 ++++++++++++++++++++ > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm > > > > | 1173 +++++ > > > > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/aesni-gcm-x86_64.nasm > > > > | 34 + > > > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm > > > > | 1569 ++++++ > > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm > > > > | 3137 ++++++++++++ > > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm > > > > | 2884 +++++++++++ > > > > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm > > > > | 3461 +++++++++++++ > > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm > > > > | 3313 +++++++++++++ > > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm > > > > | 1938 ++++++++ > > > > CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm > > > > | 491 ++ > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-mb-x86_64.S > > > > | 552 +++ > > > > > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha1-x86_64.S > > > > | 1719 +++++++ > > > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha256-x86_64.S > > > > | > > > > 69 + > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-x86_64.S > > > > | 4484 +++++++++++++++++ > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/vpaes-x86_64.S > > > > | 863 ++++ > > > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/aesni-gcm-x86_64.S > > > > | 29 + > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/ghash-x86_64.S > > > > | 1386 ++++++ > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-mb-x86_64.S > > > > | 2962 ++++++++++++ > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-x86_64.S > > > > | 2631 ++++++++++ > > > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-mb-x86_64.S > > > > | 3286 +++++++++++++ > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-x86_64.S > > > > | 3097 ++++++++++++ > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha512-x86_64.S > > > > | 1811 +++++++ > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/x86_64cpuid.S > > > > | 491 ++ > > > > CryptoPkg/Library/OpensslLib/process_files.pl > > > > | 241 +- > > > > 38 files changed, 50828 insertions(+), 55 deletions(-) create > > > > mode > > > > 100644 CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c > > > > create mode 100644 CryptoPkg/Library/OpensslLib/OpensslLibX64.inf > > > > create mode 100644 > > CryptoPkg/Library/OpensslLib/OpensslLibX64Gcc.inf > > > > create mode 100644 CryptoPkg/Library/OpensslLib/UefiAsm.conf > > > > create mode 100644 CryptoPkg/Library/OpensslLib/X64/ApiHooks.c > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm > > > > create mode 100644 > > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm > > > > create mode 100644 > > > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256-x86_64.nasm > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm > > > > create mode 100644 > > > > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/aesni-gcm-x86_64.nasm > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm > > > > create mode 100644 > > > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-mb-x86_64.S > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha1-x86_64.S > > > > create mode 100644 > > > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha256-x86_64.S > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-x86_64.S > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/vpaes-x86_64.S > > > > create mode 100644 > > > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/aesni-gcm-x86_64.S > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/ghash-x86_64.S > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-mb-x86_64.S > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-x86_64.S > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-mb-x86_64.S > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-x86_64.S > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha512-x86_64.S > > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/x86_64cpuid.S > > > > > > > > -- > > > > 2.32.0.windows.1 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20