diff options
author | Alan Modra <amodra@gmail.com> | 2016-12-07 14:12:26 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2016-12-07 14:15:44 +1030 |
commit | a5018ae555cdf491005907c03f997558ba15fc47 (patch) | |
tree | 5d31dd0711e31865b1c8549cbc2628ff43f88c1d /gold/options.h | |
parent | dc60b26d983494a3cdec0d4f167ed98fde1a832a (diff) | |
download | gdb-a5018ae555cdf491005907c03f997558ba15fc47.zip gdb-a5018ae555cdf491005907c03f997558ba15fc47.tar.gz gdb-a5018ae555cdf491005907c03f997558ba15fc47.tar.bz2 |
[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.
Diffstat (limited to 'gold/options.h')
-rw-r--r-- | gold/options.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gold/options.h b/gold/options.h index d21b935..90ccc80 100644 --- a/gold/options.h +++ b/gold/options.h @@ -1216,8 +1216,7 @@ class General_options DEFINE_int(stub_group_size, options::TWO_DASHES , '\0', 1, N_("(ARM, PowerPC only) The maximum distance from instructions " "in a group of sections to their stubs. Negative values mean " - "stubs are always after (PowerPC before) the group. 1 means " - "use default size"), + "stubs are always after the group. 1 means use default size"), N_("SIZE")); DEFINE_uint(split_stack_adjust_size, options::TWO_DASHES, '\0', 0x4000, |