DPDK patches and discussions
 help / color / mirror / Atom feed
From: Aws Ismail <aws.ismail@windriver.com>
To: Qiaobing Xie <qiaobing.xie@gmail.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] 1.7.0 release failed to compile on linux
Date: Thu, 14 Aug 2014 18:15:24 -0400	[thread overview]
Message-ID: <53ED34FC.3050405@windriver.com> (raw)
In-Reply-To: <53ED2DBF.4070003@gmail.com>


On 08/14/2014 05: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
> 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"
 From the error, nmmintrin.h contains built-in CPU calls that depend on 
the CPU having SSE4.2 extensions. You need to hunt down the call that is 
being executed and see which file is including nmmintrin.h. For example, 
I have encountered similar error on a CPU that does not have SSE4.1 and 
4.2 extension and it was trying to call the built-in HW crc hashing 
call. instead I switched with rte_jhash.h, the alternative SW 
implementation of the hashing call.

Looking below, nmmintrin.h is being included by the 
lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c, from the looks of it. This means 
that your defconfig (did you use the default one?) has 
CONFIG_RTE_IXGBE_INC_VECTOR value set to "y". try setting it to "n" and 
see where the build would stop next looking for another SSE4.x based 
builtin call.

My ultimate recommendation is to update you CPU to a newer one or 
perform the build/run on a separate newer CPU.

Aws\

> /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
>
>
>
>
>

  parent reply	other threads:[~2014-08-14 22:09 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
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 ` Aws Ismail [this message]
2014-08-15  0:16   ` [dpdk-dev] 1.7.0 release failed to compile on linux 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=53ED34FC.3050405@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).