From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from wes1-so2.wedos.net (wes1-so2.wedos.net [46.28.106.16]) by dpdk.org (Postfix) with ESMTP id E2E832A5F for ; Thu, 29 Oct 2015 18:40:20 +0100 (CET) Received: from pcviktorin.fit.vutbr.cz (pcviktorin.fit.vutbr.cz [147.229.13.147]) by wes1-so2.wedos.net (Postfix) with ESMTPSA id 3nmvDh2hplzBk4; Thu, 29 Oct 2015 18:40:20 +0100 (CET) Date: Thu, 29 Oct 2015 18:38:35 +0100 From: Jan Viktorin To: David Hunt Message-ID: <20151029183835.2aaca7db@pcviktorin.fit.vutbr.cz> In-Reply-To: <1446139794-16071-4-git-send-email-david.hunt@intel.com> References: <1446139794-16071-1-git-send-email-david.hunt@intel.com> <1446139794-16071-4-git-send-email-david.hunt@intel.com> Organization: RehiveTech MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH 3/5] eal: fix compilation for armv8 64-bit 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: Thu, 29 Oct 2015 17:40:21 -0000 Hello Dave, On Thu, 29 Oct 2015 17:29:52 +0000 David Hunt wrote: > Signed-off-by: David Hunt > --- > lib/librte_eal/common/include/arch/arm/rte_cpuflags.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/lib/librte_eal/common/include/arch/arm/rte_cpuflags.h b/lib/librte_eal/common/include/arch/arm/rte_cpuflags.h > index 7ce9d14..27d49c0 100644 > --- a/lib/librte_eal/common/include/arch/arm/rte_cpuflags.h > +++ b/lib/librte_eal/common/include/arch/arm/rte_cpuflags.h > @@ -141,12 +141,21 @@ rte_cpu_get_features(__attribute__((unused)) uint32_t leaf, > __attribute__((unused)) uint32_t subleaf, cpuid_registers_t out) > { > int auxv_fd; > +#ifdef RTE_ARCH_64 > + Elf64_auxv_t auxv; > +#else > Elf32_auxv_t auxv; > +#endif > > auxv_fd = open("/proc/self/auxv", O_RDONLY); > assert(auxv_fd); > +#ifdef RTE_ARCH_64 > + while (read(auxv_fd, &auxv, > + sizeof(Elf64_auxv_t)) == sizeof(Elf64_auxv_t)) { > +#else > while (read(auxv_fd, &auxv, > sizeof(Elf32_auxv_t)) == sizeof(Elf32_auxv_t)) { > +#endif > if (auxv.a_type == AT_HWCAP) > out[REG_HWCAP] = auxv.a_un.a_val; > else if (auxv.a_type == AT_HWCAP2) I think, it might be better to do a typedef (or define) like #ifdef RTE_ARCH_64 typedef Elf64_auxv_t Elf_auxv_t; #else typedef Elf32_auxv_t Elf_auxv_t; #endif while leaving the above code almost untouched (just Elf32_auxv_t -> Elf_auxv_t). This is like spagetti... :) Regards Jan -- Jan Viktorin E-mail: Viktorin@RehiveTech.com System Architect Web: www.RehiveTech.com RehiveTech Brno, Czech Republic