From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: liming.gao@intel.com) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by groups.io with SMTP; Tue, 04 Jun 2019 22:56:57 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Jun 2019 22:56:56 -0700 X-ExtLoop1: 1 Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga001.fm.intel.com with ESMTP; 04 Jun 2019 22:56:55 -0700 Received: from fmsmsx163.amr.corp.intel.com (10.18.125.72) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 4 Jun 2019 22:56:55 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx163.amr.corp.intel.com (10.18.125.72) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 4 Jun 2019 22:56:55 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.137]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.10]) with mapi id 14.03.0415.000; Wed, 5 Jun 2019 13:56:53 +0800 From: "Liming Gao" To: "devel@edk2.groups.io" , "Lu, XiaoyuX" CC: "Bi, Dandan" , "Wang, Jian J" Subject: Re: [edk2-devel] [PATCH v1 1/1] CryptoPkg/IntrinsicLib: Fix CLANG38 IA32 build problem Thread-Topic: [edk2-devel] [PATCH v1 1/1] CryptoPkg/IntrinsicLib: Fix CLANG38 IA32 build problem Thread-Index: AQHVG19PQyx+GkN+oUK1k7ap2DC1gqaMjrsg Date: Wed, 5 Jun 2019 05:56:53 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E46C045@SHSMSX104.ccr.corp.intel.com> References: <1559712295-891-1-git-send-email-xiaoyux.lu@intel.com> In-Reply-To: <1559712295-891-1-git-send-email-xiaoyux.lu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: liming.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Xiaoyu: >-----Original Message----- >From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of >Xiaoyu Lu >Sent: Wednesday, June 05, 2019 1:25 PM >To: devel@edk2.groups.io >Cc: Lu, XiaoyuX ; Bi, Dandan ; >Wang, Jian J >Subject: [edk2-devel] [PATCH v1 1/1] CryptoPkg/IntrinsicLib: Fix CLANG38 >IA32 build problem > >When use clang-3.8 to build the NetworkPkg, compiler optimization >may use memcpy for memory copy. For example: > > CryptoPkg/Library/OpensslLib/openssl/ssl/ssl_rsa.c:918: undefined > reference to `memcpy'` > >Compiler optimization is sophisticated, but we can work around it >use __attribute__((__used__)) to informs the compiler that symbol >should be retained in the object file, even if it may be >unreferenced. > >Cc: Jian J Wang >Cc: Dandan Bi >Signed-off-by: Xiaoyu Lu >--- > CryptoPkg/Library/IntrinsicLib/CopyMem.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > >diff --git a/CryptoPkg/Library/IntrinsicLib/CopyMem.c >b/CryptoPkg/Library/IntrinsicLib/CopyMem.c >index e29b4918d200..7faf5a34d8c1 100644 >--- a/CryptoPkg/Library/IntrinsicLib/CopyMem.c >+++ b/CryptoPkg/Library/IntrinsicLib/CopyMem.c >@@ -10,8 +10,21 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > #include > #include > >+#if defined(__clang__) && !defined(__APPLE__) So, this change is only for CLANG tool chain.=20 >+ >+/* Copies bytes between buffers */ >+static __attribute__((__used__)) What purpose for static? >+void * __memcpy (void *dest, const void *src, unsigned int count) >+{ >+ return CopyMem (dest, src, (UINTN)count); >+} >+__attribute__((__alias__("__memcpy"))) >+void * memcpy (void *dest, const void *src, unsigned int count); __memcpy is IA32 Intrinsic API, memcpy is X64 Intrinsic API, right? Thanks Liming >+ >+#else > /* Copies bytes between buffers */ > void * memcpy (void *dest, const void *src, unsigned int count) > { > return CopyMem (dest, src, (UINTN)count); > } >+#endif >-- >2.7.4 > > >