From: Aws Ismail <aws.ismail@windriver.com>
To: Qiaobing Xie <qiaobing.xie@gmail.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] 1.7.0 release failed to compile on linux
Date: Thu, 14 Aug 2014 18:24:16 -0400 [thread overview]
Message-ID: <53ED3710.3090008@windriver.com> (raw)
In-Reply-To: <4B613BEE-2D07-417D-ACA3-6C228FADB14E@windriver.com>
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 <qiaobing.xie@gmail.com<mailto:qiaobing.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=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:
<snip>
#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 */
<snip>
> 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
>
>
>
>
>
>
next prev parent reply other threads:[~2014-08-14 22:18 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-14 21:44 Qiaobing Xie
2014-08-14 21:55 ` Wiles, Roger Keith
2014-08-14 22:24 ` Aws Ismail [this message]
2014-08-14 22:57 ` Qiaobing Xie
2014-08-14 23:27 ` Qiaobing Xie
2014-08-15 22:41 ` Thomas Monjalon
2014-08-17 0:10 ` [dpdk-dev] [please ignore this test email] Wiles, Roger Keith
2014-08-14 22:15 ` [dpdk-dev] 1.7.0 release failed to compile on linux Aws Ismail
2014-08-15 0:16 ` Neil Horman
2014-08-15 0:31 ` Qiaobing Xie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53ED3710.3090008@windriver.com \
--to=aws.ismail@windriver.com \
--cc=dev@dpdk.org \
--cc=qiaobing.xie@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).