Aha. I found it. It seems the kernel Version is not correctly detected.
When i put #define u64_stats_fetch_begin_irq u64_stats_fetch_begin_bh #define u64_stats_fetch_retry_irq u64_stats_fetch_retry_bh right at the top of kcompat.h the module compiles just fine (i know - not advisable - but for the test). I see that there is already something for this in the source: #if (!( UBUNTU_VERSION_CODE && UBUNTU_VERSION_CODE >= UBUNTU_VERSION(3,13,0,30))) #define u64_stats_fetch_begin_irq u64_stats_fetch_begin_bh #define u64_stats_fetch_retry_irq u64_stats_fetch_retry_bh #endif I think all it needs it to make sure kernel versions are detected correctly. Mit freundlichen Grüßen Ronny Egner -- Ronny Egner Oracle Certified Master 11g (OCM) Mobile: +49 170 8139903 EMail: ronnyeg...@ronnyegner-consulting.de Am 04.08.15 12:20 schrieb "Ronny Egner" unter <ronnyeg...@ronnyegner-consulting.de>: >Hi Todd, > >well, i am doing something wrong - but not what you think. I spend some >time trying to find out which kernel version does work and which does not. > > > >3.13.x >======= > > >Linux homenas 3.13.0-031300-generic #201401192235 ==> WORKS — probably >the one you tested with >Linux homenas 3.13.1-031301-generic #201401291035 ==> WORKS >Linux homenas 3.13.7-031307-generic #201403240156 ==> WORKS >Linux homenas 3.13.10-031310-generic #201404141115 ==> WORKS >Linux homenas 3.13.11-031311-generic (=3.13.11.0) #201404222035 ==> WORKS >Linux homenas 3.13.11-03131102-generic (=3.13.11.2) #201405081435 ==> >WORKS >Linux homenas 3.13.11-03131104-generic #201406201536 (=3.13.11.4) ==> >WORKS > >Linux homenas 3.13.11-03131105-generic #201407181735 (=3.13.11.5) ==> DOES >*NOT* WORK > >root@homenas:/usr/src/i40e-1.2.48/src# make >make[1]: Entering directory >`/usr/src/linux-headers-3.13.11-03131105-generic' > CC [M] /usr/src/i40e-1.2.48/src/i40e/i40e_main.o >In file included from /usr/src/i40e-1.2.48/src/i40e/i40e.h:59:0, > from /usr/src/i40e-1.2.48/src/i40e/i40e_main.c:28: >/usr/src/i40e-1.2.48/src/i40e/kcompat.h:760:2: error: #error >UTS_UBUNTU_RELEASE_ABI is too large... > #error UTS_UBUNTU_RELEASE_ABI is too large... > ^ >/usr/src/i40e-1.2.48/src/i40e/i40e_main.c: In function >‘i40e_get_netdev_stats_struct’: >/usr/src/i40e-1.2.48/src/i40e/i40e_main.c:497:4: error: implicit >declaration of function ‘u64_stats_fetch_begin_irq’ >[-Werror=implicit-function-declaration] > start = u64_stats_fetch_begin_irq(&tx_ring->syncp); > ^ >/usr/src/i40e-1.2.48/src/i40e/i40e_main.c:500:3: error: implicit >declaration of function ‘u64_stats_fetch_retry_irq’ >[-Werror=implicit-function-declaration] > } while (u64_stats_fetch_retry_irq(&tx_ring->syncp, start)); > ^ >cc1: some warnings being treated as errors >make[2]: *** [/usr/src/i40e-1.2.48/src/i40e/i40e_main.o] Error 1 >make[1]: *** [_module_/usr/src/i40e-1.2.48/src/i40e] Error 2 >make[1]: Leaving directory >`/usr/src/linux-headers-3.13.11-03131105-generic' >make: *** [i40e/i40e.ko] Error 2 > > > >Linux homenas 3.13.11-03131111-generic (=3.13.11.11) #201411111336 ==> >DOES NOT WORK > > >—> As you can see: Starting with 3.13.11.5 the compile breaks. 3.13.11.4 >works fine. All older versions as well. > > > >3.14.x >====== > >Linux homenas 3.14.10-031410-generic #201406302353 ==> WORKS >Linux homenas 3.14.12-031412-generic #201407091455 ==> WORKS > >Linux homenas 3.14.13-031413-generic ==> DOES *NOT* WORK > > >As can see older kernels when 3.14.13 versions work. „Newer“ do not. >The error message is always the same. I guess it has something to do with >changes in the kernel. But most likely >they are not introduced by Ubuntu - they are introduced by the vanilla >kernel. > > >If you want me to i can compile a vanilla kernel and see if that >assumption is true. > > > > > >In any way: I am not a great C developer. But from my point of view it >seems that the function must be declared in the >sources to avoid the warning. And if the UTS_UBUNTU_RELEASE macro gets >removed the error is still the same. > > >Mit freundlichen Grüßen >Ronny Egner >-- >Ronny Egner >Oracle Certified Master 11g (OCM) > >Mobile: +49 170 8139903 >EMail: ronnyeg...@ronnyegner-consulting.de > > > > >Am 03.08.15 18:41 schrieb "Fujinaka, Todd" unter ><todd.fujin...@intel.com>: > >>I think you're doing something wrong. I just downloaded all the latest >>packages and the kernel is 3.13-61-generic and everything compiles just >>fine. >> >>Todd Fujinaka >>Software Application Engineer >>Networking Division (ND) >>Intel Corporation >>todd.fujin...@intel.com >>(503) 712-4565 >> >>-----Original Message----- >>From: Ronny Egner [mailto:ronnyeg...@ronnyegner-consulting.de] >>Sent: Monday, August 03, 2015 8:46 AM >>To: Fujinaka, Todd; e1000-devel@lists.sourceforge.net >>Subject: Re: [E1000-devel] I40E: UTS_UBUNTU_RELEASE_ABI is too large on >>Ubuntu 14.04 with 3.14.43-031443-generic Kernel >> >>Very well. I stick with the compiling version then (1.1.23 does compile). >> >> >>Mit freundlichen Grüßen >>Ronny Egner >>-- >>Ronny Egner >>Oracle Certified Master 11g (OCM) >> >>Mobile: +49 170 8139903 >>EMail: ronnyeg...@ronnyegner-consulting.de >> >> >> >> >>Am 03.08.15 17:43 schrieb "Fujinaka, Todd" unter >><todd.fujin...@intel.com>: >> >>>The major distros often have their own kernels. They stay on a stable >>>kernel but backport patches, making something wholly unique. To >>>identify a unique kernel, Red Hat and SuSE put identifiers in their >>>kernel. Until recently, Ubuntu did not, even after multiple requests. >>> >>>It takes some effort to compile on these hybrid kernels, and that's >>>what's in our kcompat.[ch] files. Without the kernel identifiers in >>>Ubuntu (i.e. pre-14.04.1), it's difficult to target the workarounds. >>> >>>Also, we have a finite number of people working on the drivers and we >>>only support a subset of all the variants out there. Even harder than >>>writing the code is validating the code, especially with all the >>>different hardware there is. Stable kernels, Red Hat, and SuSE are >>>officially supported at this time. >>> >>>Todd Fujinaka >>>Software Application Engineer >>>Networking Division (ND) >>>Intel Corporation >>>todd.fujin...@intel.com >>>(503) 712-4565 >>> >>>-----Original Message----- >>>From: Ronny Egner [mailto:ronnyeg...@ronnyegner-consulting.de] >>>Sent: Monday, August 03, 2015 8:24 AM >>>To: Fujinaka, Todd; e1000-devel@lists.sourceforge.net >>>Subject: Re: [E1000-devel] I40E: UTS_UBUNTU_RELEASE_ABI is too large on >>>Ubuntu 14.04 with 3.14.43-031443-generic Kernel >>> >>>Hi, >>> >>>question: Why is Ubuntu so much different here? I was under the >>>impression that the kernel does not differ? >>> >>>I have tried to remove the UTS_UBUNTU_RELEASE_ABI directive and the >>>error (UTS_UBUNTU_RELEASE_ABI is too large) went away. >>>The error about the implicit declaration remained which in the end >>>caused the build to about remained. I searched in the Makefile but did >>>not found where the gcc option '-Werror=implicit-function-declaration‘ >>>is defined. >>> >>> >>> >>>Mit freundlichen Grüßen >>>Ronny Egner >>>-- >>>Ronny Egner >>>Oracle Certified Master 11g (OCM) >>> >>>Mobile: +49 170 8139903 >>>EMail: ronnyeg...@ronnyegner-consulting.de >>> >>> >>> >>> >>>Am 03.08.15 16:43 schrieb "Fujinaka, Todd" unter >>><todd.fujin...@intel.com>: >>> >>>>Well, it will be fixed then, in due time. I would suggest you contact >>>>your FAE if this is urgent but as I said before, Ubuntu is not >>>>officially supported in any way at this time. >>>> >>>>Todd Fujinaka >>>>Software Application Engineer >>>>Networking Division (ND) >>>>Intel Corporation >>>>todd.fujin...@intel.com >>>>(503) 712-4565 >>>> >>>>-----Original Message----- >>>>From: Ronny Egner [mailto:ronnyeg...@ronnyegner-consulting.de] >>>>Sent: Saturday, August 01, 2015 10:01 AM >>>>To: Fujinaka, Todd; e1000-devel@lists.sourceforge.net >>>>Subject: AW: [E1000-devel] I40E: UTS_UBUNTU_RELEASE_ABI is too large >>>>on Ubuntu 14.04 with 3.14.43-031443-generic Kernel >>>> >>>>Hi, >>>> >>>>by saying "non-default" i meant that i installed a newer kernel than >>>>the one that is shipped by default with the distribution from the >>>>Ubuntu kernel repository >>>>(http://kernel.ubuntu.com/~kernel-ppa/mainline/). In my case i fetched >>>>the most recent 3.14 kernel at that time: 3.14.43. >>>> >>>>I am running a Ubuntu 14.04.2 LTS (GNU/Linux 3.14.43-031443-generic >>>>x86_64). >>>> >>>> >>>>Ronny >>>> >>>> >>>>-----Ursprüngliche Nachricht----- >>>>Von: Fujinaka, Todd [mailto:todd.fujin...@intel.com] >>>>Gesendet: Samstag, 1. August 2015 18:48 >>>>An: Ronny Egner; e1000-devel@lists.sourceforge.net >>>>Betreff: RE: [E1000-devel] I40E: UTS_UBUNTU_RELEASE_ABI is too large >>>>on Ubuntu 14.04 with 3.14.43-031443-generic Kernel >>>> >>>>What is a non-default kernel? We don't officially support Ubuntu at >>>>this point and the only support we have planned is compiling on LTS >>>>kernels. I would suggest sticking with kernels released as LTS. >>>> >>>>Also, Ubuntu didn't have kernel identifiers that we could use until >>>>14.04.1, so you can't use the initially released 14.04LTS to compile >>>>our out-of-tree drivers. >>>> >>>>Todd Fujinaka >>>>Software Application Engineer >>>>Networking Division (ND) >>>>Intel Corporation >>>>todd.fujin...@intel.com >>>>(503) 712-4565 >>>> >>>>-----Original Message----- >>>>From: Ronny Egner [mailto:ronnyeg...@ronnyegner-consulting.de] >>>>Sent: Saturday, August 01, 2015 1:36 AM >>>>To: e1000-devel@lists.sourceforge.net >>>>Subject: [E1000-devel] I40E: UTS_UBUNTU_RELEASE_ABI is too large on >>>>Ubuntu 14.04 with 3.14.43-031443-generic Kernel >>>> >>>>Hi List, >>>> >>>>i am trying to compile the most recent i40e driver on my Ubuntu 14.04 >>>>64bit with a non-default kernel (3.14.43-031443-generic). >>>>Every version after i40e-1.1.23 gives the following error during >>>>compilation: >>>> >>>>root@homenas:/usr/src/i40e-1.2.38/src# make >>>>make[1]: Entering directory >>>>`/usr/src/linux-headers-3.14.43-031443-generic' >>>> CC [M] /usr/src/i40e-1.2.38/src/i40e/i40e_main.o >>>>In file included from /usr/src/i40e-1.2.38/src/i40e/i40e.h:59:0, >>>> from /usr/src/i40e-1.2.38/src/i40e/i40e_main.c:28: >>>>/usr/src/i40e-1.2.38/src/i40e/kcompat.h:757:2: error: #error >>>>UTS_UBUNTU_RELEASE_ABI is too large... >>>> #error UTS_UBUNTU_RELEASE_ABI is too large... >>>> ^ >>>>/usr/src/i40e-1.2.38/src/i40e/i40e_main.c: In function >>>>Œi40e_get_netdev_stats_struct¹: >>>>/usr/src/i40e-1.2.38/src/i40e/i40e_main.c:496:4: error: implicit >>>>declaration of function Œu64_stats_fetch_begin_irq¹ >>>>[-Werror=implicit-function-declaration] >>>> start = u64_stats_fetch_begin_irq(&tx_ring->syncp); >>>> ^ >>>>/usr/src/i40e-1.2.38/src/i40e/i40e_main.c:499:3: error: implicit >>>>declaration of function Œu64_stats_fetch_retry_irq¹ >>>>[-Werror=implicit-function-declaration] >>>> } while (u64_stats_fetch_retry_irq(&tx_ring->syncp, start)); >>>> ^ >>>>cc1: some warnings being treated as errors >>>>make[2]: *** [/usr/src/i40e-1.2.38/src/i40e/i40e_main.o] Error 1 >>>>make[1]: *** [_module_/usr/src/i40e-1.2.38/src/i40e] Error 2 >>>>make[1]: Leaving directory >>>>`/usr/src/linux-headers-3.14.43-031443-generic' >>>>make: *** [i40e/i40e.ko] Error 2 >>>>root@homenas:/usr/src/i40e-1.2.38/src# ls -la >>>> >>>> >>>> >>>>The 1.1.23 version compiles just fine. >>>> >>>>If this could be fixed i´d greatly appreciate it. I am happy to assist >>>>with any kind of testing. >>>> >>>>Replies to my mail is preferred because i am not member of the list. >>>> >>>>Mit freundlichen Grüßen >>>>Ronny Egner >>>>-- >>>>Ronny Egner >>>>Oracle Certified Master 11g (OCM) >>>> >>>>Mobile: +49 170 8139903 >>>>EMail: ronnyeg...@ronnyegner-consulting.de >>>> >>>> >>>>---------------------------------------------------------------------- >>>>- >>>>--- >>>>---- >>>>_______________________________________________ >>>>E1000-devel mailing list >>>>E1000-devel@lists.sourceforge.net >>>>https://lists.sourceforge.net/lists/listinfo/e1000-devel >>>>To learn more about Intel® Ethernet, visit >>>>http://communities.intel.com/community/wired >>> >> > ------------------------------------------------------------------------------ _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired