Hi Liming,

 

After I change memset() implementation in RegularExpressionDxe, I only need to cover memcpy() with MDE_CPU_IA32. This is my change for your reference: https://github.com/tianocore/edk2/pull/4285/commits/15216e83198d7d422ae767833303d1979c8c0839

 

Please let me know if this makes sense to you or not.

 

Thanks,

Nickle

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Nickle Wang via groups.io
Sent: Friday, April 21, 2023 2:22 PM
To: devel@edk2.groups.io; gaoliming@byosoft.com.cn; 'Jian J Wang' <jian.j.wang@intel.com>
Cc: 'Michael D Kinney' <michael.d.kinney@intel.com>; Nick Ramirez <nramirez@nvidia.com>
Subject: Re: [edk2-devel] [PATCH 1/1] MdeModulePkg/RegularExpressionDxe: Fix Arm build error

 

External email: Use caution opening links or attachments

 

Hi Liming,

 

Yes, let me try it and feedback to you.

 

Thanks,

Nickle

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of gaoliming via groups.io
Sent: Friday, April 21, 2023 2:13 PM
To: devel@edk2.groups.io; Nickle Wang <nicklew@nvidia.com>; 'Jian J Wang' <jian.j.wang@intel.com>
Cc: 'Michael D Kinney' <michael.d.kinney@intel.com>; Nick Ramirez <nramirez@nvidia.com>
Subject:
回复: [edk2-devel] [PATCH 1/1] MdeModulePkg/RegularExpressionDxe: Fix Arm build error

 

External email: Use caution opening links or attachments

 

Nickle:

 I check memset implementation in CryptoPkg\Library\IntrinsicLib and ArmPkg\Library\CompilerIntrinsicsLib. They both use int type for the second parameter. So, I suggest to update RegularExpressionDxe implementation to match them. Can you help to verify this solution?

 

Thanks

Liming

发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Nickle Wang via groups.io
发送时间: 2023421 11:13
收件人: devel@edk2.groups.io; gaoliming@byosoft.com.cn; 'Jian J Wang' <jian.j.wang@intel.com>
抄送: 'Michael D Kinney' <michael.d.kinney@intel.com>; Nick Ramirez <nramirez@nvidia.com>
主题: Re: [edk2-devel] [PATCH 1/1] MdeModulePkg/RegularExpressionDxe: Fix Arm build error

 

Hi Liming,

 

I noticed the build error from this CI test: Build and Test NetworkPkg,RedfishPkg IA32,X64,ARM,AARCH64,RISCV64,LOONGARCH64. And after applying my patch, CI reports build pass. Since this CI test also cover AARCH64, RISCV64 and LOONGARCH64, I think that the failure only happens to MDE_CPU_ARM.

 

Thanks,

Nickle

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of gaoliming via groups.io
Sent: Friday, April 21, 2023 10:52 AM
To: devel@edk2.groups.io; Nickle Wang <nicklew@nvidia.com>; 'Jian J Wang' <jian.j.wang@intel.com>
Cc: 'Michael D Kinney' <michael.d.kinney@intel.com>; Nick Ramirez <nramirez@nvidia.com>
Subject:
回复: [edk2-devel] [PATCH 1/1] MdeModulePkg/RegularExpressionDxe: Fix Arm build error

 

External email: Use caution opening links or attachments

 

Nickle:

 Is this only for MDE_CPU_ARM? I may propose to add the judgement of MDE_CPU_IA32 and MDE_CPU_X64 for memcpy & memset. memcpy & memset are for X86 only.

 

Thanks

Liming

发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Nickle Wang via groups.io
发送时间: 2023421 8:26
收件人: devel@edk2.groups.io; Nickle Wang <nicklew@nvidia.com>; Jian J Wang <jian.j.wang@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>
抄送: Michael D Kinney <michael.d.kinney@intel.com>; Nick Ramirez <nramirez@nvidia.com>
主题: Re: [edk2-devel] [PATCH 1/1] MdeModulePkg/RegularExpressionDxe: Fix Arm build error

 

Hi @Jian J Wang, @Liming Gao,

 

Could you please help me to review this patch? There is CI build error, and it blocks my pull request here: https://github.com/tianocore/edk2/pull/4285 

 

Thanks,

Nickle

 

> -----Original Message-----

> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Nickle

> Wang via groups.io

> Sent: Wednesday, April 19, 2023 4:30 PM

> To: devel@edk2.groups.io

> Cc: Jian J Wang <jian.j.wang@intel.com>; Liming Gao

> <gaoliming@byosoft.com.cn>; Michael D Kinney <michael.d.kinney@intel.com>;

> Nick Ramirez <nramirez@nvidia.com>

> Subject: [edk2-devel] [PATCH 1/1] MdeModulePkg/RegularExpressionDxe: Fix

> Arm build error

>

> External email: Use caution opening links or attachments

>

>

> Fix Arm CI build error:

> - ArmPkg/Library/CompilerIntrinsicsLib/memset.c:39:1: warning: type of

> ‘memset’ does not match original declaration [-Wlto-type-mismatch]

> MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c:123:1:

> note: type ‘char’ should match type ‘int’

> - multiple definition of `memcpy'; OnigurumaUefiPort.obj (symbol from

> plugin):(.text+0x0): first defined here

>

> There is intrinsics library for Arm so we don't need memset and memcpy

> function in OnigurumaUefiPort.c.

>

> Signed-off-by: Nickle Wang <nicklew@nvidia.com>

> Cc: Jian J Wang <jian.j.wang@intel.com>

> Cc: Liming Gao <gaoliming@byosoft.com.cn>

> Cc: Michael D Kinney <michael.d.kinney@intel.com>

> Cc: Nick Ramirez <nramirez@nvidia.com>

> ---

>  .../Universal/RegularExpressionDxe/OnigurumaUefiPort.h       | 5 ++++-

>  .../Universal/RegularExpressionDxe/OnigurumaUefiPort.c       | 4 ++++

>  2 files changed, 8 insertions(+), 1 deletion(-)

>

> diff --git

> a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h

> b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h

> index 248109b0c96e..8f8581df6783 100644

> --- a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h

> +++ b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h

> @@ -4,7 +4,7 @@

>

>    (C) Copyright 2014-2021 Hewlett Packard Enterprise Development LP<BR>

>    Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>

> -  Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

> +  Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights

> reserved.

>

>    SPDX-License-Identifier: BSD-2-Clause-Patent  **/ @@ -107,6 +107,7 @@

> realloc (

>    size_t  size

>    );

>

> +#if !defined (MDE_CPU_ARM)

>  void *

>  memcpy (

>    void          *dest,

> @@ -121,6 +122,8 @@ memset (

>    unsigned int  count

>    );

>

> +#endif

> +

>  void

>  free (

>    void  *ptr

> diff --git

> a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c

> b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c

> index 6661c67f976e..8af57f3a93c7 100644

> --- a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c

> +++ b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c

> @@ -4,6 +4,7 @@

>

>    (C) Copyright 2014-2021 Hewlett Packard Enterprise Development LP<BR>

>    Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>

> +  Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

>

>    SPDX-License-Identifier: BSD-2-Clause-Patent  **/ @@ -109,6 +110,7 @@

> realloc (

>    return NULL;

>  }

>

> +#if !defined (MDE_CPU_ARM)

>  void *

>  memcpy (

>    void          *dest,

> @@ -129,6 +131,8 @@ memset (

>    return SetMem (dest, count, ch);

>  }

>

> +#endif

> +

>  void

>  free (

>    void  *ptr

> --

> 2.17.1

>

>

>

>

>