From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ig0-f170.google.com (mail-ig0-f170.google.com [209.85.213.170]) by dpdk.org (Postfix) with ESMTP id 58F6CB36F for ; Fri, 15 Aug 2014 01:24:36 +0200 (CEST) Received: by mail-ig0-f170.google.com with SMTP id h3so954353igd.3 for ; Thu, 14 Aug 2014 16:27:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:message-id:date:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=toqwhLEjPgwzijwmPx+VdKiEEiR8p+rPskdX1vCTBZ4=; b=JEMZzWFJ2TJxyiBweaqZsllMDt4clRIzPvLAk+JilZabpDvX8o28ZwO4B9sBx0SUc8 iBqYsAEU9yU3r88DAYmCF/PGMzGfyLZbeePsMY6I2GRN+zqQFonnGJ+i7FB94Anr1EnL Slslj8NKAdfy9oRLryA5YS5tslD3d8073VJ0teFNkvdZLNCCWpzIUgF9qHj90fcf2Fpi IPnacTZPjgivbeXht9yFACf7H7QA5mPW1T1RcpGffX8vPzvWm+99v4vdKHt+Tsi220sp wCGjqP+YqcDzW1/VK+qkSztubedyMP/muxeZmfQMtjonWZ40H9WSC5jXWJyQjEqPJ333 J+bg== X-Received: by 10.50.87.10 with SMTP id t10mr61963524igz.41.1408058862210; Thu, 14 Aug 2014 16:27:42 -0700 (PDT) Received: from Qiaobings-MacBook-Air.local (24-217-88-112.dhcp.stls.mo.charter.com. [24.217.88.112]) by mx.google.com with ESMTPSA id hu9sm903127igb.22.2014.08.14.16.27.41 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 14 Aug 2014 16:27:41 -0700 (PDT) From: Qiaobing Xie X-Google-Original-From: Qiaobing Xie Message-ID: <53ED45EC.8080906@gmail.com> Date: Thu, 14 Aug 2014 18:27:40 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: aws.ismail@windriver.com References: <53ED2DBF.4070003@gmail.com> <4B613BEE-2D07-417D-ACA3-6C228FADB14E@windriver.com> <53ED3710.3090008@windriver.com> In-Reply-To: <53ED3710.3090008@windriver.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] 1.7.0 release failed to compile on linux 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, 14 Aug 2014 23:24:36 -0000 OK, I made the following 3 changes and the v1.7.0 release tarball got built cleanly on my older machine (Ubuntu 12.04/kernel 3.13.0-32-generic, Intel C2D E6550 without SSE4.x, gcc 4.6.3): 1) kcompat.h change version check from 3.14.0 -> 3.13.8, as Roger suggested. 2) disable RTE_IXGBE_INC_VECTOR: -CONFIG_RTE_IXGBE_INC_VECTOR=y +CONFIG_RTE_IXGBE_INC_VECTOR=n 3) disable CONFIG_RTE_LIBRTE_ACL: -CONFIG_RTE_LIBRTE_ACL=y +CONFIG_RTE_LIBRTE_ACL=n I haven't tried to test run anything yet... What would be the implication without LIBRTE_ACL and IXGBE_INC_VECTOR built? -Q On 8/14/14 5:24 PM, Aws Ismail wrote: > > > On 08/14/2014 05:55 PM, Wiles, Roger Keith wrote: >> For the SKB function change I had to change the ifdef in the >> kcompat.h file around line 3848 (I think) to: >> >> /* #### Changed the next line to use (3,13,8) instead of (3,14,0) >> KeithW */ >> #if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,13,8) ) >> #if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= >> RHEL_RELEASE_VERSION(7,0))) >> #ifdef NETIF_F_RXHASH >> #define PKT_HASH_TYPE_L3 0 >> static inline void >> skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type) >> { >> skb->rxhash = hash; >> } >> #endif /* NETIF_F_RXHASH */ >> #endif /* < RHEL7 */ >> #endif /* < 3.14.0 */ >> >> >> Keith Wiles, Principal Technologist with CTO office, Wind River >> mobile 972-213-5533 >> >> On Aug 14, 2014, at 4:44 PM, Qiaobing Xie >> > wrote: >> >> Hi, >> >> I got the following error when I tried to compile 1.7.0 release >> tarball on a Linux box (Ubuntu 12.04/kernel=3.13.0-32-generic, >> gcc=4.6.3): >> >> ============ >> In file included from >> /home/qxie/dpdk-1.7.0/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_osdep.h:41:0, >> from >> /home/qxie/dpdk-1.7.0/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_hw.h:31, >> from >> /home/qxie/dpdk-1.7.0/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.h:31, >> from >> /home/qxie/dpdk-1.7.0/build/build/lib/librte_eal/linuxapp/kni/e1000_82575.c:38: >> /home/qxie/dpdk-1.7.0/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3853:1: >> error: conflicting types for ‘skb_set_hash’ >> /usr/src/linux-headers-3.13.0-32-generic/include/linux/skbuff.h:740:1: note: >> previous definition of ‘skb_set_hash’ was here > Last time I checked, I overcame this error by not using the tarball > but by simply cloning the dpdk git repo and checking out the > v1.7.0-rc4 tag. For example: > > git clone git://dpdk.org/dpdk > git checkout v1.7.0-rc4 > git checkout -b dpdk1.7.0-rc4 <---- the branch name is just an > example, you could decide on any other name as you see fit. > > My machine info: > > 3.11.0-20 kernel, ubuntu 12.04, gcc 4.6.3 > > From the v1.7.0-rc4 tag, viewing > lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3848, you could see: > > > #if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) ) > #if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= > RHEL_RELEASE_VERSION(7,0))) > #ifdef NETIF_F_RXHASH > #define PKT_HASH_TYPE_L3 0 > static inline void > skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type) > { > skb->rxhash = hash; > } > #endif /* NETIF_F_RXHASH */ > #endif /* < RHEL7 */ > #endif /* < 3.14.0 */ > > >> make[8]: *** >> [/home/qxie/dpdk-1.7.0/build/build/lib/librte_eal/linuxapp/kni/e1000_82575.o] >> Error 1 >> ============ >> >> Apparently the version check around 'skb_set_hash' in kcompat.h >> failed for some reason. To work around it, I temporarily commented >> out that 'skb_set_hash' definition code and rte_kni complied fine. >> But it failed again in librte_pmd_ixgbe: >> >> ============= >> In file included from >> /home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:41:0: >> /usr/lib/gcc/x86_64-linux-gnu/4.6/include/nmmintrin.h:31:3: error: >> #error "SSE4.2 instruction set not enabled" >> /home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c: In >> function ‘ixgbe_recv_pkts_vec’: >> /home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:297:3: >> error: implicit declaration of function ‘_mm_shuffle_epi8’ >> [-Werror=implicit-function-declaration] >> /home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:297:3: >> error: nested extern declaration of ‘_mm_shuffle_epi8’ >> [-Werror=nested-externs] >> /home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:297:11: >> error: incompatible types when assigning to type ‘__m128i’ from type >> ‘int’ >> /home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:298:11: >> error: incompatible types when assigning to type ‘__m128i’ from type >> ‘int’ >> /home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:313:11: >> error: incompatible types when assigning to type ‘__m128i’ from type >> ‘int’ >> /home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:314:11: >> error: incompatible types when assigning to type ‘__m128i’ from type >> ‘int’ >> /home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:341:3: >> error: implicit declaration of function ‘_mm_popcnt_u64’ >> [-Werror=implicit-function-declaration] >> /home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:341:3: >> error: nested extern declaration of ‘_mm_popcnt_u64’ >> [-Werror=nested-externs] >> cc1: all warnings being treated as errors >> make[3]: *** [ixgbe_rxtx_vec.o] Error 1 >> ============== >> >> My CPU is the older Intel C2D E6550 which does not have sse4.2/sse4.1 >> support. Is there a way to work around this? >> >> -Q >> >> >> >> >> >> >