Commit 739bacbf authored by Vasily Gorbik's avatar Vasily Gorbik

s390/build: use size command to perform empty .bss check

Currently empty .bss checks performed do not pay attention to "common
objects" in object files which end up in .bss section eventually.

The "size" tool is a part of binutils and since version 2.18 provides
"--common" command line option, which allows to account "common objects"
sizes in .bss section size. Utilize "size --common" to perform accurate
check that .bss section is unused. Besides that the size tool handles
object files without .bss section gracefully and doesn't require
additional objdump run.

The linux kernel requires binutils 2.20 since 4.13.

Kbuild exports OBJSIZE to reference the right size tool.

Link: http://lkml.kernel.org/r/patch-2.thread-2257a1.git-2257a1c53d4a.your-ad-here.call-01565088755-ext-5120@work.hoursReported-and-tested-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 7bac9870
...@@ -11,8 +11,7 @@ chkbss: $(addprefix $(obj)/, $(chkbss-files)) ...@@ -11,8 +11,7 @@ chkbss: $(addprefix $(obj)/, $(chkbss-files))
quiet_cmd_chkbss = CHKBSS $< quiet_cmd_chkbss = CHKBSS $<
cmd_chkbss = \ cmd_chkbss = \
if $(OBJDUMP) -h $< | grep -q "\.bss" && \ if ! $(OBJSIZE) --common $< | $(AWK) 'END { if ($$3) exit 1 }'; then \
! $(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 $@;
......
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