Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
[sfrench/cifs-2.6.git] / arch / arm / boot / compressed / Makefile
index a5889238fc9fc6fe6f3c2dc1b2c7e172fc597594..45a6b9b7af2a56f179427d353ad70c3cd920bb69 100644 (file)
@@ -117,8 +117,11 @@ ccflags-y := -fpic -mno-single-pic-base -fno-builtin -I$(obj)
 asflags-y := -DZIMAGE
 
 # Supply kernel BSS size to the decompressor via a linker symbol.
-KBSS_SZ = $(shell $(CROSS_COMPILE)size $(obj)/../../../../vmlinux | \
-               awk 'END{print $$3}')
+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;')
 LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ)
 # Supply ZRELADDR to the decompressor via a linker symbol.
 ifneq ($(CONFIG_AUTO_ZRELADDR),y)