On Tue, Aug 6, 2019 at 7:56 PM Vasily Gorbik <g...@linux.ibm.com> wrote:
>
> 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.
>
> Signed-off-by: Vasily Gorbik <g...@linux.ibm.com>
> ---
>  arch/s390/scripts/Makefile.chkbss | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/s390/scripts/Makefile.chkbss 
> b/arch/s390/scripts/Makefile.chkbss
> index 884a9caff5fb..ba1d7a8a242f 100644
> --- a/arch/s390/scripts/Makefile.chkbss
> +++ b/arch/s390/scripts/Makefile.chkbss
> @@ -11,8 +11,7 @@ chkbss: $(addprefix $(obj)/, $(chkbss-files))
>
>  quiet_cmd_chkbss = CHKBSS  $<
>        cmd_chkbss = \
> -       if $(OBJDUMP) -h $< | grep -q "\.bss" && \
> -          ! $(OBJDUMP) -j .bss -w -h $< | awk 'END { if ($$3) exit 1 }'; 
> then \
> +       if ! $(OBJSIZE) --common $< | awk 'END { if ($$3) exit 1 }'; then \

While you are touching this line,
you may also want to replace 'awk' with $(AWK),
which is defined in the top-level Makefile.




>                 echo "error: $< .bss section is not empty" >&2; exit 1; \
>         fi; \
>         touch $@;
> --
> 2.21.0
>


-- 
Best Regards
Masahiro Yamada

Reply via email to