batman-adv: Fix Kconfig dependencies regarding multicast optimizations
PATCH 1/1 batman-adv: Fix Kconfig dependencies regarding multicast optimizations
Since recently the multicast optimizations are using functions from the bridge module. If batman-adv is a kernel built-in, then these bridge functions need to be accessible immediately. Thus adding a Kconfig dependency for the multicast optimizations to depend on batman-adv being built as a module if the bridge is built as a module, too.
This fixes build errors like the following:
~~~
net/built-in.o: In function `batadv_mcast_mla_update':
Quoted 1 line
Quoted 1 line
(.text+0x19b7eb): undefined reference to `br_multicast_has_querier_anywhere'
net/built-in.o: In function `batadv_mcast_mla_update':
Quoted 1 line
Quoted 1 line
(.text+0x19b7fa): undefined reference to `br_multicast_has_querier_adjacent'
net/built-in.o: In function `batadv_mcast_mla_update':
(.text+0x19b809): undefined reference to br_multicast_has_querier_anywhere' net/built-in.o: In function batadv_mcast_mla_update':
(.text+0x19b818): undefined reference to br_multicast_has_querier_adjacent' net/built-in.o: In function batadv_mcast_mla_update':
Quoted 1 line
Quoted 1 line
(.text+0x19b8cf): undefined reference to `br_multicast_list_adjacent'
~~~
--- net/batman-adv/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/batman-adv/Kconfig +1 -1
@@ -66,7 +66,7 @@ config BATMAN_ADV_NC config BATMAN_ADV_MCAST bool "Multicast optimisation" - depends on BATMAN_ADV && INET + depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y) default n help This option enables the multicast optimisation which aims to
Signature · 1 line
2.1.4
PATCH 15/28 undefined reference to `br_multicast_has_querier_anywhere']
https://lists.01.org/pipermail/kbuild-all/2016-June/021435.html
----- Forwarded message from kbuild test robot <[email protected]> -----
Date: Thu, 30 Jun 2016 01:00:47 +0800
From: kbuild test robot <[email protected]>
Cc: [email protected], Simon Wunderlich <[email protected]>, Linus Lüssing <[email protected]>, Marek Lindner <[email protected]>
Subject: [batman:batman-adv/next 15/28] undefined reference to `br_multicast_has_querier_anywhere'
tree: git://git.open-mesh.org/linux-merge batman-adv/next
head: a43fbc01d3f5ef77cab5625f26fa3740229ecf63
commit: 339339cb691ce0318b236cb245a0fdbface88b39 [15/28] batman-adv: Add multicast optimization support for bridged setups
config: i386-randconfig-h0-06292136 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
git checkout 339339cb691ce0318b236cb245a0fdbface88b39
# save the attached .config to linux build tree
make ARCH=i386 All errors (new ones prefixed by >>):
net/built-in.o: In function `batadv_mcast_mla_update':
Quoted 1 line
Quoted 1 line
(.text+0x19b7eb): undefined reference to `br_multicast_has_querier_anywhere'
net/built-in.o: In function `batadv_mcast_mla_update':
Quoted 1 line
Quoted 1 line
(.text+0x19b7fa): undefined reference to `br_multicast_has_querier_adjacent'
net/built-in.o: In function `batadv_mcast_mla_update':
(.text+0x19b809): undefined reference to br_multicast_has_querier_anywhere' net/built-in.o: In function batadv_mcast_mla_update':
(.text+0x19b818): undefined reference to br_multicast_has_querier_adjacent' net/built-in.o: In function batadv_mcast_mla_update':
Quoted 1 line
Quoted 1 line
(.text+0x19b8cf): undefined reference to `br_multicast_list_adjacent'
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
----- End forwarded message -----
Quoted 5 lines · On Thursday 30 June 2016 10:09:25 Linus Lüssing wrote:
Since recently the multicast optimizations are using functions from the bridge module. If batman-adv is a kernel built-in, then these bridge functions need to be accessible immediately. Thus adding a
Kconfigdependency for the multicast optimizations to depend on batman-adv being built as a module if the bridge is built as a module, too.
[...]
net/batman-adv/Kconfig config BATMAN_ADV_NC · line 72
Quoted 7 lines
config
BATMAN_ADV_MCASTnet/batman-adv/Kconfig +1
-1bool "Multicast optimisation" - depends on BATMAN_ADV && INET + depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y) default n help This option enables the multicast optimisation which aims to
The used functions are provided via stubs in include/linux/if_bridge.h when bridge is disabled. So the symbols are only missing when the batman-adv code is compiled as part of the kernel but the bridge code is compiled as modules. So this change seems to make sense.
It is now part of the linux-merge.git.
Kind regards,
Sven
Marek Lindner
AppliedQuoted 19 lines · On Thursday, June 30, 2016 16:00:10 Sven Eckelmann wrote:
Quoted 5 lines · On Thursday 30 June 2016 10:09:25 Linus Lüssing wrote:
Since recently the multicast optimizations are using functions from the bridge module. If batman-adv is a kernel built-in, then these bridge functions need to be accessible immediately. Thus adding a
Kconfigdependency for the multicast optimizations to depend on batman-adv being built as a module if the bridge is built as a module, too.[...]
net/batman-adv/Kconfig config BATMAN_ADV_NC · line 72
Quoted 9 lines
config
BATMAN_ADV_MCAST
bool "Multicast optimisation"net/batman-adv/Kconfig +1
-1- depends on BATMAN_ADV && INET + depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y) default n help This option enables the multicast optimisation which aims to
Quoted 6 lines
The used functions are provided via stubs in
include/linux/if_bridge.hwhen bridge is disabled. So the symbols are only missing when the batman-adv code is compiled as part of the kernel but the bridge code is compiled as modules. So this change seems to make sense.Reviewed-by Sven Eckelmann <[email protected]>
Applied in revision e917bb4.
Thanks,
Marek