[maint,v3] batman-adv: Fix build against recent Debian Stretch kernels

Message ID 1464424368-18635-1-git-send-email-sven@narfation.org (mailing list archive)
State Accepted, archived
Commit f8fd441e1e30f3a274c9bf44cc33372d4065cbb6
Delegated to: Marek Lindner
Headers

Commit Message

Sven Eckelmann May 28, 2016, 8:32 a.m. UTC
  The kernels for Debian stretch require some special CFLAGS settings which
are only correctly defined when NOSTDINC_FLAGS is defined inside the
execution of the Makefile via kbuild. But batman-adv sets it currently
outside to insert compatibility include headers and compat-sources.

This can be avoided by making the top Makefile kbuild compatible and
redefining the NOSTDINC_FLAGS when kbuild include this Makefile. The actual
build of the batman-adv module is then done by adding the subdirectory to
obj-y.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
v3:
 - append NOSTDINC_FLAGS with our own flags instead of overwriting it
v2:
 - Fixed noise from other patches in context (should now apply cleanly on next)
 
 Makefile | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
  

Comments

Martin Weinelt May 31, 2016, 7:07 a.m. UTC | #1
Tested-by: Martin Weinelt <martin@darmstadt.freifunk.net>

Thank you, this also fixes build on Debian Jessies 4.5 Backports Kernel.

Martin

On 28.05.2016 10:32, Sven Eckelmann wrote:
> The kernels for Debian stretch require some special CFLAGS settings which
> are only correctly defined when NOSTDINC_FLAGS is defined inside the
> execution of the Makefile via kbuild. But batman-adv sets it currently
> outside to insert compatibility include headers and compat-sources.
> 
> This can be avoided by making the top Makefile kbuild compatible and
> redefining the NOSTDINC_FLAGS when kbuild include this Makefile. The actual
> build of the batman-adv module is then done by adding the subdirectory to
> obj-y.
> 
> Signed-off-by: Sven Eckelmann <sven@narfation.org>
> ---
> v3:
>  - append NOSTDINC_FLAGS with our own flags instead of overwriting it
> v2:
>  - Fixed noise from other patches in context (should now apply cleanly on next)
>  
>  Makefile | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 5d2c058..2568fb2 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -43,7 +43,7 @@ RM ?= rm -f
>  REVISION= $(shell	if [ -d "$(PWD)/.git" ]; then \
>  				echo $$(git --git-dir="$(PWD)/.git" describe --always --dirty --match "v*" |sed 's/^v//' 2> /dev/null || echo "[unknown]"); \
>  			fi)
> -export NOSTDINC_FLAGS := \
> +NOSTDINC_FLAGS += \
>  	-I$(PWD)/compat-include/ \
>  	-include $(PWD)/compat.h \
>  	$(CFLAGS)
> @@ -52,8 +52,12 @@ ifneq ($(REVISION),)
>  NOSTDINC_FLAGS += -DBATADV_SOURCE_VERSION=\"$(REVISION)\"
>  endif
>  
> +obj-y += net/batman-adv/
> +
>  BUILD_FLAGS := \
> -	M=$(PWD)/net/batman-adv \
> +	M=$(PWD) \
> +	PWD=$(PWD) \
> +	REVISION=$(REVISION) \
>  	CONFIG_BATMAN_ADV=m \
>  	CONFIG_BATMAN_ADV_DEBUG=$(CONFIG_BATMAN_ADV_DEBUG) \
>  	CONFIG_BATMAN_ADV_BLA=$(CONFIG_BATMAN_ADV_BLA) \
> @@ -61,7 +65,7 @@ BUILD_FLAGS := \
>  	CONFIG_BATMAN_ADV_NC=$(CONFIG_BATMAN_ADV_NC) \
>  	CONFIG_BATMAN_ADV_MCAST=$(CONFIG_BATMAN_ADV_MCAST) \
>  	CONFIG_BATMAN_ADV_BATMAN_V=$(CONFIG_BATMAN_ADV_BATMAN_V) \
> -	INSTALL_MOD_DIR=updates/net/batman-adv/
> +	INSTALL_MOD_DIR=updates/
>  
>  all: config
>  	$(MAKE) -C $(KERNELPATH) $(BUILD_FLAGS)	modules
>
  
Marek Lindner June 6, 2016, 3:48 p.m. UTC | #2
On Tuesday, May 31, 2016 09:07:58 Martin Weinelt wrote:
> Tested-by: Martin Weinelt <martin@darmstadt.freifunk.net>
> 
> Thank you, this also fixes build on Debian Jessies 4.5 Backports Kernel.

Applied in revision f8fd441.

Thanks,
Marek
  

Patch

diff --git a/Makefile b/Makefile
index 5d2c058..2568fb2 100644
--- a/Makefile
+++ b/Makefile
@@ -43,7 +43,7 @@  RM ?= rm -f
 REVISION= $(shell	if [ -d "$(PWD)/.git" ]; then \
 				echo $$(git --git-dir="$(PWD)/.git" describe --always --dirty --match "v*" |sed 's/^v//' 2> /dev/null || echo "[unknown]"); \
 			fi)
-export NOSTDINC_FLAGS := \
+NOSTDINC_FLAGS += \
 	-I$(PWD)/compat-include/ \
 	-include $(PWD)/compat.h \
 	$(CFLAGS)
@@ -52,8 +52,12 @@  ifneq ($(REVISION),)
 NOSTDINC_FLAGS += -DBATADV_SOURCE_VERSION=\"$(REVISION)\"
 endif
 
+obj-y += net/batman-adv/
+
 BUILD_FLAGS := \
-	M=$(PWD)/net/batman-adv \
+	M=$(PWD) \
+	PWD=$(PWD) \
+	REVISION=$(REVISION) \
 	CONFIG_BATMAN_ADV=m \
 	CONFIG_BATMAN_ADV_DEBUG=$(CONFIG_BATMAN_ADV_DEBUG) \
 	CONFIG_BATMAN_ADV_BLA=$(CONFIG_BATMAN_ADV_BLA) \
@@ -61,7 +65,7 @@  BUILD_FLAGS := \
 	CONFIG_BATMAN_ADV_NC=$(CONFIG_BATMAN_ADV_NC) \
 	CONFIG_BATMAN_ADV_MCAST=$(CONFIG_BATMAN_ADV_MCAST) \
 	CONFIG_BATMAN_ADV_BATMAN_V=$(CONFIG_BATMAN_ADV_BATMAN_V) \
-	INSTALL_MOD_DIR=updates/net/batman-adv/
+	INSTALL_MOD_DIR=updates/
 
 all: config
 	$(MAKE) -C $(KERNELPATH) $(BUILD_FLAGS)	modules