Skip to content

Commit ab502e6

Browse files
committedSep 19, 2017
[GOLD, PowerPC] Add --no-stub-group-multi
The trouble with stubs per output section is that ppc32 uses a plt stub as the address of a global function. This needs to be unique, otherwise we'll get multiple addresses for a function. Obviously this is only a partial solution, since ppc32 will get multiple stubs when code is larger than 33M. A proper fix will involve selecting a unique stub to use for non-branch relocs. * options.h (stub-group-multi): Default to true. Add --no-stub-group-multi.
1 parent ced154d commit ab502e6

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed
 

‎gold/ChangeLog

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
2017-09-19 Alan Modra <amodra@gmail.com>
2+
3+
* options.h (stub-group-multi): Default to true. Add
4+
--no-stub-group-multi.
5+
16
2017-08-30 Alan Modra <amodra@gmail.com>
27

38
* powerpc.cc (Target_powerpc::Relocate::relocate): Nop addis on

‎gold/options.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -1235,9 +1235,10 @@ class General_options
12351235
"stubs are always after the group. 1 means use default size"),
12361236
N_("SIZE"));
12371237

1238-
DEFINE_bool(stub_group_multi, options::TWO_DASHES, '\0', false,
1238+
DEFINE_bool(stub_group_multi, options::TWO_DASHES, '\0', true,
12391239
N_("(PowerPC only) Allow a group of stubs to serve multiple "
1240-
"output sections"), NULL);
1240+
"output sections"),
1241+
N_("(PowerPC only) Each output section has its own stubs"));
12411242

12421243
DEFINE_uint(split_stack_adjust_size, options::TWO_DASHES, '\0', 0x4000,
12431244
N_("Stack size when -fsplit-stack function calls non-split"),

0 commit comments

Comments
 (0)
Please sign in to comment.