Message ID | 20190921064954.11196-1-yamada.masahiro@socionext.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kbuild: remove ar-option and KBUILD_ARFLAGS | expand |
On Tue, Sep 24, 2019 at 9:38 AM Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > > Commit 40df759e2b9e ("kbuild: Fix build with binutils <= 2.19") > introduced ar-option and KBUILD_ARFLAGS to cope with old binutils. > > According to Documentation/process/changes.rst, the current minimal > supported version of binutils is 2.21 so you can assume the 'D' option > is always supported. Not only GNU ar but also llvm-ar supports it. Yep, a nice cleanup. Thanks for the patch and I appreciate checking llvm-ar. Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Tested-by: Nick Desaulniers <ndesaulniers@google.com> > > With the 'D' option hard-coded, there is no more user of ar-option > or KBUILD_ARFLAGS. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > > Documentation/kbuild/makefiles.rst | 5 ----- > Makefile | 4 ---- > arch/powerpc/boot/Makefile | 2 +- > scripts/Kbuild.include | 5 ----- > scripts/Makefile.build | 2 +- > scripts/Makefile.lib | 2 +- > 6 files changed, 3 insertions(+), 17 deletions(-) > > diff --git a/Documentation/kbuild/makefiles.rst b/Documentation/kbuild/makefiles.rst > index 6ba9d5365ff3..b89c88168d6a 100644 > --- a/Documentation/kbuild/makefiles.rst > +++ b/Documentation/kbuild/makefiles.rst > @@ -954,11 +954,6 @@ When kbuild executes, the following steps are followed (roughly): > > From commandline LDFLAGS_MODULE shall be used (see kbuild.txt). > > - KBUILD_ARFLAGS Options for $(AR) when creating archives > - > - $(KBUILD_ARFLAGS) set by the top level Makefile to "D" (deterministic > - mode) if this option is supported by $(AR). > - > KBUILD_LDS > > The linker script with full path. Assigned by the top-level Makefile. > diff --git a/Makefile b/Makefile > index 656a8c95789d..88b180b2cb64 100644 > --- a/Makefile > +++ b/Makefile > @@ -498,7 +498,6 @@ export CFLAGS_KASAN CFLAGS_KASAN_NOSANITIZE CFLAGS_UBSAN > export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE > export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE > export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL > -export KBUILD_ARFLAGS > > # Files to ignore in find ... statements > > @@ -914,9 +913,6 @@ ifdef CONFIG_RETPOLINE > KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none) > endif > > -# use the deterministic mode of AR if available > -KBUILD_ARFLAGS := $(call ar-option,D) > - > include scripts/Makefile.kasan > include scripts/Makefile.extrawarn > include scripts/Makefile.ubsan > diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile > index 6841bd52738b..dfbd7f22eef5 100644 > --- a/arch/powerpc/boot/Makefile > +++ b/arch/powerpc/boot/Makefile > @@ -50,7 +50,7 @@ endif > > BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -nostdinc > > -BOOTARFLAGS := -cr$(KBUILD_ARFLAGS) > +BOOTARFLAGS := -crD > > ifdef CONFIG_CC_IS_CLANG > BOOTCFLAGS += $(CLANG_FLAGS) > diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include > index e31fd6a8b2a3..956668239ef5 100644 > --- a/scripts/Kbuild.include > +++ b/scripts/Kbuild.include > @@ -143,11 +143,6 @@ cc-ifversion = $(shell [ $(CONFIG_GCC_VERSION)0 $(1) $(2)000 ] && echo $(3) || e > # Usage: KBUILD_LDFLAGS += $(call ld-option, -X, -Y) > ld-option = $(call try-run, $(LD) $(KBUILD_LDFLAGS) $(1) -v,$(1),$(2),$(3)) > > -# ar-option > -# Usage: KBUILD_ARFLAGS := $(call ar-option,D) > -# Important: no spaces around options > -ar-option = $(call try-run, $(AR) rc$(1) "$$TMP",$(1),$(2)) > - > # ld-version > # Note this is mainly for HJ Lu's 3 number binutil versions > ld-version = $(shell $(LD) --version | $(srctree)/scripts/ld-version.sh) > diff --git a/scripts/Makefile.build b/scripts/Makefile.build > index 611bda95ac5e..f199341f04eb 100644 > --- a/scripts/Makefile.build > +++ b/scripts/Makefile.build > @@ -395,7 +395,7 @@ $(sort $(subdir-obj-y)): $(subdir-ym) ; > ifdef builtin-target > > quiet_cmd_ar_builtin = AR $@ > - cmd_ar_builtin = rm -f $@; $(AR) rcSTP$(KBUILD_ARFLAGS) $@ $(real-prereqs) > + cmd_ar_builtin = rm -f $@; $(AR) cDPrST $@ $(real-prereqs) > > $(builtin-target): $(real-obj-y) FORCE > $(call if_changed,ar_builtin) > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 23e524027740..15895fd4ef9f 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -238,7 +238,7 @@ quiet_cmd_ld = LD $@ > # --------------------------------------------------------------------------- > > quiet_cmd_ar = AR $@ > - cmd_ar = rm -f $@; $(AR) rcsTP$(KBUILD_ARFLAGS) $@ $(real-prereqs) > + cmd_ar = rm -f $@; $(AR) cDPrsT $@ $(real-prereqs) > > # Objcopy > # --------------------------------------------------------------------------- > -- > 2.17.1 > > -- > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20190921064954.11196-1-yamada.masahiro%40socionext.com.
diff --git a/Documentation/kbuild/makefiles.rst b/Documentation/kbuild/makefiles.rst index 6ba9d5365ff3..b89c88168d6a 100644 --- a/Documentation/kbuild/makefiles.rst +++ b/Documentation/kbuild/makefiles.rst @@ -954,11 +954,6 @@ When kbuild executes, the following steps are followed (roughly): From commandline LDFLAGS_MODULE shall be used (see kbuild.txt). - KBUILD_ARFLAGS Options for $(AR) when creating archives - - $(KBUILD_ARFLAGS) set by the top level Makefile to "D" (deterministic - mode) if this option is supported by $(AR). - KBUILD_LDS The linker script with full path. Assigned by the top-level Makefile. diff --git a/Makefile b/Makefile index 656a8c95789d..88b180b2cb64 100644 --- a/Makefile +++ b/Makefile @@ -498,7 +498,6 @@ export CFLAGS_KASAN CFLAGS_KASAN_NOSANITIZE CFLAGS_UBSAN export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL -export KBUILD_ARFLAGS # Files to ignore in find ... statements @@ -914,9 +913,6 @@ ifdef CONFIG_RETPOLINE KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none) endif -# use the deterministic mode of AR if available -KBUILD_ARFLAGS := $(call ar-option,D) - include scripts/Makefile.kasan include scripts/Makefile.extrawarn include scripts/Makefile.ubsan diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index 6841bd52738b..dfbd7f22eef5 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile @@ -50,7 +50,7 @@ endif BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -nostdinc -BOOTARFLAGS := -cr$(KBUILD_ARFLAGS) +BOOTARFLAGS := -crD ifdef CONFIG_CC_IS_CLANG BOOTCFLAGS += $(CLANG_FLAGS) diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index e31fd6a8b2a3..956668239ef5 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include @@ -143,11 +143,6 @@ cc-ifversion = $(shell [ $(CONFIG_GCC_VERSION)0 $(1) $(2)000 ] && echo $(3) || e # Usage: KBUILD_LDFLAGS += $(call ld-option, -X, -Y) ld-option = $(call try-run, $(LD) $(KBUILD_LDFLAGS) $(1) -v,$(1),$(2),$(3)) -# ar-option -# Usage: KBUILD_ARFLAGS := $(call ar-option,D) -# Important: no spaces around options -ar-option = $(call try-run, $(AR) rc$(1) "$$TMP",$(1),$(2)) - # ld-version # Note this is mainly for HJ Lu's 3 number binutil versions ld-version = $(shell $(LD) --version | $(srctree)/scripts/ld-version.sh) diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 611bda95ac5e..f199341f04eb 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -395,7 +395,7 @@ $(sort $(subdir-obj-y)): $(subdir-ym) ; ifdef builtin-target quiet_cmd_ar_builtin = AR $@ - cmd_ar_builtin = rm -f $@; $(AR) rcSTP$(KBUILD_ARFLAGS) $@ $(real-prereqs) + cmd_ar_builtin = rm -f $@; $(AR) cDPrST $@ $(real-prereqs) $(builtin-target): $(real-obj-y) FORCE $(call if_changed,ar_builtin) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 23e524027740..15895fd4ef9f 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -238,7 +238,7 @@ quiet_cmd_ld = LD $@ # --------------------------------------------------------------------------- quiet_cmd_ar = AR $@ - cmd_ar = rm -f $@; $(AR) rcsTP$(KBUILD_ARFLAGS) $@ $(real-prereqs) + cmd_ar = rm -f $@; $(AR) cDPrsT $@ $(real-prereqs) # Objcopy # ---------------------------------------------------------------------------
Commit 40df759e2b9e ("kbuild: Fix build with binutils <= 2.19") introduced ar-option and KBUILD_ARFLAGS to cope with old binutils. According to Documentation/process/changes.rst, the current minimal supported version of binutils is 2.21 so you can assume the 'D' option is always supported. Not only GNU ar but also llvm-ar supports it. With the 'D' option hard-coded, there is no more user of ar-option or KBUILD_ARFLAGS. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- Documentation/kbuild/makefiles.rst | 5 ----- Makefile | 4 ---- arch/powerpc/boot/Makefile | 2 +- scripts/Kbuild.include | 5 ----- scripts/Makefile.build | 2 +- scripts/Makefile.lib | 2 +- 6 files changed, 3 insertions(+), 17 deletions(-)