[GOLD] powerpc64le-linux fails to link large Linux kernel
authorAlan Modra <amodra@gmail.com>
Wed, 7 Dec 2016 03:42:26 +0000 (14:12 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 7 Dec 2016 03:45:44 +0000 (14:15 +1030)
commita5018ae555cdf491005907c03f997558ba15fc47
tree5d31dd0711e31865b1c8549cbc2628ff43f88c1d
parentdc60b26d983494a3cdec0d4f167ed98fde1a832a
[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.
gold/ChangeLog
gold/options.h
gold/powerpc.cc