Commit 5d680056 authored by Masahiro Yamada's avatar Masahiro Yamada

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: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
parent ecbd10d9
...@@ -67,6 +67,6 @@ install: $(CONFIGURE) $(obj)/bzImage ...@@ -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 ...@@ -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
# 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
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 $(obj)/%.o.chkbss: $(obj)/%.o
$(call cmd,chkbss) $(call cmd,chkbss)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment