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&#174; 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&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to