Skip to contentSkip to conversation

powerpc: fpr save/restore function cleanups

PATCH In review Nicholas Piggin 3 participants 6 messages Nov 1, 2016 – Nov 14, 2016 PowerPC

lore
Share & tools
lore

Nicholas Piggin

author reviewer
#0 lore raw

PATCH 1/1 powerpc: fpr save/restore function cleanups

The powerpc64 linker generates fpr save/restore functions on-demand, placing them in the .sfpr section. So remove the explicitly coded ones from the 64 build.

Have 32-bit put save/restore functions into .sfpr section rather than .text, to match 64-bit.

And explicitly have the linker script place the section rather than leaving it as orphan.

---

I tested this with 64-bit optimize-for-size build with modules, and that works okay. 32-bit optimize-for-size builds.

This should go ahead of the linker-orphan-sections patch, and that patch should no longer add .sfpr section.

Thanks,
Nick

 arch/powerpc/Makefile             |   2 +
 arch/powerpc/boot/Makefile        |   3 +-
 arch/powerpc/boot/crtsavres.S     |   3 +-
 arch/powerpc/kernel/vmlinux.lds.S |   6 +
 arch/powerpc/lib/Makefile         |   5 +-
 arch/powerpc/lib/crtsavres.S      | 238 +-------------------------------------
 6 files changed, 16 insertions(+), 241 deletions(-)
arch/powerpc/Makefile +2 -0
index fe76cfe..c506f1e 100644
@@ -179,7 +179,9 @@ else
 CHECKFLAGS	+= -D__LITTLE_ENDIAN__
 endif
 
+ifeq ($(CONFIG_PPC32),y)
 KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
+endif
 
 ifeq ($(CONFIG_476FPE_ERR46),y)
 	KBUILD_LDFLAGS_MODULE += --ppc476-workaround \
arch/powerpc/boot/Makefile +2 -1
index eae2dc8..6abee93 100644
@@ -95,12 +95,13 @@ libfdtheader := fdt.h libfdt.h libfdt_internal.h
 $(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o opal.o): \
 	$(addprefix $(obj)/,$(libfdtheader))
 
-src-wlib-y := string.S crt0.S crtsavres.S stdio.c decompress.c main.c \
+src-wlib-y := string.S crt0.S stdio.c decompress.c main.c \
 		$(libfdt) libfdt-wrapper.c \
 		ns16550.c serial.c simple_alloc.c div64.S util.S \
 		elf_util.c $(zlib-y) devtree.c stdlib.c \
 		oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \
 		uartlite.c mpc52xx-psc.c opal.c opal-calls.S
+src-wlib-$(CONFIG_PPC32) += crtsavres.S
 src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c
 src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c
 src-wlib-$(CONFIG_8xx) += mpc8xx.c planetcore.c fsl-soc.c
arch/powerpc/boot/crtsavres.S +1 -2
index f3d9b35..8c77437 100644
@@ -38,10 +38,9 @@
  */
 
 	.file	"crtsavres.S"
-	.section ".text"
+	.section ".sfpr","ax",@progbits
 
 /* On PowerPC64 Linux, these functions are provided by the linker.  */
-#ifndef __powerpc64__
 
 #define _GLOBAL(name) \
 	.type name,@function; \
arch/powerpc/kernel/vmlinux.lds.S +6 -0
index a09c666..63775d9 100644
@@ -84,6 +84,12 @@ SECTIONS
 		KPROBES_TEXT
 		IRQENTRY_TEXT
 		SOFTIRQENTRY_TEXT
+		/*
+		 * Linker puts .sfpr at the beginning of a group of input
+		 * sections, which can break start-of-text offset if it is
+		 * included with the main text sections.
+		 */
+		*(.sfpr);
 		MEM_KEEP(init.text)
 		MEM_KEEP(exit.text)
 
arch/powerpc/lib/Makefile +2 -3
index 309361e8..b1304113 100644
@@ -9,10 +9,9 @@ ccflags-$(CONFIG_PPC64)	:= $(NO_MINIMAL_TOC)
 CFLAGS_REMOVE_code-patching.o = $(CC_FLAGS_FTRACE)
 CFLAGS_REMOVE_feature-fixups.o = $(CC_FLAGS_FTRACE)
 
-obj-y += string.o alloc.o crtsavres.o code-patching.o \
-	 feature-fixups.o
+obj-y += string.o alloc.o code-patching.o feature-fixups.o
 
-obj-$(CONFIG_PPC32)	+= div64.o copy_32.o
+obj-$(CONFIG_PPC32)	+= div64.o copy_32.o crtsavres.o
 
 obj64-y	+= copypage_64.o copyuser_64.o usercopy_64.o mem_64.o hweight_64.o \
 	   copyuser_power7.o string_64.o copypage_power7.o memcpy_power7.o \
arch/powerpc/lib/crtsavres.S +3 -235

250 lines not on this page · raw message

Signature · 1 line
2.9.3
author reviewer
#1 lore raw
Quoted 7 lines · On Tue, 1 Nov 2016 15:22:19 +1100 Nicholas Piggin <[email protected]> wrote:

The powerpc64 linker generates fpr save/restore functions on-demand, placing them in the .sfpr section. So remove the explicitly coded ones from the 64 build.

Have 32-bit put save/restore functions into .sfpr section rather than .text, to match 64-bit.

Quoted 8 lines

And explicitly have the linker script place the section rather than leaving it as orphan.

---

I tested this with 64-bit optimize-for-size build with modules, and that works okay.

No I didn't, it's broken. I'll send an update shortly.

Thanks,
Nick

author reviewer
#2 lore raw
Quoted 13 lines · On Tue, 1 Nov 2016 15:41:12 +1100 Nicholas Piggin <[email protected]> wrote:
Quoted 10 lines · On Tue, 1 Nov 2016 15:22:19 +1100 Nicholas Piggin <[email protected]> wrote:

The powerpc64 linker generates fpr save/restore functions on-demand, placing them in the .sfpr section. So remove the explicitly coded ones from the 64 build.

Have 32-bit put save/restore functions into .sfpr section rather than .text, to match 64-bit.

And explicitly have the linker script place the section rather than leaving it as orphan.

Quoted 7 lines
Quoted 5 lines

---

I tested this with 64-bit optimize-for-size build with modules, and that works okay.

No I didn't, it's broken. I'll send an update shortly.

Working (hopefully) patch this time. I also removed the 32-bit changes which aren't really necessary:

The powerpc64 linker generates fpr save/restore functions on-demand, placing them in the .sfpr section. Module linking (because it's a "non-final" link) requires --save-restore-funcs for this.

Remove the explicitly coded save/restore functions from the 64 build.

And explicitly have the linker script place the section rather than leaving it as orphan.

---
 arch/powerpc/Makefile             |   4 +
 arch/powerpc/boot/Makefile        |   3 +-
 arch/powerpc/boot/crtsavres.S     |   8 +-
 arch/powerpc/kernel/vmlinux.lds.S |   6 +
 arch/powerpc/lib/Makefile         |   5 +-
 arch/powerpc/lib/crtsavres.S      | 238 +-------------------------------------
 6 files changed, 22 insertions(+), 242 deletions(-)
arch/powerpc/Makefile +4 -0
index fe76cfe..8ea7c9e 100644
@@ -179,7 +179,11 @@ else
 CHECKFLAGS	+= -D__LITTLE_ENDIAN__
 endif
 
+ifeq ($(CONFIG_PPC32),y)
 KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
+else
+KBUILD_LDFLAGS_MODULE += --save-restore-funcs
+endif
 
 ifeq ($(CONFIG_476FPE_ERR46),y)
 	KBUILD_LDFLAGS_MODULE += --ppc476-workaround \
arch/powerpc/boot/Makefile +2 -1
index eae2dc8..6abee93 100644
@@ -95,12 +95,13 @@ libfdtheader := fdt.h libfdt.h libfdt_internal.h
 $(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o opal.o): \
 	$(addprefix $(obj)/,$(libfdtheader))
 
-src-wlib-y := string.S crt0.S crtsavres.S stdio.c decompress.c main.c \
+src-wlib-y := string.S crt0.S stdio.c decompress.c main.c \
 		$(libfdt) libfdt-wrapper.c \
 		ns16550.c serial.c simple_alloc.c div64.S util.S \
 		elf_util.c $(zlib-y) devtree.c stdlib.c \
 		oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \
 		uartlite.c mpc52xx-psc.c opal.c opal-calls.S
+src-wlib-$(CONFIG_PPC32) += crtsavres.S
 src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c
 src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c
 src-wlib-$(CONFIG_8xx) += mpc8xx.c planetcore.c fsl-soc.c
arch/powerpc/boot/crtsavres.S +4 -4
index f3d9b35..085fb2b 100644
@@ -37,12 +37,13 @@
  *    the executable file might be covered by the GNU General Public License.
  */
 
+#ifdef __powerpc64__
+#error "On PPC64, FPR save/restore functions are provided by the linker."
+#endif
+
 	.file	"crtsavres.S"
 	.section ".text"
 
-/* On PowerPC64 Linux, these functions are provided by the linker.  */
-#ifndef __powerpc64__
-
 #define _GLOBAL(name) \
 	.type name,@function; \
 	.globl name; \
@@ -230,4 +231,3 @@ _GLOBAL(_rest32gpr_31_x)
 	mtlr	0
 	mr	1,11
 	blr
-#endif
arch/powerpc/kernel/vmlinux.lds.S +6 -0
index a09c666..63775d9 100644
@@ -84,6 +84,12 @@ SECTIONS
 		KPROBES_TEXT
 		IRQENTRY_TEXT
 		SOFTIRQENTRY_TEXT
+		/*
+		 * Linker puts .sfpr at the beginning of a group of input
+		 * sections, which can break start-of-text offset if it is
+		 * included with the main text sections.
+		 */
+		*(.sfpr);
 		MEM_KEEP(init.text)
 		MEM_KEEP(exit.text)
 
arch/powerpc/lib/Makefile +2 -3
index 309361e8..b1304113 100644
@@ -9,10 +9,9 @@ ccflags-$(CONFIG_PPC64)	:= $(NO_MINIMAL_TOC)
 CFLAGS_REMOVE_code-patching.o = $(CC_FLAGS_FTRACE)
 CFLAGS_REMOVE_feature-fixups.o = $(CC_FLAGS_FTRACE)
 
-obj-y += string.o alloc.o crtsavres.o code-patching.o \
-	 feature-fixups.o
+obj-y += string.o alloc.o code-patching.o feature-fixups.o
 
-obj-$(CONFIG_PPC32)	+= div64.o copy_32.o
+obj-$(CONFIG_PPC32)	+= div64.o copy_32.o crtsavres.o
 
 obj64-y	+= copypage_64.o copyuser_64.o usercopy_64.o mem_64.o hweight_64.o \
 	   copyuser_power7.o string_64.o copypage_power7.o memcpy_power7.o \
arch/powerpc/lib/crtsavres.S +4 -234

252 lines not on this page · raw message

Signature · 1 line
2.9.3
#3 lore raw
Quoted 52 lines · Nicholas Piggin
Quoted 13 lines · On Tue, 1 Nov 2016 15:41:12 +1100 Nicholas Piggin <[email protected]> wrote:
Quoted 10 lines · On Tue, 1 Nov 2016 15:22:19 +1100 Nicholas Piggin <[email protected]> wrote:

The powerpc64 linker generates fpr save/restore functions on-demand, placing them in the .sfpr section. So remove the explicitly coded ones from the 64 build.

Have 32-bit put save/restore functions into .sfpr section rather than .text, to match 64-bit.

And explicitly have the linker script place the section rather than leaving it as orphan.

Quoted 7 lines
Quoted 5 lines

---

I tested this with 64-bit optimize-for-size build with modules, and that works okay.

No I didn't, it's broken. I'll send an update shortly.

Working (hopefully) patch this time. I also removed the 32-bit changes which aren't really necessary:

The powerpc64 linker generates fpr save/restore functions on-demand, placing them in the .sfpr section. Module linking (because it's a "non-final" link) requires --save-restore-funcs for this.

Remove the explicitly coded save/restore functions from the 64 build.

And explicitly have the linker script place the section rather than leaving it as orphan.

---
 arch/powerpc/Makefile             |   4 +
 arch/powerpc/boot/Makefile        |   3 +-
 arch/powerpc/boot/crtsavres.S     |   8 +-
 arch/powerpc/kernel/vmlinux.lds.S |   6 +
 arch/powerpc/lib/Makefile         |   5 +-
 arch/powerpc/lib/crtsavres.S      | 238 +-------------------------------------
 6 files changed, 22 insertions(+), 242 deletions(-)
arch/powerpc/Makefile +0 -0
index fe76cfe..8ea7c9e 100644

arch/powerpc/Makefile else · line 185

Quoted 7 lines
arch/powerpc/Makefile +3 -0
@@ -179,7 +179,11 @@ else
 CHECKFLAGS	+= -D__LITTLE_ENDIAN__
 endif
 
+ifeq ($(CONFIG_PPC32),y)
 KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
+else
+KBUILD_LDFLAGS_MODULE += --save-restore-funcs

As discussed offline, this option is reasonably new, added in 2014 and appearing in binutils 2.25.

So it's too new to require, we can use it if it's there, but we still need a fallback for when it's not.

cheers

#4 lore raw
In reply to Nicholas Piggin
url: https://github.com/0day-ci/linux/commits/Nicholas-Piggin/powerpc-fpr-save-restore-function-cleanups/20161101-122547 config: powerpc-mvme5100_defconfig (attached as .config) compiler…

Hi Nicholas,

[auto build test ERROR on v4.9-rc3]
[also build test ERROR on next-20161028]
[cannot apply to powerpc/next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information]

url: https://github.com/0day-ci/linux/commits/Nicholas-Piggin/powerpc-fpr-save-restore-function-cleanups/20161101-122547
config: powerpc-mvme5100_defconfig (attached as .config)
compiler: powerpc-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=powerpc

All errors (new ones prefixed by >>):

>> arch/powerpc/boot/crtsavres.S:232:0: error: #endif without #if
    #endif

vim +232 arch/powerpc/boot/crtsavres.S

143580ec Kumar Gala 2008-06-13  226  _GLOBAL(_rest32gpr_31_x)
143580ec Kumar Gala 2008-06-13  227  	lwz	0,4(11)
143580ec Kumar Gala 2008-06-13  228  	lwz	31,-4(11)
143580ec Kumar Gala 2008-06-13  229  	mtlr	0
143580ec Kumar Gala 2008-06-13  230  	mr	1,11
143580ec Kumar Gala 2008-06-13  231  	blr
143580ec Kumar Gala 2008-06-13 @232  #endif

:::::: The code at line 232 was first introduced by commit
:::::: 143580ecfb7999147e546cc3814023e233e95fa5 [POWERPC] Fix bootwrapper builds with newer gcc versions

:::::: TO: Kumar Gala <[email protected]>
:::::: CC: Paul Mackerras <[email protected]>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

#5 lore raw
In reply to Nicholas Piggin
url: https://github.com/0day-ci/linux/commits/Nicholas-Piggin/powerpc-fpr-save-restore-function-cleanups/20161101-122547 config: powerpc-defconfig (attached as .config) compiler…

Hi Nicholas,

[auto build test ERROR on v4.9-rc3]
[also build test ERROR on next-20161028]
[cannot apply to powerpc/next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information]

url: https://github.com/0day-ci/linux/commits/Nicholas-Piggin/powerpc-fpr-save-restore-function-cleanups/20161101-122547
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=powerpc

All errors (new ones prefixed by >>):

arch/powerpc/boot/of.o: In function `of_try_claim':

>> of.c:(.text+0x88): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/of.o: In function `of_image_hdr':
>> of.c:(.text+0x104): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/of.o: In function `platform_init':
   of.c:(.text+0x1b4): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/epapr.o: In function `platform_fixups':
>> epapr.c:(.text+0xb0): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/epapr.o: In function `epapr_platform_init':
   epapr.c:(.text+0x114): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `expand_buf':
>> libfdt-wrapper.c:(.text+0xa0): undefined reference to `_restgpr_29_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_finalize':
>> libfdt-wrapper.c:(.text+0xf4): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_get_path':
   libfdt-wrapper.c:(.text+0x180): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_del_node':
   libfdt-wrapper.c:(.text+0x1c4): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_find_node_by_compatible':
   libfdt-wrapper.c:(.text+0x20c): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_find_node_by_prop_value':
   libfdt-wrapper.c:(.text+0x254): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_create_node':
>> libfdt-wrapper.c:(.text+0x2d0): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_get_parent':
   libfdt-wrapper.c:(.text+0x320): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_setprop':
>> libfdt-wrapper.c:(.text+0x3e4): undefined reference to `_restgpr_26_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_getprop':
   libfdt-wrapper.c:(.text+0x4a4): undefined reference to `_restgpr_29_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_finddevice':
   libfdt-wrapper.c:(.text+0x4e0): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_init':
   libfdt-wrapper.c:(.text+0x5d8): undefined reference to `_restgpr_29_x'
   arch/powerpc/boot/wrapper.a(main.o): In function `prep_kernel':
>> main.c:(.text+0x174): undefined reference to `_restgpr_24_x'
   arch/powerpc/boot/wrapper.a(ofconsole.o): In function `of_console_write':
>> ofconsole.c:(.text+0x44): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(ofconsole.o): In function `of_console_open':
   ofconsole.c:(.text+0xa0): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(ofconsole.o): In function `of_console_init':
   ofconsole.c:(.text+0xdc): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(oflib.o): In function `of_call_prom_ret.constprop.1':
>> oflib.c:(.text+0x104): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(oflib.o): In function `of_init':
   oflib.c:(.text+0x144): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(oflib.o): In function `of_call_prom':
>> oflib.c:(.text+0x240): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/wrapper.a(oflib.o): In function `of_exit':
   oflib.c:(.text+0x2d0): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(oflib.o): In function `of_finddevice':
   oflib.c:(.text+0x30c): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(oflib.o): In function `of_getprop':
   oflib.c:(.text+0x354): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(oflib.o): In function `of_claim':
>> oflib.c:(.text+0x3e8): undefined reference to `_restgpr_26_x'
   arch/powerpc/boot/wrapper.a(oflib.o): In function `of_vmlinux_alloc':
>> oflib.c:(.text+0x654): undefined reference to `_restgpr_27_x'
   arch/powerpc/boot/wrapper.a(oflib.o): In function `of_setprop':
   oflib.c:(.text+0x6a8): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_open':
>> serial.c:(.text+0x38): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_write':
>> serial.c:(.text+0x78): undefined reference to `_restgpr_29_x'
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_close':
   serial.c:(.text+0xcc): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_edit_cmdline':
>> serial.c:(.text+0x158): undefined reference to `_restgpr_24_x'
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_get_stdout_devp':
   serial.c:(.text+0x2e4): undefined reference to `_restgpr_29_x'
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_console_init':
   serial.c:(.text+0x31c): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_malloc':
>> simple_alloc.c:(.text+0xa0): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_find_entry':
   simple_alloc.c:(.text+0x114): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_free':
   simple_alloc.c:(.text+0x16c): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_realloc':
>> simple_alloc.c:(.text+0x20c): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_alloc_init':
   simple_alloc.c:(.text+0x2b0): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/wrapper.a(stdio.o): In function `number':
>> stdio.c:(.text+0x2ec): undefined reference to `_restgpr_20_x'
   arch/powerpc/boot/wrapper.a(stdio.o): In function `vsprintf':
>> stdio.c:(.text+0x3e4): undefined reference to `_restgpr_23_x'
   arch/powerpc/boot/wrapper.a(stdio.o): In function `sprintf':
--
   arch/powerpc/boot/ps3.o: In function `ps3_copy_vectors':
>> ps3.c:(.text+0x90): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `finddevice':
>> devtree.c:(.text+0x3c): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `getprop':
   devtree.c:(.text+0x84): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `setprop':
   devtree.c:(.text+0xcc): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `copy_val':
>> devtree.c:(.text+0x12c): undefined reference to `_restgpr_27_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `dt_fixup_memory':
>> devtree.c:(.text+0x2dc): undefined reference to `_restgpr_26_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `dt_fixup_cpu_clocks':
   devtree.c:(.text+0x3c8): undefined reference to `_restgpr_26_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `dt_fixup_clock':
>> devtree.c:(.text+0x4a8): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `dt_fixup_mac_address_by_alias':
   devtree.c:(.text+0x54c): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `dt_fixup_mac_address':
>> devtree.c:(.text+0x5e4): undefined reference to `_restgpr_29_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `__dt_fixup_mac_addresses':
   devtree.c:(.text+0x66c): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `dt_get_reg_format':
   devtree.c:(.text+0x704): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `dt_xlate':
>> devtree.c:(.text+0x740): undefined reference to `_restgpr_14_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `dt_is_compatible':
   devtree.c:(.text+0xba8): undefined reference to `_restgpr_26_x'
   arch/powerpc/boot/wrapper.a(devtree.o): In function `dt_get_virtual_reg':
   devtree.c:(.text+0xc7c): undefined reference to `_restgpr_26_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `expand_buf':
>> libfdt-wrapper.c:(.text+0xa0): undefined reference to `_restgpr_29_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_finalize':
>> libfdt-wrapper.c:(.text+0xf4): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_get_path':
   libfdt-wrapper.c:(.text+0x180): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_del_node':
   libfdt-wrapper.c:(.text+0x1c4): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_find_node_by_compatible':
   libfdt-wrapper.c:(.text+0x20c): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_find_node_by_prop_value':
   libfdt-wrapper.c:(.text+0x254): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_create_node':
>> libfdt-wrapper.c:(.text+0x2d0): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_get_parent':
   libfdt-wrapper.c:(.text+0x320): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_setprop':
>> libfdt-wrapper.c:(.text+0x3e4): undefined reference to `_restgpr_26_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_getprop':
   libfdt-wrapper.c:(.text+0x4a4): undefined reference to `_restgpr_29_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_finddevice':
   libfdt-wrapper.c:(.text+0x4e0): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_init':
   libfdt-wrapper.c:(.text+0x5d8): undefined reference to `_restgpr_29_x'
   arch/powerpc/boot/wrapper.a(main.o): In function `prep_kernel':
>> main.c:(.text+0x174): undefined reference to `_restgpr_24_x'
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_malloc':
>> simple_alloc.c:(.text+0xa0): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_find_entry':
   simple_alloc.c:(.text+0x114): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_free':
   simple_alloc.c:(.text+0x16c): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_realloc':
>> simple_alloc.c:(.text+0x20c): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_alloc_init':
   simple_alloc.c:(.text+0x2b0): undefined reference to `_restgpr_28_x'
   arch/powerpc/boot/wrapper.a(stdio.o): In function `number':
>> stdio.c:(.text+0x2ec): undefined reference to `_restgpr_20_x'
   arch/powerpc/boot/wrapper.a(stdio.o): In function `vsprintf':
>> stdio.c:(.text+0x3e4): undefined reference to `_restgpr_23_x'
   arch/powerpc/boot/wrapper.a(stdio.o): In function `sprintf':
>> stdio.c:(.text+0xae4): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(stdio.o): In function `printf':
   stdio.c:(.text+0xb80): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(decompress.o): In function `malloc':
>> decompress.c:(.text+0x3c): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(decompress.o): In function `free':
   decompress.c:(.text+0x84): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(decompress.o): In function `zlib_adler32':
   decompress.c:(.text+0xc4): undefined reference to `_restgpr_30_x'
   arch/powerpc/boot/wrapper.a(decompress.o): In function `zlib_updatewindow':
>> decompress.c:(.text+0x290): undefined reference to `_restgpr_26_x'
   arch/powerpc/boot/wrapper.a(decompress.o): In function `flush':
>> decompress.c:(.text+0x364): undefined reference to `_restgpr_28_x'

arch/powerpc/boot/wrapper.a(decompress.o): In function `print_err':
decompress.c:(.text+0x41c): undefined reference to _restgpr_30_x' arch/powerpc/boot/wrapper.a(decompress.o): In function zlib_inflate_table':
--
arch/powerpc/boot/epapr.o: In function `platform_fixups':

>> epapr.c:(.text+0xb0): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/epapr.o: In function `epapr_platform_init':
   epapr.c:(.text+0x114): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/epapr-wrapper.o: In function `platform_init':
>> epapr-wrapper.c:(.text+0x28): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `expand_buf':
>> libfdt-wrapper.c:(.text+0xa0): undefined reference to `_restgpr_29_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_finalize':
>> libfdt-wrapper.c:(.text+0xf4): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_get_path':
   libfdt-wrapper.c:(.text+0x180): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_del_node':
   libfdt-wrapper.c:(.text+0x1c4): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_find_node_by_compatible':
   libfdt-wrapper.c:(.text+0x20c): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_find_node_by_prop_value':
   libfdt-wrapper.c:(.text+0x254): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_create_node':
>> libfdt-wrapper.c:(.text+0x2d0): undefined reference to `_restgpr_28_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_get_parent':
   libfdt-wrapper.c:(.text+0x320): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_setprop':
>> libfdt-wrapper.c:(.text+0x3e4): undefined reference to `_restgpr_26_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_getprop':
   libfdt-wrapper.c:(.text+0x4a4): undefined reference to `_restgpr_29_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_wrapper_finddevice':
   libfdt-wrapper.c:(.text+0x4e0): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(libfdt-wrapper.o): In function `fdt_init':
   libfdt-wrapper.c:(.text+0x5d8): undefined reference to `_restgpr_29_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(main.o): In function `prep_kernel':
>> main.c:(.text+0x174): undefined reference to `_restgpr_24_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_open':
>> serial.c:(.text+0x38): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_write':
>> serial.c:(.text+0x78): undefined reference to `_restgpr_29_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_close':
   serial.c:(.text+0xcc): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_edit_cmdline':
>> serial.c:(.text+0x158): undefined reference to `_restgpr_24_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_get_stdout_devp':
   serial.c:(.text+0x2e4): undefined reference to `_restgpr_29_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(serial.o): In function `serial_console_init':
   serial.c:(.text+0x31c): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_malloc':
>> simple_alloc.c:(.text+0xa0): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_find_entry':
   simple_alloc.c:(.text+0x114): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_free':
   simple_alloc.c:(.text+0x16c): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_realloc':
>> simple_alloc.c:(.text+0x20c): undefined reference to `_restgpr_28_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(simple_alloc.o): In function `simple_alloc_init':
   simple_alloc.c:(.text+0x2b0): undefined reference to `_restgpr_28_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(stdio.o): In function `number':
>> stdio.c:(.text+0x2ec): undefined reference to `_restgpr_20_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(stdio.o): In function `vsprintf':
>> stdio.c:(.text+0x3e4): undefined reference to `_restgpr_23_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(stdio.o): In function `sprintf':
>> stdio.c:(.text+0xae4): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(stdio.o): In function `printf':
   stdio.c:(.text+0xb80): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(uartlite.o): In function `uartlite_open':
>> uartlite.c:(.text+0x3c): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(uartlite.o): In function `uartlite_putc':
   uartlite.c:(.text+0x84): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(uartlite.o): In function `uartlite_getc':
   uartlite.c:(.text+0xe4): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(uartlite.o):uartlite.c:(.text+0x134): more undefined references to `_restgpr_30_x' follow
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(uartlite.o): In function `uartlite_console_init':
>> uartlite.c:(.text+0x198): undefined reference to `_restgpr_29_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(cpm-serial.o): In function `cpm1_cmd':
>> cpm-serial.c:(.text+0x70): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(cpm-serial.o): In function `cpm2_cmd':
   cpm-serial.c:(.text+0xe0): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(cpm-serial.o): In function `smc_disable_port':
   cpm-serial.c:(.text+0x138): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(cpm-serial.o): In function `scc_disable_port':
   cpm-serial.c:(.text+0x190): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(cpm-serial.o): In function `smc_enable_port':
   cpm-serial.c:(.text+0x1e8): undefined reference to `_restgpr_30_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(cpm-serial.o):cpm-serial.c:(.text+0x240): more undefined references to `_restgpr_30_x' follow
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(cpm-serial.o): In function `cpm_console_init':
>> cpm-serial.c:(.text+0x68c): undefined reference to `_restgpr_26_x'
   powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813
   arch/powerpc/boot/wrapper.a(decompress.o): In function `malloc':
>> decompress.c:(.text+0x3c): undefined reference to `_restgpr_30_x'

powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813 arch/powerpc/boot/wrapper.a(decompress.o): In function `free':
decompress.c:(.text+0x84): undefined reference to `_restgpr_30_x'
powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813 arch/powerpc/boot/wrapper.a(decompress.o): In function `zlib_adler32':
decompress.c:(.text+0xc4): undefined reference to `_restgpr_30_x'
powerpc64-linux-gnu-ld: BFD (GNU Binutils for Debian) 2.27 assertion fail ../../bfd/elf32-ppc.c:8813 arch/powerpc/boot/wrapper.a(decompress.o): In function `zlib_updatewindow':

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation