2011-05-10 22:53:37

by Kevin Cernekee

[permalink] [raw]
Subject: [PATCH] kbuild: Fix GNU make v3.80 compatibility

According to Documentation/Changes, the kernel should be buildable with
GNU make 3.80+. Commit 88d7be031f9f975bb3f50a0b5ef3796a671e7edf (kbuild:
Use a single clean rule for kernel and external modules) introduced the
"$(or" construct, which requires make 3.81. This causes "make clean" to
malfunction when it is used with external modules.

Replace "$(or" with an equivalent "$(if" expression, to restore backward
compatibility.

Signed-off-by: Kevin Cernekee <[email protected]>
Cc: [email protected]
---
Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index 41ea6fb..d593b12 100644
--- a/Makefile
+++ b/Makefile
@@ -1374,7 +1374,7 @@ endif # KBUILD_EXTMOD
clean: $(clean-dirs)
$(call cmd,rmdirs)
$(call cmd,rmfiles)
- @find $(or $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \
+ @find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
-o -name '*.symtypes' -o -name 'modules.order' \
--
1.7.5


2011-05-11 16:27:25

by Michal Marek

[permalink] [raw]
Subject: Re: [PATCH] kbuild: Fix GNU make v3.80 compatibility

On Tue, May 10, 2011 at 03:47:16PM -0700, Kevin Cernekee wrote:
> According to Documentation/Changes, the kernel should be buildable with
> GNU make 3.80+. Commit 88d7be031f9f975bb3f50a0b5ef3796a671e7edf (kbuild:
> Use a single clean rule for kernel and external modules) introduced the
> "$(or" construct, which requires make 3.81. This causes "make clean" to
> malfunction when it is used with external modules.
>
> Replace "$(or" with an equivalent "$(if" expression, to restore backward
> compatibility.
>
> Signed-off-by: Kevin Cernekee <[email protected]>
> Cc: [email protected]

Pushed to kbuild-2.6.git#kbuild, thanks.

Michal