Re: kbuild: Port build system to the future versions of gnu make.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jan 28, 2024 at 7:14 AM Dmitry Goncharov
<dgoncharov@xxxxxxxxxxxx> wrote:
>
> Port build system to the future (post make-4.4.1) versions of gnu make.
>
> Starting from https://git.savannah.gnu.org/cgit/make.git/commit/?id=07fcee35f058a876447c8a021f9eb1943f902534
> gnu make won't allow conditionals to follow recipe prefix.
>
> For example there is a tab followed by ifeq on line 324 in the root Makefile.
> With the new make this conditional causes the following
>
> $ make cpu.o
> /home/dgoncharov/src/linux-kbuild/Makefile:2063: *** missing 'endif'.  Stop.
> make: *** [Makefile:240: __sub-make] Error 2
>
> See https://savannah.gnu.org/bugs/?64185 and
> https://savannah.gnu.org/bugs/?64259 for details.
>
> This patch replaces tabs followed by conditionals with 8 spaces.
> In case the mailer program messes up the tabs and spaces in the diff,
> i enclosed the same patch in the attachment.
>
> Signed-off-by: Dmitry Goncharov <dgoncharov@xxxxxxxxxxxx>
> Reported-by: Martin Dorey <martin.dorey@xxxxxxxxxxxxxxxxxx>
>
> regards, Dmitry


Thanks. Looks good to me.

But, the commit subject
"kbuild: Port build system to the future versions of gnu make"
is ambiguous.


Can you describe what the patch is changing?

For example,
"kbuild: avoid using tabs followed by conditionals for future gnu make"
or something similar.




>
>
> diff --git a/Makefile b/Makefile
> index 9869f57c3fb3..12dcc51c586a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -294,15 +294,15 @@ may-sync-config    := 1
>  single-build    :=
>
>  ifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),)
> -    ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),)
> +        ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),)
>          need-config :=
> -    endif
> +        endif
>  endif
>
>  ifneq ($(filter $(no-sync-config-targets), $(MAKECMDGOALS)),)
> -    ifeq ($(filter-out $(no-sync-config-targets), $(MAKECMDGOALS)),)
> +        ifeq ($(filter-out $(no-sync-config-targets), $(MAKECMDGOALS)),)
>          may-sync-config :=
> -    endif
> +        endif
>  endif
>
>  need-compiler := $(may-sync-config)
> @@ -323,9 +323,9 @@ endif
>  # We cannot build single targets and the others at the same time
>  ifneq ($(filter $(single-targets), $(MAKECMDGOALS)),)
>      single-build := 1
> -    ifneq ($(filter-out $(single-targets), $(MAKECMDGOALS)),)
> +        ifneq ($(filter-out $(single-targets), $(MAKECMDGOALS)),)
>          mixed-build := 1
> -    endif
> +        endif
>  endif
>
>  # For "make -j clean all", "make -j mrproper defconfig all", etc.
> diff --git a/arch/m68k/Makefile b/arch/m68k/Makefile
> index 43e39040d3ac..76ef1a67c361 100644
> --- a/arch/m68k/Makefile
> +++ b/arch/m68k/Makefile
> @@ -15,10 +15,10 @@
>  KBUILD_DEFCONFIG := multi_defconfig
>
>  ifdef cross_compiling
> -    ifeq ($(CROSS_COMPILE),)
> +        ifeq ($(CROSS_COMPILE),)
>          CROSS_COMPILE := $(call cc-cross-prefix, \
>              m68k-linux-gnu- m68k-linux- m68k-unknown-linux-gnu-)
> -    endif
> +        endif
>  endif
>
>  #
> diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile
> index 920db57b6b4c..7486b3b30594 100644
> --- a/arch/parisc/Makefile
> +++ b/arch/parisc/Makefile
> @@ -50,12 +50,12 @@ export CROSS32CC
>
>  # Set default cross compiler for kernel build
>  ifdef cross_compiling
> -    ifeq ($(CROSS_COMPILE),)
> +        ifeq ($(CROSS_COMPILE),)
>          CC_SUFFIXES = linux linux-gnu unknown-linux-gnu suse-linux
>          CROSS_COMPILE := $(call cc-cross-prefix, \
>              $(foreach a,$(CC_ARCHES), \
>              $(foreach s,$(CC_SUFFIXES),$(a)-$(s)-)))
> -    endif
> +        endif
>  endif
>
>  ifdef CONFIG_DYNAMIC_FTRACE
> diff --git a/arch/x86/Makefile b/arch/x86/Makefile
> index 1a068de12a56..2264db14a25d 100644
> --- a/arch/x86/Makefile
> +++ b/arch/x86/Makefile
> @@ -112,13 +112,13 @@ ifeq ($(CONFIG_X86_32),y)
>          # temporary until string.h is fixed
>          KBUILD_CFLAGS += -ffreestanding
>
> -    ifeq ($(CONFIG_STACKPROTECTOR),y)
> -        ifeq ($(CONFIG_SMP),y)
> +        ifeq ($(CONFIG_STACKPROTECTOR),y)
> +                ifeq ($(CONFIG_SMP),y)
>              KBUILD_CFLAGS += -mstack-protector-guard-reg=fs
> -mstack-protector-guard-symbol=__stack_chk_guard
> -        else
> +                else
>              KBUILD_CFLAGS += -mstack-protector-guard=global
> -        endif
> -    endif
> +                endif
> +        endif
>  else
>          BITS := 64
>          UTS_MACHINE := x86_64



-- 
Best Regards
Masahiro Yamada





[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux