From: Aws Ismail <aws.ismail-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
To: Qiaobing Xie <qiaobing.xie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: "dev-VfR2kkLFssw@public.gmane.org" <dev-VfR2kkLFssw@public.gmane.org>
Subject: Re: 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-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
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-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org<mailto:qiaobing.xie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>> 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:24 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-14 21:44 1.7.0 release failed to compile on linux Qiaobing Xie
[not found] ` <53ED2DBF.4070003-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-08-14 21:55 ` Wiles, Roger Keith
[not found] ` <4B613BEE-2D07-417D-ACA3-6C228FADB14E-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
2014-08-14 22:24 ` Aws Ismail [this message]
[not found] ` <53ED3710.3090008-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
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 ` [please ignore this test email] Wiles, Roger Keith
2014-08-14 22:15 ` 1.7.0 release failed to compile on linux Aws Ismail
[not found] ` <53ED34FC.3050405-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
2014-08-15 0:16 ` Neil Horman
[not found] ` <20140815001651.GA11038-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
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-cwa4wttnnzf54taoqtywwq@public.gmane.org \
--cc=dev-VfR2kkLFssw@public.gmane.org \
--cc=qiaobing.xie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.