s390: make built-in.a not directly depend on *.o.chkbss files
When I was refactoring cmd_ar_builtin in scripts/Makefile.build, I noticed the build breakage of s390. Some Makefiles of s390 add extra dependencies to built-in.a; built-in.a depends on timestamp files *.o.chkbss, but $(AR) does not want to include them into built-in.a. Insert a phony target 'chkbss' in between so that $(AR) can take $(filter-out $(PHONY), $^) as input. While I was here, I refactored Makefile.chkbss a little bit. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
This commit is contained in:
parent
ecbd10d90e
commit
5d680056cb
|
@ -67,6 +67,6 @@ install: $(CONFIGURE) $(obj)/bzImage
|
||||||
sh -x $(srctree)/$(obj)/install.sh $(KERNELRELEASE) $(obj)/bzImage \
|
sh -x $(srctree)/$(obj)/install.sh $(KERNELRELEASE) $(obj)/bzImage \
|
||||||
System.map "$(INSTALL_PATH)"
|
System.map "$(INSTALL_PATH)"
|
||||||
|
|
||||||
chkbss := $(OBJECTS)
|
chkbss := $(obj-y)
|
||||||
chkbss-target := $(obj)/startup.a
|
chkbss-target := startup.a
|
||||||
include $(srctree)/arch/s390/scripts/Makefile.chkbss
|
include $(srctree)/arch/s390/scripts/Makefile.chkbss
|
||||||
|
|
|
@ -63,6 +63,6 @@ OBJCOPYFLAGS_piggy.o := -I binary -O elf64-s390 -B s390:64-bit --rename-section
|
||||||
$(obj)/piggy.o: $(obj)/vmlinux.bin$(suffix-y) FORCE
|
$(obj)/piggy.o: $(obj)/vmlinux.bin$(suffix-y) FORCE
|
||||||
$(call if_changed,objcopy)
|
$(call if_changed,objcopy)
|
||||||
|
|
||||||
chkbss := $(filter-out $(obj)/piggy.o $(obj)/info.o,$(OBJECTS))
|
chkbss := $(filter-out piggy.o info.o, $(obj-y))
|
||||||
chkbss-target := $(obj)/vmlinux.bin
|
chkbss-target := vmlinux.bin
|
||||||
include $(srctree)/arch/s390/scripts/Makefile.chkbss
|
include $(srctree)/arch/s390/scripts/Makefile.chkbss
|
||||||
|
|
|
@ -1,23 +1,20 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
chkbss-target ?= built-in.a
|
||||||
|
$(obj)/$(chkbss-target): chkbss
|
||||||
|
|
||||||
|
chkbss-files := $(addsuffix .chkbss, $(chkbss))
|
||||||
|
clean-files += $(chkbss-files)
|
||||||
|
|
||||||
|
PHONY += chkbss
|
||||||
|
chkbss: $(addprefix $(obj)/, $(chkbss-files))
|
||||||
|
|
||||||
quiet_cmd_chkbss = CHKBSS $<
|
quiet_cmd_chkbss = CHKBSS $<
|
||||||
define cmd_chkbss
|
cmd_chkbss = \
|
||||||
rm -f $@; \
|
|
||||||
if ! $(OBJDUMP) -j .bss -w -h $< | awk 'END { if ($$3) exit 1 }'; then \
|
if ! $(OBJDUMP) -j .bss -w -h $< | awk 'END { if ($$3) exit 1 }'; then \
|
||||||
echo "error: $< .bss section is not empty" >&2; exit 1; \
|
echo "error: $< .bss section is not empty" >&2; exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
touch $@;
|
touch $@;
|
||||||
endef
|
|
||||||
|
|
||||||
chkbss-target ?= $(obj)/built-in.a
|
$(obj)/%.o.chkbss: $(obj)/%.o
|
||||||
ifneq (,$(findstring /,$(chkbss)))
|
|
||||||
chkbss-files := $(patsubst %, %.chkbss, $(chkbss))
|
|
||||||
else
|
|
||||||
chkbss-files := $(patsubst %, $(obj)/%.chkbss, $(chkbss))
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(chkbss-target): $(chkbss-files)
|
|
||||||
targets += $(notdir $(chkbss-files))
|
|
||||||
|
|
||||||
%.o.chkbss: %.o
|
|
||||||
$(call cmd,chkbss)
|
$(call cmd,chkbss)
|
||||||
|
|
Loading…
Reference in New Issue