luigirizzo / netmap

Automatically exported from code.google.com/p/netmap
BSD 2-Clause "Simplified" License
1.84k stars 534 forks source link

Can't build netmap with ice 1.13.7 driver #955

Open T1mbo opened 5 months ago

T1mbo commented 5 months ago

Hi!

I use:

I am trying to build the ice driver version 1.13.7 and I get an error when make I do: ./configure --no-apps --disable-vale --disable-generic --disable-ptnetmap --drivers=ice --select-version=ice:1.13.7 && make

and when make, I get an error:

make[3]: Entering directory '/usr/src/linux-headers-6.1.0-18-amd64'
  CC [M]  /home/t1mbo/git/netmap/ice-1.13.7/src/ice_main.o
In file included from /home/t1mbo/git/netmap/ice-1.13.7/src/ice_main.c:112:
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h: In function ‘ice_netmap_txsync’:
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:56:13: error: assignment to ‘struct ice_ring *’ from incompatible pointer type ‘struct ice_tx_ring *’ [-Werror=incompatible-pointer-types]
   56 |         txr = vsi->tx_rings[kring->ring_id];
      |             ^
In file included from /usr/src/linux-headers-6.1.0-18-common/include/linux/export.h:33,
                 from /usr/src/linux-headers-6.1.0-18-common/include/linux/linkage.h:7,
                 from /usr/src/linux-headers-6.1.0-18-common/include/linux/crash_core.h:5,
                 from /usr/src/linux-headers-6.1.0-18-common/include/linux/kexec.h:18,
                 from /usr/src/linux-headers-6.1.0-18-common/include/linux/crash_dump.h:5,
                 from /home/t1mbo/git/netmap/ice-1.13.7/src/ice_main.c:8:
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:57:34: error: invalid use of undefined type ‘struct ice_ring’
   57 |         if (unlikely(!txr || !txr->desc)) {
      |                                  ^~
/usr/src/linux-headers-6.1.0-18-common/include/linux/compiler.h:78:45: note: in definition of macro ‘unlikely’
   78 | # define unlikely(x)    __builtin_expect(!!(x), 0)
      |                                             ^
In file included from /home/t1mbo/git/netmap/ice-1.13.7/src/ice_main.c:9:
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: error: invalid use of undefined type ‘struct ice_ring’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: note: in definition of macro ‘ICE_TX_DESC’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: error: invalid use of undefined type ‘struct ice_ring’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: note: in definition of macro ‘ICE_TX_DESC’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: error: invalid use of undefined type ‘struct ice_ring’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: note: in definition of macro ‘ICE_TX_DESC’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:159:34: error: invalid use of undefined type ‘struct ice_ring’
  159 |                 writel(nic_i, txr->tail);
      |                                  ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:165:20: error: invalid use of undefined type ‘struct ice_ring’
  165 |         nic_i = txr->next_to_clean;
      |                    ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: error: invalid use of undefined type ‘struct ice_ring’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: note: in definition of macro ‘ICE_TX_DESC’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:186:20: error: invalid use of undefined type ‘struct ice_ring’
  186 |                 txr->next_to_clean = nic_i;
      |                    ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h: In function ‘ice_netmap_rxsync’:
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:228:13: error: assignment to ‘struct ice_ring *’ from incompatible pointer type ‘struct ice_rx_ring *’ [-Werror=incompatible-pointer-types]
  228 |         rxr = vsi->rx_rings[kring->ring_id];
      |             ^
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:229:34: error: invalid use of undefined type ‘struct ice_ring’
  229 |         if (unlikely(!rxr || !rxr->desc)) {
      |                                  ^~
/usr/src/linux-headers-6.1.0-18-common/include/linux/compiler.h:78:45: note: in definition of macro ‘unlikely’
   78 | # define unlikely(x)    __builtin_expect(!!(x), 0)
      |                                             ^
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:260:28: error: invalid use of undefined type ‘struct ice_ring’
  260 |                 nic_i = rxr->next_to_clean; // or also k2n(kring->nr_hwtail)
      |                            ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:218:65: error: invalid use of undefined type ‘struct ice_ring’
  218 | #define ICE_RX_DESC(R, i) (&(((union ice_32b_rx_flex_desc *)((R)->desc))[i]))
      |                                                                 ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:218:65: note: in definition of macro ‘ICE_RX_DESC’
  218 | #define ICE_RX_DESC(R, i) (&(((union ice_32b_rx_flex_desc *)((R)->desc))[i]))
      |                                                                 ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:305:28: error: invalid use of undefined type ‘struct ice_ring’
  305 |                         rxr->next_to_clean = nic_i;
      |                            ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:218:65: error: invalid use of undefined type ‘struct ice_ring’
  218 | #define ICE_RX_DESC(R, i) (&(((union ice_32b_rx_flex_desc *)((R)->desc))[i]))
      |                                                                 ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:218:65: note: in definition of macro ‘ICE_RX_DESC’
  218 | #define ICE_RX_DESC(R, i) (&(((union ice_32b_rx_flex_desc *)((R)->desc))[i]))
      |                                                                 ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:356:34: error: invalid use of undefined type ‘struct ice_ring’
  356 |                 writel(nic_i, rxr->tail);
      |                                  ^~
cc1: some warnings being treated as errors
make[4]: *** [/usr/src/linux-headers-6.1.0-18-common/scripts/Makefile.build:255: /home/t1mbo/git/netmap/ice-1.13.7/src/ice_main.o] Error 1
make[3]: *** [/usr/src/linux-headers-6.1.0-18-common/Makefile:2039: /home/t1mbo/git/netmap/ice-1.13.7/src] Error 2
make[3]: Leaving directory '/usr/src/linux-headers-6.1.0-18-amd64'
make[2]: *** [Makefile:250: __sub-make] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-6.1.0-18-common'
make[1]: *** [Makefile:180: all] Error 2
make[1]: Leaving directory '/home/t1mbo/git/netmap/ice-1.13.7/src'
make: *** [netmap.mak:88: build-ice] Error 2

I found a similar issue, then I found a commit that fixes this bug in version 1.12.7, but the patch for 1.13.7 looks exactly the same.

Can you help with solving the problem?

T1mbo commented 5 months ago

UPD: I tried to build version 1.12.18 and it build without any problems. but when building 1.13.7 I still get an error :(