lkml.org 
[lkml]   [2018]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.16 278/279] ARM: replace unnecessary perl with sed and the shell $(( )) operator
    Date
    4.16-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Russell King <rmk+kernel@armlinux.org.uk>

    [ Upstream commit 6cea14f55474ec71f1098228e0ae5dd2a8f22c0a ]

    You can build a kernel in a cross compiling environment that doesn't
    have perl in the $PATH. Commit 429f7a062e3b broke that for 32 bit
    ARM. Fix it.

    As reported by Stephen Rothwell, it appears that the symbols can be
    either part of the BSS section or absolute symbols depending on the
    binutils version. When they're an absolute symbol, the $(( ))
    operator errors out and the build fails. Fix this as well.

    Fixes: 429f7a062e3b ("ARM: decompressor: fix BSS size calculation")
    Reported-by: Rob Landley <rob@landley.net>
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Acked-by: Rob Landley <rob@landley.net>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/arm/boot/compressed/Makefile | 8 +++-----
    1 file changed, 3 insertions(+), 5 deletions(-)

    --- a/arch/arm/boot/compressed/Makefile
    +++ b/arch/arm/boot/compressed/Makefile
    @@ -117,11 +117,9 @@ ccflags-y := -fpic -mno-single-pic-base
    asflags-y := -DZIMAGE

    # Supply kernel BSS size to the decompressor via a linker symbol.
    -KBSS_SZ = $(shell $(CROSS_COMPILE)nm $(obj)/../../../../vmlinux | \
    - perl -e 'while (<>) { \
    - $$bss_start=hex($$1) if /^([[:xdigit:]]+) B __bss_start$$/; \
    - $$bss_end=hex($$1) if /^([[:xdigit:]]+) B __bss_stop$$/; \
    - }; printf "%d\n", $$bss_end - $$bss_start;')
    +KBSS_SZ = $(shell echo $$(($$($(CROSS_COMPILE)nm $(obj)/../../../../vmlinux | \
    + sed -n -e 's/^\([^ ]*\) [AB] __bss_start$$/-0x\1/p' \
    + -e 's/^\([^ ]*\) [AB] __bss_stop$$/+0x\1/p') )) )
    LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ)
    # Supply ZRELADDR to the decompressor via a linker symbol.
    ifneq ($(CONFIG_AUTO_ZRELADDR),y)

    \
     
     \ /
      Last update: 2018-06-18 11:17    [W:4.094 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site