Re: linux-next: build failure after merge of the final tree (powerpc related)

2012-06-21 Thread Michael Ellerman
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)

2012-06-21 Thread Alan Modra
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)

2012-06-21 Thread Alan Modra
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)

2012-06-21 Thread Michael Ellerman
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)

2012-06-21 Thread Gabriel Paubert
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)

2012-06-21 Thread Michael Ellerman
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)

2012-06-20 Thread Benjamin Herrenschmidt
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)

2012-06-20 Thread Michael Ellerman
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)

2012-06-20 Thread Benjamin Herrenschmidt
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)

2012-06-20 Thread Stephen Rothwell
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)

2012-01-02 Thread Grant Likely
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)

2012-01-02 Thread Grant Likely
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)

2011-12-28 Thread Benjamin Herrenschmidt
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)

2011-12-28 Thread Stephen Rothwell
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)

2010-09-16 Thread Stephen Rothwell
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)

2010-09-02 Thread Stephen Rothwell
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)

2010-07-18 Thread Benjamin Herrenschmidt
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)

2010-07-16 Thread Stephen Rothwell
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