powerpc: fpr save/restore function cleanups
Nicholas Piggin
reviewerPATCH 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
Nicholas Piggin
reviewerQuoted 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.
Signed-off-by Nicholas Piggin <[email protected]>---
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
Nicholas Piggin
reviewerQuoted 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
Signed-off-by Nicholas Piggin <[email protected]>---
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
Michael Ellerman
reviewerQuoted 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
Signed-off-by Nicholas Piggin <[email protected]>---
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.
Signed-off-by Nicholas Piggin <[email protected]>--- 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
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
kbuild test robot
build boturl: 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
#endifvim +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
kbuild test robot
build boturl: 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