Re: linux-next: build failure after merge of the final tree (powerpc related)
On Thu, 2012-06-21 at 21:13 +0930, Alan Modra wrote: > On Thu, Jun 21, 2012 at 08:18:39PM +0930, Alan Modra wrote: > > Linker bug. That's not a sibling call, but a normal function return > > via an out-of-line register restore function. > > I couldn't see how this might be occurring, then I remembered the > kernel has this horrible practise of using ld -r to package object > files. So linker generated functions might be munged together with > other functions. Does this help? (It won't if the kernel is > providing its own save/restore functions.) The kernel does provide its own AIUI. cheers ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Thu, Jun 21, 2012 at 08:18:39PM +0930, Alan Modra wrote: > Linker bug. That's not a sibling call, but a normal function return > via an out-of-line register restore function. I couldn't see how this might be occurring, then I remembered the kernel has this horrible practise of using ld -r to package object files. So linker generated functions might be munged together with other functions. Does this help? (It won't if the kernel is providing its own save/restore functions.) Index: bfd/elf64-ppc.c === RCS file: /cvs/src/src/bfd/elf64-ppc.c,v retrieving revision 1.387 diff -u -p -r1.387 elf64-ppc.c @@ -6494,9 +6494,10 @@ ppc64_elf_func_desc_adjust (bfd *obfd AT /* Provide any missing _save* and _rest* functions. */ htab->sfpr->size = 0; - for (i = 0; i < sizeof (funcs) / sizeof (funcs[0]); i++) -if (!sfpr_define (info, &funcs[i])) - return FALSE; + if (!info->relocatable) +for (i = 0; i < sizeof (funcs) / sizeof (funcs[0]); i++) + if (!sfpr_define (info, &funcs[i])) + return FALSE; elf_link_hash_traverse (&htab->elf, func_desc_adjust, info); -- Alan Modra Australia Development Lab, IBM ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Thu, Jun 21, 2012 at 05:38:27PM +1000, Michael Ellerman wrote: > On Thu, 2012-06-21 at 17:07 +1000, Michael Ellerman wrote: > > On Thu, 2012-06-21 at 16:24 +1000, Benjamin Herrenschmidt wrote: > > > On Thu, 2012-06-21 at 15:36 +1000, Michael Ellerman wrote: > > > > > > > > powerpc64-linux-ld: > > > > /src/next/net/openvswitch/vport-netdev.c:189:(.text+0x89b990): > > > > sibling call optimization to `_restgpr0_28' does not allow > > > > automatic multiple TOCs; > > > > recompile with -mminimal-toc or -fno-optimize-sibling-calls, or > > > > make `_restgpr0_28' extern > > > > Linker bug. That's not a sibling call, but a normal function return via an out-of-line register restore function. Will fix. I'm a bit surprised to see this with gcc-4.6 though. Or does this gcc-4.6 have some of my recent mainline gcc patches enabling out-of-line save/restore functions for -Os? -- Alan Modra Australia Development Lab, IBM ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Thu, 2012-06-21 at 17:07 +1000, Michael Ellerman wrote: > On Thu, 2012-06-21 at 16:24 +1000, Benjamin Herrenschmidt wrote: > > On Thu, 2012-06-21 at 15:36 +1000, Michael Ellerman wrote: > > > > > > powerpc64-linux-ld: > > > /src/next/net/openvswitch/vport-netdev.c:189:(.text+0x89b990): > > > sibling call optimization to `_restgpr0_28' does not allow > > > automatic multiple TOCs; > > > recompile with -mminimal-toc or -fno-optimize-sibling-calls, or > > > make `_restgpr0_28' extern > > > > > Can you show the full build command that triggers the above ? > > Well that would be a few MBs of log, but here's an excerpt: > > make -f scripts/Makefile.build obj=net/openvswitch > /opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc -m64 > -Wp,-MD,net/openvswitch/.vport-netdev.o.d -nostdinc -isystem > /opt/cross/gcc-4.6.3-nolibc/powerpc64-linux/lib/gcc/powerpc64-linux/4.6.3/include > -I/home/michael/src/kmk/next/arch/powerpc/include > -Iarch/powerpc/include/generated -Iinclude -include > /home/michael/src/kmk/next/include/linux/kconfig.h -D__KERNEL__ > -Iarch/powerpc -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs > -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration > -Wno-format-security -fno-delete-null-pointer-checks -Os -msoft-float -pipe > -Iarch/powerpc -mminimal-toc -mtraceback=no -mcall-aixdesc -mtune=power7 > -mtune=cell -mno-altivec -mno-vsx -mno-spe -mspe=no -funit-at-a-time > -fno-dwarf2-cfi-asm -mno-string -mno-sched-epilog -Wa,-maltivec > -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining > -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -g > -femit-struct-debug-baseonly -pg -fno-inline-functions-ca lled-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(vport_netdev)" -D"KBUILD_MODNAME=KBUILD_STR(openvswitch)" -c -o net/openvswitch/.tmp_vport-netdev.o net/openvswitch/vport-netdev.c > if [ "-pg" = "-pg" ]; then set -e ; perl > /home/michael/src/kmk/next/scripts/recordmcount.pl "powerpc" "little" "64" > "/opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-objdump" > "/opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-objcopy" > "/opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc -m64 -Wall > -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common > -Werror-implicit-function-declaration -Wno-format-security > -fno-delete-null-pointer-checks -Os -msoft-float -pipe -Iarch/powerpc > -mminimal-toc -mtraceback=no -mcall-aixdesc -mtune=power7 -mtune=cell > -mno-altivec -mno-vsx -mno-spe -mspe=no -funit-at-a-time -fno-dwarf2-cfi-asm > -mno-string -mno-sched-epilog -Wa,-maltivec -fno-reorder-blocks > -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=2048 > -fno-stack-protector -Wno-unused-but-set-variable -g > -femit-struct-debug-baseonly -pg -fno-inline-functions-called-once > -Wdeclaration-after-statement -Wno-pointer-sign -fno -strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO" "/opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-ld -m elf64ppc" "/opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-nm --synthetic" "" "" "0" "net/openvswitch/vport-netdev.o"; fi; Just for the record it's not the FTRACE stuff (-pg): /opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc -m64 -Wp,-MD,net/openvswitch/.vport-netdev.o.d -nostdinc -isystem /opt/cross/gcc-4.6.3-nolibc/powerpc64-linux/lib/gcc/powerpc64-linux/4.6.3/include -I/home/michael/src/kmk/next/arch/powerpc/include -Iarch/powerpc/include/generated -Iinclude -include /home/michael/src/kmk/next/include/linux/kconfig.h -D__KERNEL__ -Iarch/powerpc -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -msoft-float -pipe -Iarch/powerpc -mminimal-toc -mtraceback=no -mcall-aixdesc -mtune=power7 -mtune=cell -mno-altivec -mno-vsx -mno-spe -mspe=no -funit-at-a-time -fno-dwarf2-cfi-asm -mno-string -Wa,-maltivec -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -femit-struct-debug-baseonly -fno-inline-functions-calle d-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(vport_netdev)" -D"KBUILD_MODNAME=KBUILD_STR(openvswitch)" -c -o net/openvswitch/.tmp_vport-netdev.o net/openvswitch/vport-netdev.c And same error. cheers ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Thu, Jun 21, 2012 at 03:36:01PM +1000, Michael Ellerman wrote: > On Wed, 2012-06-20 at 17:50 +1000, Stephen Rothwell wrote: > > Hi all, > > > > After merging the final tree, today's linux-next build (powerpc > > allyesconfig) failed like this: > > > > powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function > > `bpf_slow_path_word': > > (.text+0x90): sibling call optimization to `skb_copy_bits' does not allow > > automatic multiple TOCs; recompile with -mminimal-toc or > > -fno-optimize-sibling-calls, or make `skb_copy_bits' extern > > > Those seem to be caused because we don't have a nop after the call, > meaning we can't patch the TOC pointer on the way back. Adding a nop > fixes those. > > But, then I get 32,410 variants of this: > > powerpc64-linux-ld: > /src/next/net/openvswitch/vport-netdev.c:189:(.text+0x89b990): > sibling call optimization to `_restgpr0_28' does not allow automatic > multiple TOCs; > recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make > `_restgpr0_28' extern > > These functions should not need a TOC in the first place. There is code in the linker (for 64 bit only: bfd/elf64-ppc.c) to automatically generate them whenever they are needed. I suspect you compile with -Os. But I don't think you can use these functions when doing a sibling call since restgpr0_nn implies a return to the caller. restgpr1_nn would be different... > And those are generated calls so I don't see how we can fix them. > > > I started building with gcc 4.6.3/binutils 2.22 today. gcc > > 4.6.0/binutils 2.21 do not produce this error, it produces this instead > > (which has been happening for a long time): > > > > powerpc64-linux-ld: TOC section size exceeds 64k > > > So presumably there's some new error checking that we're hitting, I > imagine it was always broken, but now it's being more explicit. I'm not so sure. I suspect gcc, but upgrading gcc and binutils at the same time may not be the wisest... Gabriel ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Thu, 2012-06-21 at 16:24 +1000, Benjamin Herrenschmidt wrote: > On Thu, 2012-06-21 at 15:36 +1000, Michael Ellerman wrote: > > > > powerpc64-linux-ld: > > /src/next/net/openvswitch/vport-netdev.c:189:(.text+0x89b990): > > sibling call optimization to `_restgpr0_28' does not allow > > automatic multiple TOCs; > > recompile with -mminimal-toc or -fno-optimize-sibling-calls, or > > make `_restgpr0_28' extern > > > > > > And those are generated calls so I don't see how we can fix them. > > Is this a module ? We should really be linking that stuff directly with the > module No, it's builtin. > The interesting thing is that we do build everything except a handful of > files with -mminimal-toc unless something's wrong with our main Makefile Yeah, the top arch Makefile sets it, though we do override it in a few places. I tried removing those overrides and it didn't seem to make any difference. > Can you show the full build command that triggers the above ? Well that would be a few MBs of log, but here's an excerpt: make -f scripts/Makefile.build obj=net/openvswitch /opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc -m64 -Wp,-MD,net/openvswitch/.vport-netdev.o.d -nostdinc -isystem /opt/cross/gcc-4.6.3-nolibc/powerpc64-linux/lib/gcc/powerpc64-linux/4.6.3/include -I/home/michael/src/kmk/next/arch/powerpc/include -Iarch/powerpc/include/generated -Iinclude -include /home/michael/src/kmk/next/include/linux/kconfig.h -D__KERNEL__ -Iarch/powerpc -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -msoft-float -pipe -Iarch/powerpc -mminimal-toc -mtraceback=no -mcall-aixdesc -mtune=power7 -mtune=cell -mno-altivec -mno-vsx -mno-spe -mspe=no -funit-at-a-time -fno-dwarf2-cfi-asm -mno-string -mno-sched-epilog -Wa,-maltivec -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -g -femit-struct-debug-baseonly -pg -fno-inline-functions-call ed-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(vport_netdev)" -D"KBUILD_MODNAME=KBUILD_STR(openvswitch)" -c -o net/openvswitch/.tmp_vport-netdev.o net/openvswitch/vport-netdev.c if [ "-pg" = "-pg" ]; then set -e ; perl /home/michael/src/kmk/next/scripts/recordmcount.pl "powerpc" "little" "64" "/opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-objdump" "/opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-objcopy" "/opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc -m64 -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -msoft-float -pipe -Iarch/powerpc -mminimal-toc -mtraceback=no -mcall-aixdesc -mtune=power7 -mtune=cell -mno-altivec -mno-vsx -mno-spe -mspe=no -funit-at-a-time -fno-dwarf2-cfi-asm -mno-string -mno-sched-epilog -Wa,-maltivec -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -g -femit-struct-debug-baseonly -pg -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-s trict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO" "/opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-ld -m elf64ppc" "/opt/cross/gcc-4.6-nolibc/powerpc64-linux/bin/powerpc64-linux-nm --synthetic" "" "" "0" "net/openvswitch/vport-netdev.o"; fi; And then a whole bunch of calls to ld. So we are at least building that file with -mminimal-toc. cheers ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Thu, 2012-06-21 at 15:36 +1000, Michael Ellerman wrote: > > powerpc64-linux-ld: > /src/next/net/openvswitch/vport-netdev.c:189:(.text+0x89b990): > sibling call optimization to `_restgpr0_28' does not allow automatic > multiple TOCs; > recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make > `_restgpr0_28' extern > > > And those are generated calls so I don't see how we can fix them. Is this a module ? We should really be linking that stuff directly with the module The interesting thing is that we do build everything except a handful of files with -mminimal-toc unless something's wrong with our main Makefile Can you show the full build command that triggers the above ? Cheers, Ben. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Wed, 2012-06-20 at 17:50 +1000, Stephen Rothwell wrote: > Hi all, > > After merging the final tree, today's linux-next build (powerpc > allyesconfig) failed like this: > > powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function > `bpf_slow_path_word': > (.text+0x90): sibling call optimization to `skb_copy_bits' does not allow > automatic multiple TOCs; recompile with -mminimal-toc or > -fno-optimize-sibling-calls, or make `skb_copy_bits' extern Those seem to be caused because we don't have a nop after the call, meaning we can't patch the TOC pointer on the way back. Adding a nop fixes those. But, then I get 32,410 variants of this: powerpc64-linux-ld: /src/next/net/openvswitch/vport-netdev.c:189:(.text+0x89b990): sibling call optimization to `_restgpr0_28' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `_restgpr0_28' extern And those are generated calls so I don't see how we can fix them. > I started building with gcc 4.6.3/binutils 2.22 today. gcc > 4.6.0/binutils 2.21 do not produce this error, it produces this instead > (which has been happening for a long time): > > powerpc64-linux-ld: TOC section size exceeds 64k So presumably there's some new error checking that we're hitting, I imagine it was always broken, but now it's being more explicit. I think we need some help from the toolchain experts, hi Alan :) cheers ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Wed, 2012-06-20 at 17:50 +1000, Stephen Rothwell wrote: > Hi all, > > After merging the final tree, today's linux-next build (powerpc > allyesconfig) failed like this: I hate our ABI is a good answer ? :-) I'll see what I can do tomorrow. Poke me when I'm in the office. Cheers, Ben. > powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function > `bpf_slow_path_word': > (.text+0x90): sibling call optimization to `skb_copy_bits' does not allow > automatic multiple TOCs; recompile with -mminimal-toc or > -fno-optimize-sibling-calls, or make `skb_copy_bits' extern > powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function > `bpf_slow_path_half': > (.text+0xe0): sibling call optimization to `skb_copy_bits' does not allow > automatic multiple TOCs; recompile with -mminimal-toc or > -fno-optimize-sibling-calls, or make `skb_copy_bits' extern > powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function > `bpf_slow_path_byte': > (.text+0x130): sibling call optimization to `skb_copy_bits' does not allow > automatic multiple TOCs; recompile with -mminimal-toc or > -fno-optimize-sibling-calls, or make `skb_copy_bits' extern > powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function > `bpf_slow_path_byte_msh': > (.text+0x180): sibling call optimization to `skb_copy_bits' does not allow > automatic multiple TOCs; recompile with -mminimal-toc or > -fno-optimize-sibling-calls, or make `skb_copy_bits' extern > powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function > `sk_load_word_negative_offset': > (.text+0x1dc): sibling call optimization to > `bpf_internal_load_pointer_neg_helper' does not allow automatic multiple > TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make > `bpf_internal_load_pointer_neg_helper' extern > powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function > `sk_load_half_negative_offset': > (.text+0x238): sibling call optimization to > `bpf_internal_load_pointer_neg_helper' does not allow automatic multiple > TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make > `bpf_internal_load_pointer_neg_helper' extern > powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function > `sk_load_byte_negative_offset': > (.text+0x294): sibling call optimization to > `bpf_internal_load_pointer_neg_helper' does not allow automatic multiple > TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make > `bpf_internal_load_pointer_neg_helper' extern > powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function > `sk_load_byte_msh_negative_offset': > (.text+0x2f0): sibling call optimization to > `bpf_internal_load_pointer_neg_helper' does not allow automatic multiple > TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make > `bpf_internal_load_pointer_neg_helper' extern > powerpc64-linux-ld: final link failed: Bad value > > I started building with gcc 4.6.3/binutils 2.22 today. gcc > 4.6.0/binutils 2.21 do not produce this error, it produces this instead > (which has been happening for a long time): > > powerpc64-linux-ld: TOC section size exceeds 64k > ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
linux-next: build failure after merge of the final tree (powerpc related)
Hi all, After merging the final tree, today's linux-next build (powerpc allyesconfig) failed like this: powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function `bpf_slow_path_word': (.text+0x90): sibling call optimization to `skb_copy_bits' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `skb_copy_bits' extern powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function `bpf_slow_path_half': (.text+0xe0): sibling call optimization to `skb_copy_bits' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `skb_copy_bits' extern powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function `bpf_slow_path_byte': (.text+0x130): sibling call optimization to `skb_copy_bits' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `skb_copy_bits' extern powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function `bpf_slow_path_byte_msh': (.text+0x180): sibling call optimization to `skb_copy_bits' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `skb_copy_bits' extern powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function `sk_load_word_negative_offset': (.text+0x1dc): sibling call optimization to `bpf_internal_load_pointer_neg_helper' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `bpf_internal_load_pointer_neg_helper' extern powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function `sk_load_half_negative_offset': (.text+0x238): sibling call optimization to `bpf_internal_load_pointer_neg_helper' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `bpf_internal_load_pointer_neg_helper' extern powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function `sk_load_byte_negative_offset': (.text+0x294): sibling call optimization to `bpf_internal_load_pointer_neg_helper' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `bpf_internal_load_pointer_neg_helper' extern powerpc64-linux-ld: arch/powerpc/net/built-in.o: In function `sk_load_byte_msh_negative_offset': (.text+0x2f0): sibling call optimization to `bpf_internal_load_pointer_neg_helper' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `bpf_internal_load_pointer_neg_helper' extern powerpc64-linux-ld: final link failed: Bad value I started building with gcc 4.6.3/binutils 2.22 today. gcc 4.6.0/binutils 2.21 do not produce this error, it produces this instead (which has been happening for a long time): powerpc64-linux-ld: TOC section size exceeds 64k -- Cheers, Stephen Rothwells...@canb.auug.org.au pgpJbS17JUrQk.pgp Description: PGP signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Mon, Jan 2, 2012 at 1:25 AM, Grant Likely wrote: > On Wed, Dec 28, 2011 at 09:32:14PM +1100, Benjamin Herrenschmidt wrote: >> On Wed, 2011-12-28 at 19:49 +1100, Stephen Rothwell wrote: >> > Hi , >> > >> > After merging the final tree, today's linux-next build (powerpc >> > allyesconfig) failed like this: >> > >> > kernel/built-in.o: In function `irq_dispose_mapping': >> > (.opd+0x159f0): multiple definition of `irq_dispose_mapping' >> > arch/powerpc/kernel/built-in.o:(.opd+0x960): first defined here >> > kernel/built-in.o: In function `irq_create_of_mapping': >> > (.opd+0x15a20): multiple definition of `irq_create_of_mapping' >> > arch/powerpc/kernel/built-in.o:(.opd+0x9a8): first defined here >> > kernel/built-in.o: In function `.irq_create_of_mapping': >> > (.text+0x147030): multiple definition of `.irq_create_of_mapping' >> > arch/powerpc/kernel/built-in.o:(.text+0x9de0): first defined here >> > kernel/built-in.o: In function `.irq_dispose_mapping': >> > (.text+0x146f4c): multiple definition of `.irq_dispose_mapping' >> > arch/powerpc/kernel/built-in.o:(.text+0x9684): first defined here >> > >> > I am not sure what caused this. And have just left it broken. >> >> Grant, is your irq remapper misbehaving ? > > H, that's odd. I've not touched it. I'll investigate. It looks like CONFIG_IRQ_DOMAIN is getting selected by TWL4030_CORE. Drivers must not select that config symbol. It looks like commit da28adbd (mfd: twl-core: Add initial DT support for twl4030/twl6030) is the culprit. The following patch should solve the problem: diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index 13c468e..e43a570 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -200,8 +200,7 @@ config MENELAUS config TWL4030_CORE bool "Texas Instruments TWL4030/TWL5030/TWL6030/TPS659x0 Support" - depends on I2C=y && GENERIC_HARDIRQS - select IRQ_DOMAIN + depends on I2C=y && GENERIC_HARDIRQS && IRQ_DOMAIN help Say yes here if you have TWL4030 / TWL6030 family chip on your board. This core driver provides register access and IRQ handling ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Wed, Dec 28, 2011 at 09:32:14PM +1100, Benjamin Herrenschmidt wrote: > On Wed, 2011-12-28 at 19:49 +1100, Stephen Rothwell wrote: > > Hi , > > > > After merging the final tree, today's linux-next build (powerpc > > allyesconfig) failed like this: > > > > kernel/built-in.o: In function `irq_dispose_mapping': > > (.opd+0x159f0): multiple definition of `irq_dispose_mapping' > > arch/powerpc/kernel/built-in.o:(.opd+0x960): first defined here > > kernel/built-in.o: In function `irq_create_of_mapping': > > (.opd+0x15a20): multiple definition of `irq_create_of_mapping' > > arch/powerpc/kernel/built-in.o:(.opd+0x9a8): first defined here > > kernel/built-in.o: In function `.irq_create_of_mapping': > > (.text+0x147030): multiple definition of `.irq_create_of_mapping' > > arch/powerpc/kernel/built-in.o:(.text+0x9de0): first defined here > > kernel/built-in.o: In function `.irq_dispose_mapping': > > (.text+0x146f4c): multiple definition of `.irq_dispose_mapping' > > arch/powerpc/kernel/built-in.o:(.text+0x9684): first defined here > > > > I am not sure what caused this. And have just left it broken. > > Grant, is your irq remapper misbehaving ? H, that's odd. I've not touched it. I'll investigate. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Wed, 2011-12-28 at 19:49 +1100, Stephen Rothwell wrote: > Hi , > > After merging the final tree, today's linux-next build (powerpc > allyesconfig) failed like this: > > kernel/built-in.o: In function `irq_dispose_mapping': > (.opd+0x159f0): multiple definition of `irq_dispose_mapping' > arch/powerpc/kernel/built-in.o:(.opd+0x960): first defined here > kernel/built-in.o: In function `irq_create_of_mapping': > (.opd+0x15a20): multiple definition of `irq_create_of_mapping' > arch/powerpc/kernel/built-in.o:(.opd+0x9a8): first defined here > kernel/built-in.o: In function `.irq_create_of_mapping': > (.text+0x147030): multiple definition of `.irq_create_of_mapping' > arch/powerpc/kernel/built-in.o:(.text+0x9de0): first defined here > kernel/built-in.o: In function `.irq_dispose_mapping': > (.text+0x146f4c): multiple definition of `.irq_dispose_mapping' > arch/powerpc/kernel/built-in.o:(.text+0x9684): first defined here > > I am not sure what caused this. And have just left it broken. Grant, is your irq remapper misbehaving ? Cheers, Ben. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
linux-next: build failure after merge of the final tree (powerpc related)
Hi , After merging the final tree, today's linux-next build (powerpc allyesconfig) failed like this: kernel/built-in.o: In function `irq_dispose_mapping': (.opd+0x159f0): multiple definition of `irq_dispose_mapping' arch/powerpc/kernel/built-in.o:(.opd+0x960): first defined here kernel/built-in.o: In function `irq_create_of_mapping': (.opd+0x15a20): multiple definition of `irq_create_of_mapping' arch/powerpc/kernel/built-in.o:(.opd+0x9a8): first defined here kernel/built-in.o: In function `.irq_create_of_mapping': (.text+0x147030): multiple definition of `.irq_create_of_mapping' arch/powerpc/kernel/built-in.o:(.text+0x9de0): first defined here kernel/built-in.o: In function `.irq_dispose_mapping': (.text+0x146f4c): multiple definition of `.irq_dispose_mapping' arch/powerpc/kernel/built-in.o:(.text+0x9684): first defined here I am not sure what caused this. And have just left it broken. -- Cheers, Stephen Rothwells...@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ pgpx9qRLyx9F5.pgp Description: PGP signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
Hi Ben, On Fri, 3 Sep 2010 13:24:10 +1000 Stephen Rothwell wrote: > > After merging the final tree, today's linux-next build > (powerpc64 allnoconfig) failed like this: > > arch/powerpc/kernel/built-in.o: In function `.sys_call_table': > (.text+0x8d48): undefined reference to `.compat_sys_recv' > > Caused by commit 86250b9d12caa1a3dee12a7cf638b7dd70eaadb6 ("powerpc: Wire > up direct socket system calls"). > > I have applied this patch for today: > > From: Stephen Rothwell > Date: Fri, 3 Sep 2010 13:19:04 +1000 > Subject: [PATCH] powerpc: define a compat_sys_recv cond_syscall > > Signed-off-by: Stephen Rothwell > --- > kernel/sys_ni.c |1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c > index bad369e..c782fe9 100644 > --- a/kernel/sys_ni.c > +++ b/kernel/sys_ni.c > @@ -50,6 +50,7 @@ cond_syscall(compat_sys_sendmsg); > cond_syscall(sys_recvmsg); > cond_syscall(sys_recvmmsg); > cond_syscall(compat_sys_recvmsg); > +cond_syscall(compat_sys_recv); > cond_syscall(compat_sys_recvfrom); > cond_syscall(compat_sys_recvmmsg); > cond_syscall(sys_socketcall); > -- > 1.7.1 Ping? -- Cheers, Stephen Rothwells...@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ pgp8yfN5UfJid.pgp Description: PGP signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
linux-next: build failure after merge of the final tree (powerpc related)
Hi all, After merging the final tree, today's linux-next build (powerpc64 allnoconfig) failed like this: arch/powerpc/kernel/built-in.o: In function `.sys_call_table': (.text+0x8d48): undefined reference to `.compat_sys_recv' Caused by commit 86250b9d12caa1a3dee12a7cf638b7dd70eaadb6 ("powerpc: Wire up direct socket system calls"). I have applied this patch for today: From: Stephen Rothwell Date: Fri, 3 Sep 2010 13:19:04 +1000 Subject: [PATCH] powerpc: define a compat_sys_recv cond_syscall Signed-off-by: Stephen Rothwell --- kernel/sys_ni.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index bad369e..c782fe9 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -50,6 +50,7 @@ cond_syscall(compat_sys_sendmsg); cond_syscall(sys_recvmsg); cond_syscall(sys_recvmmsg); cond_syscall(compat_sys_recvmsg); +cond_syscall(compat_sys_recv); cond_syscall(compat_sys_recvfrom); cond_syscall(compat_sys_recvmmsg); cond_syscall(sys_socketcall); -- 1.7.1 -- Cheers, Stephen Rothwells...@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (powerpc related)
On Fri, 2010-07-16 at 17:19 +1000, Stephen Rothwell wrote: > Hi all, > > After merging the final tree, today's linux-next build (powerpc > allmodconfig) failed like this: > > ERROR: "of_i8042_kbd_irq" [drivers/input/serio/i8042.ko] undefined! > ERROR: "of_i8042_aux_irq" [drivers/input/serio/i8042.ko] undefined! > > Presumably missing EXPORT_SYMBOLs .. Thanks. I'll fix that up. Cheers, Ben. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
linux-next: build failure after merge of the final tree (powerpc related)
Hi all, After merging the final tree, today's linux-next build (powerpc allmodconfig) failed like this: ERROR: "of_i8042_kbd_irq" [drivers/input/serio/i8042.ko] undefined! ERROR: "of_i8042_aux_irq" [drivers/input/serio/i8042.ko] undefined! Presumably missing EXPORT_SYMBOLs .. -- Cheers, Stephen Rothwells...@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ pgpjWziF2tmSw.pgp Description: PGP signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev