From: Alan Modra Date: Tue, 19 Sep 2017 02:15:51 +0000 (+0930) Subject: [GOLD, PowerPC] Add --no-stub-group-multi X-Git-Tag: binutils-2_29_1.1~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2b5d4106a015cb50bfe8189f575a9a7a04ee9be0;p=thirdparty%2Fbinutils-gdb.git [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. (cherry picked from commit ab502e635e78a6c6c9c8abf3072bfeedaca9c26f) --- diff --git a/gold/ChangeLog b/gold/ChangeLog index cee2289a234..6071f8977a8 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2017-09-19 Alan Modra + + * options.h (stub-group-multi): Default to true. Add + --no-stub-group-multi. + 2017-09-15 Nick Clifton 2.29.1 Release diff --git a/gold/options.h b/gold/options.h index c7c032bbd77..576b2a3c536 100644 --- a/gold/options.h +++ b/gold/options.h @@ -1234,9 +1234,10 @@ class General_options "stubs are always after the group. 1 means use default size"), N_("SIZE")); - DEFINE_bool(stub_group_multi, options::TWO_DASHES, '\0', false, + DEFINE_bool(stub_group_multi, options::TWO_DASHES, '\0', true, N_("(PowerPC only) Allow a group of stubs to serve multiple " - "output sections"), NULL); + "output sections"), + N_("(PowerPC only) Each output section has its own stubs")); DEFINE_uint(split_stack_adjust_size, options::TWO_DASHES, '\0', 0x4000, N_("Stack size when -fsplit-stack function calls non-split"),