[dpdk-dev] Building 1.7.1 or 1.8.0-rc4 on latest CentOS 6.6 fails

Message ID CAF-jSjRe4tT-t_iVAJWdmMFnF5K2Ls6LhydUPsgNQj0bWfUBdQ@mail.gmail.com (mailing list archive)
State Not Applicable, archived
Headers

Commit Message

Jincheng Miao Dec. 17, 2014, 6:21 a.m. UTC
  On Tue, Dec 16, 2014 at 11:12 PM, Barak Enat <barak@saguna.net> wrote:
> Hi
>
>
>
> When building 1.7.1 or 1.8.0-rc4 on recent CentOS 6 (6.6) I got this error:
>
>
>
> In file included from
> /home/makerpm/rpmbuild/BUILD/dpdk-1.8.0/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_osdep.h:41,
>
>                  from
> /home/makerpm/rpmbuild/BUILD/dpdk-1.8.0/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_hw.h:31,
>
>                  from
> /home/makerpm/rpmbuild/BUILD/dpdk-1.8.0/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_api.h:31,
>
>                  from
> /home/makerpm/rpmbuild/BUILD/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/e1000_82575.c:38:
>
> /home/makerpm/rpmbuild/BUILD/dpdk-1.8.0/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h:3870:
> error: conflicting types for 'skb_set_hash'
>
> include/linux/skbuff.h:620: note: previous definition of 'skb_set_hash' was
> here
>
> make[8]: ***
> [/home/makerpm/rpmbuild/BUILD/dpdk-1.8.0/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/e1000_82575.o]
> Error 1
>
>
>
> It seems the assumption that skb_set_hash is missing in CentOS prior to
> version 7 is not valid anymore.

Yes, you are right, this function skb_set_hash is added from Cent 6.6,
so some macro should be changed like this:

---

---

Regards,
Jincheng Miao

>
> Didn't see a fix of it in trunk or in the patches.
>
>
>
> Thanks,
>
> Barak
  

Comments

Thomas Monjalon Dec. 17, 2014, 10:09 a.m. UTC | #1
2014-12-17 14:21, Jincheng Miao:
> On Tue, Dec 16, 2014 at 11:12 PM, Barak Enat <barak@saguna.net> wrote:
> > It seems the assumption that skb_set_hash is missing in CentOS prior to
> > version 7 is not valid anymore.
> 
> Yes, you are right, this function skb_set_hash is added from Cent 6.6,
> so some macro should be changed like this:
> 
[...]
>  #if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) )
> -#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7,0)))
> +#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,6)))
>  #if (!(UBUNTU_KERNEL_CODE >= UBUNTU_KERNEL_VERSION(3,13,0,30,54) \
>      && (UBUNTU_RELEASE_CODE == UBUNTU_RELEASE_VERSION(12,4) \
>       || UBUNTU_RELEASE_CODE == UBUNTU_RELEASE_VERSION(14,4))))

A patch would be appreciate :)

Thanks
  
Thomas Monjalon Dec. 18, 2014, 10:05 p.m. UTC | #2
2014-12-17 11:09, Thomas Monjalon:
> 2014-12-17 14:21, Jincheng Miao:
> > On Tue, Dec 16, 2014 at 11:12 PM, Barak Enat <barak@saguna.net> wrote:
> > > It seems the assumption that skb_set_hash is missing in CentOS prior to
> > > version 7 is not valid anymore.
> > 
> > Yes, you are right, this function skb_set_hash is added from Cent 6.6,
> > so some macro should be changed like this:
> > 
> [...]
> >  #if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) )
> > -#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7,0)))
> > +#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,6)))
> >  #if (!(UBUNTU_KERNEL_CODE >= UBUNTU_KERNEL_VERSION(3,13,0,30,54) \
> >      && (UBUNTU_RELEASE_CODE == UBUNTU_RELEASE_VERSION(12,4) \
> >       || UBUNTU_RELEASE_CODE == UBUNTU_RELEASE_VERSION(14,4))))
> 
> A patch would be appreciate :)

Should be fixed now:
	http://dpdk.org/browse/dpdk/commit/?id=a8aac461cbdb
  

Patch

diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/
index 3dbc07a..1213cc6 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h
@@ -3860,7 +3860,7 @@  static inline struct sk_buff *__kc__vlan_hwaccel_put_tag(s
 #endif /* >= 3.10.0 */

 #if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) )
-#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7,0)))
+#if (!(RHEL_RELEASE_CODE && RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,6)))
 #if (!(UBUNTU_KERNEL_CODE >= UBUNTU_KERNEL_VERSION(3,13,0,30,54) \
     && (UBUNTU_RELEASE_CODE == UBUNTU_RELEASE_VERSION(12,4) \
      || UBUNTU_RELEASE_CODE == UBUNTU_RELEASE_VERSION(14,4))))