kbuild: Fix build with binutils <= 2.19
The D option of ar is only available in newer versions. Signed-off-by: Michal Marek <mmarek@suse.cz>
This commit is contained in:
parent
a8b8017c34
commit
40df759e2b
|
@ -955,6 +955,11 @@ When kbuild executes, the following steps are followed (roughly):
|
||||||
used when linking modules. This is often a linker script.
|
used when linking modules. This is often a linker script.
|
||||||
From commandline LDFLAGS_MODULE shall be used (see kbuild.txt).
|
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).
|
||||||
|
|
||||||
--- 6.2 Add prerequisites to archprepare:
|
--- 6.2 Add prerequisites to archprepare:
|
||||||
|
|
||||||
The archprepare: rule is used to list prerequisites that need to be
|
The archprepare: rule is used to list prerequisites that need to be
|
||||||
|
|
4
Makefile
4
Makefile
|
@ -382,6 +382,7 @@ export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE CFLAGS_GCOV
|
||||||
export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
|
export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
|
||||||
export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
|
export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
|
||||||
export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
|
export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
|
||||||
|
export KBUILD_ARFLAGS
|
||||||
|
|
||||||
# When compiling out-of-tree modules, put MODVERDIR in the module
|
# When compiling out-of-tree modules, put MODVERDIR in the module
|
||||||
# tree rather than in the kernel tree. The kernel tree might
|
# tree rather than in the kernel tree. The kernel tree might
|
||||||
|
@ -612,6 +613,9 @@ KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
|
||||||
# conserve stack if available
|
# conserve stack if available
|
||||||
KBUILD_CFLAGS += $(call cc-option,-fconserve-stack)
|
KBUILD_CFLAGS += $(call cc-option,-fconserve-stack)
|
||||||
|
|
||||||
|
# use the deterministic mode of AR if available
|
||||||
|
KBUILD_ARFLAGS := $(call ar-option,D)
|
||||||
|
|
||||||
# check for 'asm goto'
|
# check for 'asm goto'
|
||||||
ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y)
|
ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y)
|
||||||
KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
|
KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
|
||||||
|
|
|
@ -141,6 +141,11 @@ cc-ldoption = $(call try-run,\
|
||||||
ld-option = $(call try-run,\
|
ld-option = $(call try-run,\
|
||||||
$(CC) /dev/null -c -o "$$TMPO" ; $(LD) $(1) "$$TMPO" -o "$$TMP",$(1),$(2))
|
$(CC) /dev/null -c -o "$$TMPO" ; $(LD) $(1) "$$TMPO" -o "$$TMP",$(1),$(2))
|
||||||
|
|
||||||
|
# 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))
|
||||||
|
|
||||||
######
|
######
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
|
@ -345,7 +345,7 @@ quiet_cmd_link_o_target = LD $@
|
||||||
cmd_link_o_target = $(if $(strip $(obj-y)),\
|
cmd_link_o_target = $(if $(strip $(obj-y)),\
|
||||||
$(LD) $(ld_flags) -r -o $@ $(filter $(obj-y), $^) \
|
$(LD) $(ld_flags) -r -o $@ $(filter $(obj-y), $^) \
|
||||||
$(cmd_secanalysis),\
|
$(cmd_secanalysis),\
|
||||||
rm -f $@; $(AR) rcsD $@)
|
rm -f $@; $(AR) rcs$(KBUILD_ARFLAGS) $@)
|
||||||
|
|
||||||
$(builtin-target): $(obj-y) FORCE
|
$(builtin-target): $(obj-y) FORCE
|
||||||
$(call if_changed,link_o_target)
|
$(call if_changed,link_o_target)
|
||||||
|
@ -371,7 +371,7 @@ $(modorder-target): $(subdir-ym) FORCE
|
||||||
#
|
#
|
||||||
ifdef lib-target
|
ifdef lib-target
|
||||||
quiet_cmd_link_l_target = AR $@
|
quiet_cmd_link_l_target = AR $@
|
||||||
cmd_link_l_target = rm -f $@; $(AR) rcsD $@ $(lib-y)
|
cmd_link_l_target = rm -f $@; $(AR) rcs$(KBUILD_ARFLAGS) $@ $(lib-y)
|
||||||
|
|
||||||
$(lib-target): $(lib-y) FORCE
|
$(lib-target): $(lib-y) FORCE
|
||||||
$(call if_changed,link_l_target)
|
$(call if_changed,link_l_target)
|
||||||
|
|
Loading…
Reference in New Issue