[Bug gold/20878] gold powerpc64 le linux fails to link large Linux kernel
https://sourceware.org/bugzilla/show_bug.cgi?id=20878 --- Comment #8 from cvs-commit at gcc dot gnu.org --- The binutils-2_27-branch branch has been updated by Alan Modra: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=983d1db4d7b5644b8c16a64bb6cb7267f602ebef commit 983d1db4d7b5644b8c16a64bb6cb7267f602ebef Author: Alan Modra Date: Wed Dec 7 14:12:26 2016 +1030 [GOLD] powerpc64le-linux fails to link large Linux kernel Gold attaches stubs to an existing section in contrast to ld.bfd which inserts a new section for stubs. If we want stubs before branches, then the stubs must be added to the previous section. Adding to the previous section is a disaster if there is a large gap between the previous section and the group. PR gold/20878 * powerpc.cc (Stub_control): Replace stubs_always_before_branch_ with stubs_always_after_branch_, group_end_addr_ with group_start_addr_. (Stub_control::can_add_to_stub_group): Rewrite to suit scanning sections by increasing address. (Target_powerpc::group_sections): Scan that way. Delete corner case. * options.h (--stub-group-size): Update help string. -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/20878] gold powerpc64 le linux fails to link large Linux kernel
https://sourceware.org/bugzilla/show_bug.cgi?id=20878 npiggin at gmail dot com changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #7 from npiggin at gmail dot com --- Fixed -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/20878] gold powerpc64 le linux fails to link large Linux kernel
https://sourceware.org/bugzilla/show_bug.cgi?id=20878 --- Comment #6 from npiggin at gmail dot com --- This commit fixes the bug for me. Thank you. -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/20878] gold powerpc64 le linux fails to link large Linux kernel
https://sourceware.org/bugzilla/show_bug.cgi?id=20878 --- Comment #5 from cvs-commit at gcc dot gnu.org --- The master branch has been updated by Alan Modra: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a5018ae555cdf491005907c03f997558ba15fc47 commit a5018ae555cdf491005907c03f997558ba15fc47 Author: Alan Modra Date: Wed Dec 7 14:12:26 2016 +1030 [GOLD] powerpc64le-linux fails to link large Linux kernel Gold attaches stubs to an existing section in contrast to ld.bfd which inserts a new section for stubs. If we want stubs before branches, then the stubs must be added to the previous section. Adding to the previous section is a disaster if there is a large gap between the previous section and the group. PR gold/20878 * powerpc.cc (Stub_control): Replace stubs_always_before_branch_ with stubs_always_after_branch_, group_end_addr_ with group_start_addr_. (Stub_control::can_add_to_stub_group): Rewrite to suit scanning sections by increasing address. (Target_powerpc::group_sections): Scan that way. Delete corner case. * options.h (--stub-group-size): Update help string. -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/20878] gold powerpc64 le linux fails to link large Linux kernel
https://sourceware.org/bugzilla/show_bug.cgi?id=20878 Alan Modra changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2016-12-06 Assignee|ccoutant at gmail dot com |amodra at gmail dot com Ever confirmed|0 |1 --- Comment #4 from Alan Modra --- This one is a real pain. It's due to gold adding stubs at the end of a section rather than as ld.bfd does, in a separate section inserted just before one of the group sections. I think I need to rewrite the powerpc.cc group_sections code, throwing out --stub-group-size negative meaning that the stubs are always before the branch and switch to --stub-group-size negative meaning that the stubs are always *after* the branch. The problem is that if we want stubs before branches, then the stubs must be added to the previous section. Adding to the previous section is a disaster if there is a large gap between the previous section and the group. That's exactly what happens with the kernel: stubs are attached to a .meminit.text input section (last in output .text) for the group of .init.text and .exit.text sections. -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/20878] gold powerpc64 le linux fails to link large Linux kernel
https://sourceware.org/bugzilla/show_bug.cgi?id=20878 --- Comment #3 from npiggin at gmail dot com --- The files are too large to attach here. I've uploaded to: fs.ozlabs.ibm.com/~npiggin/binutils-pr20878.tar.xz (IBM-internal, apologies to others) You'll want to unpack that inside a new directory. Then within that directory run: ld -EL -m elf64lppc -Bstatic --build-id -X -o vmlinux -T ./arch/powerpc/kernel/vmlinux.lds --whole-archive built-in.o .tmp_kallsyms4.o -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/20878] gold powerpc64 le linux fails to link large Linux kernel
https://sourceware.org/bugzilla/show_bug.cgi?id=20878 --- Comment #2 from Alan Modra --- Please attach the object files referenced by that linker command line. My attempts at a kernel "configured with all options" led to lots of errors "relocation truncated to fit: R_PPC64_REL24 (stub)" This with ld.bfd. -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils