Messages in this thread Patch in this message | | | From | Masahiro Yamada <> | Date | Sun, 25 Sep 2022 10:22:38 +0900 | Subject | Re: [PATCH v4] Makefile.compiler: replace cc-ifversion with compiler-specific macros |
| |
On Sat, Sep 24, 2022 at 11:28 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > On Sat, Sep 24, 2022 at 4:44 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > On Tue, Sep 20, 2022 at 2:08 AM Nick Desaulniers > > <ndesaulniers@google.com> wrote: > > > > > > cc-ifversion is GCC specific. Replace it with compiler specific > > > variants. Update the users of cc-ifversion to use these new macros. > > > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/350 > > > Link: https://lore.kernel.org/llvm/CAGG=3QWSAUakO42kubrCap8fp-gm1ERJJAYXTnP1iHk_wrH=BQ@mail.gmail.com/ > > > Suggested-by: Bill Wendling <morbo@google.com> > > > Reviewed-by: Nathan Chancellor <nathan@kernel.org> > > > Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> > > > --- > > > Changes v3 -> v4: > > > * Split into its own patch again from series, as per Masahiro. > > > * Rebase on top of b0839b281c427e844143dba3893e25c83cdd6c17 and update > > > clang -Wformat logic in scripts/Makefile.extrawarn, as per Masahiro. > > > > > > Applied to linux-kbuild. > > Thanks. > > > > > > > > -- > > Best Regards > > Masahiro Yamada > > > > > > > I noticed a small flaw now. > > > > $ make mrproper; make > /bin/sh: 1: [: -ge: unexpected operator > *** > *** Configuration file ".config" not found! > *** > *** Please run some configurator (e.g. "make oldconfig" or > *** "make menuconfig" or "make xconfig"). > *** > Makefile:711: include/config/auto.conf.cmd: No such file or directory > make: *** [Makefile:720: .config] Error 1 > > > > > > > > > This fails anyway, but it shows annoying > > /bin/sh: 1: [: -ge: unexpected operator > > > > It is emit by this line: > > KBUILD_CFLAGS-$(call gcc-min-version, 90100) += -Wno-alloc-size-larger-than > > > > > When $(CONFIG_GCC_VERSION) is empty, it becomes invalid shell code: > > [ -ge $(1) ] && echo y > > > > > > Now I just recalled why I wrote the original code like this: > > > cc-ifversion = $(shell [ $(CONFIG_GCC_VERSION)0 $(1) $(2)000 ] ... > > > > > -- > Best Regards > Masahiro Yamada
I squashed the following code diff. Please let me know if there is a problem.
diff --git a/scripts/Makefile.compiler b/scripts/Makefile.compiler index 9d18fb91890e..20d353dcabfb 100644 --- a/scripts/Makefile.compiler +++ b/scripts/Makefile.compiler @@ -63,11 +63,11 @@ cc-disable-warning = $(call try-run,\
# gcc-min-version # Usage: cflags-$(call gcc-min-version, 70100) += -foo -gcc-min-version = $(shell [ $(CONFIG_GCC_VERSION) -ge $(1) ] && echo y) +gcc-min-version = $(shell [ $(CONFIG_GCC_VERSION)0 -ge $(1)0 ] && echo y)
# clang-min-version # Usage: cflags-$(call clang-min-version, 110000) += -foo -clang-min-version = $(shell [ $(CONFIG_CLANG_VERSION) -ge $(1) ] && echo y) +clang-min-version = $(shell [ $(CONFIG_CLANG_VERSION)0 -ge $(1)0 ] && echo y)
# ld-option # Usage: KBUILD_LDFLAGS += $(call ld-option, -X, -Y)
-- Best Regards Masahiro Yamada
| |