From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 05E0D5683 for ; Wed, 4 Mar 2015 06:59:41 +0100 (CET) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP; 03 Mar 2015 21:57:12 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,685,1418112000"; d="scan'208";a="674854404" Received: from kmsmsx153.gar.corp.intel.com ([172.21.73.88]) by fmsmga001.fm.intel.com with ESMTP; 03 Mar 2015 21:59:39 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by KMSMSX153.gar.corp.intel.com (172.21.73.88) with Microsoft SMTP Server (TLS) id 14.3.195.1; Wed, 4 Mar 2015 13:57:39 +0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.192]) by shsmsx102.ccr.corp.intel.com ([169.254.2.62]) with mapi id 14.03.0195.001; Wed, 4 Mar 2015 13:57:37 +0800 From: "Wang, Zhihong" To: "Wodkowski, PawelX" , "Richardson, Bruce" Thread-Topic: [dpdk-dev] [PATCH] A fix to work around strict-aliasing rules breaking Thread-Index: AQHQVMfSQpqQfF/+KkqTuAkb0ZXlJZ0JIGdKgAKzTMA= Date: Wed, 4 Mar 2015 05:57:36 +0000 Message-ID: References: <1425287030-18225-1-git-send-email-zhihong.wang@intel.com> <20150302103224.GC8520@bricha3-MOBL3> <54F4584B.5090507@intel.com> In-Reply-To: <54F4584B.5090507@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH] A fix to work around strict-aliasing rules breaking X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Mar 2015 05:59:42 -0000 > -----Original Message----- > From: Wodkowski, PawelX > Sent: Monday, March 02, 2015 8:32 PM > To: Richardson, Bruce; Wang, Zhihong > Cc: dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH] A fix to work around strict-aliasing rule= s > breaking >=20 > On 2015-03-02 11:32, Bruce Richardson wrote: > > On Mon, Mar 02, 2015 at 05:03:50PM +0800, zhihong.wang@intel.com > wrote: > >> Fixed strict-aliasing rules breaking errors for some GCC version. > >> > > > > This looks messy. Also, I believe the definition of memcpy should > > include the "restrict" keyword to indicate that source and dest can't > > overlap. Might that help fix the issue? > > >=20 > Is this error related with overlapping or casting 'void *' to 'uintXX_t *= ' that > make compiler report aliasing rule breaking? >=20 > > > >> Signed-off-by: Zhihong Wang > >> --- > >> .../common/include/arch/x86/rte_memcpy.h | 44 ++++++++++++= -- > -------- > >> 1 file changed, 24 insertions(+), 20 deletions(-) > >> > >> diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h > >> b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h > >> index 69a5c6f..f412099 100644 > >> --- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h > >> +++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h > >> @@ -195,6 +195,8 @@ rte_mov256blocks(uint8_t *dst, const uint8_t *src, > size_t n) > >> static inline void * > >> rte_memcpy(void *dst, const void *src, size_t n) > >> { > >> + uintptr_t dstu =3D (uintptr_t)dst; > >> + uintptr_t srcu =3D (uintptr_t)src; >=20 > If so maybe using union here would be good solution or 'char *'. Pawel, Thanks for the suggestion! But I don't think union can work around this ---= already tried in CentOS release 6.5. Anyway this is for compiler ethics only, the assembly code generated will b= e the same no matter what kind of method is used. Zhihong (John) >=20 > -- > Pawel