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
发送时间:
2023年4月21日
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
发送时间:
2023年4月21日
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
>
>
>
>
>