public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Yao, Jiewen" <jiewen.yao@intel.com>
To: "Zurcher, Christopher J" <christopher.j.zurcher@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Wang, Jian J" <jian.j.wang@intel.com>,
	"Lu, XiaoyuX" <xiaoyux.lu@intel.com>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>,
	"Ard Biesheuvel" <ard.biesheuvel@arm.com>
Subject: Re: [PATCH v4 0/2] CryptoPkg/OpensslLib: Add native instruction support for X64
Date: Sat, 31 Oct 2020 01:14:33 +0000	[thread overview]
Message-ID: <CY4PR11MB1288C85B244594042D374F028C120@CY4PR11MB1288.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20201028181546.6537-1-christopher.j.zurcher@intel.com>

Hi Zurcher
I have given the feedback to move ApiHooks.c to X64 dir.

But I do not see your response, and I do not see you are following the recommendation.

=================
> ApiHooks.c is for any compiler building the assembly files, not only Visual
> Studio.
[Jiewen] Got it. Thanks for the clarification.
It is only needed for X64 assembly. Right?
If so, I recommend to put it to [Source.X64]
=================



> -----Original Message-----
> From: Christopher J Zurcher <christopher.j.zurcher@intel.com>
> Sent: Thursday, October 29, 2020 2:16 AM
> To: devel@edk2.groups.io
> Cc: Yao, Jiewen <jiewen.yao@intel.com>; Wang, Jian J
> <jian.j.wang@intel.com>; Lu, XiaoyuX <xiaoyux.lu@intel.com>; Kinney,
> Michael D <michael.d.kinney@intel.com>; Ard Biesheuvel
> <ard.biesheuvel@arm.com>
> Subject: [PATCH v4 0/2] CryptoPkg/OpensslLib: Add native instruction
> support for X64
> 
> 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 for
>     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 environment.
> 
> 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 <jiewen.yao@intel.com>
> Cc: Jian J Wang <jian.j.wang@intel.com>
> Cc: Xiaoyu Lu <xiaoyux.lu@intel.com>
> Cc: Mike Kinney <michael.d.kinney@intel.com>
> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
> 
> Christopher J Zurcher (2):
>   CryptoPkg/OpensslLib: Add native instruction support for X64
>   CryptoPkg/OpensslLib: Commit the auto-generated assembly files for X64
> 
>  CryptoPkg/Library/OpensslLib/OpensslLib.inf                          |    2 +-
>  CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf                    |    2 +-
>  CryptoPkg/Library/OpensslLib/OpensslLibX64.inf                       |  655 +++
>  CryptoPkg/Library/Include/CrtLibSupport.h                            |    2 +
>  CryptoPkg/Library/Include/openssl/opensslconf.h                      |    3 -
>  CryptoPkg/Library/OpensslLib/ApiHooks.c                              |   18 +
>  CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c                 |   34 +
>  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/process_files.pl                        |  223 +-
>  CryptoPkg/Library/OpensslLib/uefi-asm.conf                           |   21 +
>  22 files changed, 26739 insertions(+), 50 deletions(-)
>  create mode 100644 CryptoPkg/Library/OpensslLib/OpensslLibX64.inf
>  create mode 100644 CryptoPkg/Library/OpensslLib/ApiHooks.c
>  create mode 100644 CryptoPkg/Library/OpensslLib/OpensslLibConstructor.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/uefi-asm.conf
> 
> --
> 2.28.0.windows.1


  parent reply	other threads:[~2020-10-31  1:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-28 18:15 [PATCH v4 0/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Zurcher, Christopher J
2020-10-28 18:15 ` [PATCH v4 1/2] " Zurcher, Christopher J
2020-10-28 18:15 ` [PATCH v4 2/2] CryptoPkg/OpensslLib: Commit the auto-generated assembly files " Zurcher, Christopher J
2020-10-31  1:14 ` Yao, Jiewen [this message]
2020-11-02 20:49   ` [PATCH v4 0/2] CryptoPkg/OpensslLib: Add native instruction support " Zurcher, Christopher J
2020-11-03  1:07     ` Yao, Jiewen

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=CY4PR11MB1288C85B244594042D374F028C120@CY4PR11MB1288.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