Project

General

Profile

Actions

Bug #342

closed

soft-interface.c:1050:7: 'struct net_device' has no member named 'destructor'

Added by Ruben Kelevra almost 7 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Start date:
07/21/2017
Due date:
% Done:

0%

Estimated time:

Description

I tried to compile batman-adv 2017.1 with gcc 7.1.1 for kernel 4.11.9 and run into some trouble.

make -C /usr/lib/modules/4.11.9-1-ARCH/build M=/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build PWD=/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build REVISION= CONFIG_BATMAN_ADV=m CONFIG_BATMAN_ADV_DEBUG=n CONFIG_BATMAN_ADV_DEBUGFS=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y CONFIG_BATMAN_ADV_NC=n CONFIG_BATMAN_ADV_MCAST=n CONFIG_BATMAN_ADV_BATMAN_V=n INSTALL_MOD_DIR=updates/    modules
make[1]: Entering directory '/usr/lib/modules/4.11.9-1-ARCH/build'
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/bat_algo.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/bat_iv_ogm.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/bitarray.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/bridge_loop_avoidance.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/debugfs.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/distributed-arp-table.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/fragmentation.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/gateway_client.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/gateway_common.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/hard-interface.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/hash.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/icmp_socket.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/main.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/netlink.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/originator.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/routing.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/send.o
  CC [M]  /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/soft-interface.o
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/soft-interface.c: In function 'batadv_softif_init_early':
/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/soft-interface.c:1050:7: error: 'struct net_device' has no member named 'destructor'; did you mean 'priv_destructor'?
  dev->destructor = batadv_softif_free;
       ^~~~~~~~~~
       priv_destructor
make[3]: *** [scripts/Makefile.build:295: /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv/soft-interface.o] Error 1
make[2]: *** [scripts/Makefile.build:553: /tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build/net/batman-adv] Error 2
make[1]: *** [Makefile:1492: _module_/tmp/yaourt-tmp-ruben/aur-batman-adv/src/batman-adv-2017.1/build] Error 2
make[1]: Leaving directory '/usr/lib/modules/4.11.9-1-ARCH/build'
make: *** [Makefile:90: all] Error 2

Actions #1

Updated by Sven Eckelmann almost 7 years ago

  • Status changed from New to In Progress
  • Assignee changed from batman-adv developers to Ruben Kelevra

Unfortunately, somebody thought that it is a good idea to change the API with a stable kernel. Not much we can do about it and we will most likely not fix it for those stable kernels (unless somebody wants to go through all those stable kernels and add the checks to compat-include/linux/netdevice.h). Please apply https://patchwork.open-mesh.org/project/b.a.t.m.a.n./patch/20170609070510.19552-1-sven@narfation.org/

Btw. your kernel is EOL

Actions #2

Updated by Sven Eckelmann almost 7 years ago

Just searched through the Linux stable commits and for references to this change

$ git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
$ cd linux-stable
$ for i in $(git log --grep 'Upstream commit cf124db566e6b036b8bcbe8decbed740bdfac8c6' --all --pretty=oneline|awk '{ print $1 }'); do git tag --contains "${i}"|sort -V|head -n1;done
v4.11.9

v4.11.9-v4.11.12 are the only pre 4.12 kernels which have this commit backported. It is therefore less of a problem for us to mark the affected versions than I've expected. Can you please apply https://patchwork.open-mesh.org/project/b.a.t.m.a.n./patch/20170609164234.26938-1-sven@narfation.org/ and https://patchwork.open-mesh.org/project/b.a.t.m.a.n./patch/20170721091709.7978-1-sven@narfation.org/ and test again

Actions #3

Updated by Ruben Kelevra almost 7 years ago

[QUOTE]Btw. your kernel is EOL[/QUOTE]

Well, under archlinux, unfortunately, the 4.12 kernel is still in testing ... I doubt that's without a good reason, so I gonna wait until it's moved to the stable branch. :)

I'll try your patches 17043 and 17074 and report back.

Actions #5

Updated by Sven Eckelmann almost 7 years ago

  • Status changed from In Progress to Resolved
  • Target version set to 2017.2
Actions #6

Updated by Sven Eckelmann over 6 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF