From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <keith.wiles@windriver.com>
Received: from mail1.windriver.com (mail1.windriver.com [147.11.146.13])
 by dpdk.org (Postfix) with ESMTP id 593C6B361
 for <dev@dpdk.org>; Thu, 14 Aug 2014 23:52:49 +0200 (CEST)
Received: from ALA-HCB.corp.ad.wrs.com (ala-hcb.corp.ad.wrs.com
 [147.11.189.41])
 by mail1.windriver.com (8.14.9/8.14.5) with ESMTP id s7ELts5o018246
 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL);
 Thu, 14 Aug 2014 14:55:54 -0700 (PDT)
Received: from ALA-MBB.corp.ad.wrs.com ([169.254.1.39]) by
 ALA-HCB.corp.ad.wrs.com ([147.11.189.41]) with mapi id 14.03.0174.001; Thu,
 14 Aug 2014 14:55:54 -0700
From: "Wiles, Roger Keith" <keith.wiles@windriver.com>
To: Qiaobing Xie <qiaobing.xie@gmail.com>
Thread-Topic: [dpdk-dev] 1.7.0 release failed to compile on linux
Thread-Index: AQHPuAj3LpEht+QWmEiF1l1gd4aywZvRGk+A
Date: Thu, 14 Aug 2014 21:55:53 +0000
Message-ID: <4B613BEE-2D07-417D-ACA3-6C228FADB14E@windriver.com>
References: <53ED2DBF.4070003@gmail.com>
In-Reply-To: <53ED2DBF.4070003@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [172.25.40.162]
MIME-Version: 1.0
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
X-Content-Filtered-By: Mailman/MimeDel 2.1.15
Cc: "dev@dpdk.org" <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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Aug 2014 21:52:49 -0000

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 >=3D 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 =3D 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 <qiaobing.xie@gmail.com<mailto:qi=
aobing.xie@gmail.com>> 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=3D3.13.0-32-generic, gcc=3D4.6.3):

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
In file included from /home/qxie/dpdk-1.7.0/lib/librte_eal/linuxapp/kni/eth=
tool/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_ap=
i.h:31,
from /home/qxie/dpdk-1.7.0/build/build/lib/librte_eal/linuxapp/kni/e1000_82=
575.c:38:
/home/qxie/dpdk-1.7.0/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:385=
3:1: error: conflicting types for =91skb_set_hash=92
/usr/src/linux-headers-3.13.0-32-generic/include/linux/skbuff.h:740:1: note=
: previous definition of =91skb_set_hash=92 was here
make[8]: *** [/home/qxie/dpdk-1.7.0/build/build/lib/librte_eal/linuxapp/kni=
/e1000_82575.o] Error 1
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

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_h=
ash' definition code and rte_kni complied fine. But it failed again in libr=
te_pmd_ixgbe:

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
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 =
=91ixgbe_recv_pkts_vec=92:
/home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:297:3: error: i=
mplicit declaration of function =91_mm_shuffle_epi8=92 [-Werror=3Dimplicit-=
function-declaration]
/home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:297:3: error: n=
ested extern declaration of =91_mm_shuffle_epi8=92 [-Werror=3Dnested-extern=
s]
/home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:297:11: error: =
incompatible types when assigning to type =91__m128i=92 from type =91int=92
/home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:298:11: error: =
incompatible types when assigning to type =91__m128i=92 from type =91int=92
/home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:313:11: error: =
incompatible types when assigning to type =91__m128i=92 from type =91int=92
/home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:314:11: error: =
incompatible types when assigning to type =91__m128i=92 from type =91int=92
/home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:341:3: error: i=
mplicit declaration of function =91_mm_popcnt_u64=92 [-Werror=3Dimplicit-fu=
nction-declaration]
/home/qxie/dpdk-1.7.0/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:341:3: error: n=
ested extern declaration of =91_mm_popcnt_u64=92 [-Werror=3Dnested-externs]
cc1: all warnings being treated as errors
make[3]: *** [ixgbe_rxtx_vec.o] Error 1
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

My CPU is the older Intel C2D E6550 which does not have sse4.2/sse4.1 suppo=
rt. Is there a way to work around this?

-Q