2015-07-23 Ian Coolidge <icoolidge@google.com>
Plumb --pic-veneer option for gold. gold/ChangeLog: * arm.cc (Reloc_stub::stub_type_for_reloc): Plumb to stub generation. * options.h (General_options): Add --pic-veneer option.
This commit is contained in:
parent
d5cff5df74
commit
cdb061674c
@ -1,3 +1,10 @@
|
||||
2015-07-23 Ian Coolidge <icoolidge@google.com>
|
||||
Plumb --pic-veneer option for gold.
|
||||
|
||||
* arm.cc (Reloc_stub::stub_type_for_reloc): Plumb to stub
|
||||
generation.
|
||||
* options.h (General_options): Add --pic-veneer option.
|
||||
|
||||
2015-07-22 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR gold/18663
|
||||
|
@ -4542,7 +4542,7 @@ Reloc_stub::stub_type_for_reloc(
|
||||
// This is a bit ugly but we want to avoid using a templated class for
|
||||
// big and little endianities.
|
||||
bool may_use_blx;
|
||||
bool should_force_pic_veneer;
|
||||
bool should_force_pic_veneer = parameters->options().pic_veneer();
|
||||
bool thumb2;
|
||||
bool thumb_only;
|
||||
if (parameters->target().is_big_endian())
|
||||
@ -4550,7 +4550,7 @@ Reloc_stub::stub_type_for_reloc(
|
||||
const Target_arm<true>* big_endian_target =
|
||||
Target_arm<true>::default_target();
|
||||
may_use_blx = big_endian_target->may_use_v5t_interworking();
|
||||
should_force_pic_veneer = big_endian_target->should_force_pic_veneer();
|
||||
should_force_pic_veneer |= big_endian_target->should_force_pic_veneer();
|
||||
thumb2 = big_endian_target->using_thumb2();
|
||||
thumb_only = big_endian_target->using_thumb_only();
|
||||
}
|
||||
@ -4559,7 +4559,8 @@ Reloc_stub::stub_type_for_reloc(
|
||||
const Target_arm<false>* little_endian_target =
|
||||
Target_arm<false>::default_target();
|
||||
may_use_blx = little_endian_target->may_use_v5t_interworking();
|
||||
should_force_pic_veneer = little_endian_target->should_force_pic_veneer();
|
||||
should_force_pic_veneer |=
|
||||
little_endian_target->should_force_pic_veneer();
|
||||
thumb2 = little_endian_target->using_thumb2();
|
||||
thumb_only = little_endian_target->using_thumb_only();
|
||||
}
|
||||
|
@ -982,6 +982,10 @@ class General_options
|
||||
N_("Do not create a position independent executable"),
|
||||
false);
|
||||
|
||||
DEFINE_bool(pic_veneer, options::TWO_DASHES, '\0', false,
|
||||
N_("Force PIC sequences for ARM/Thumb interworking veneers"),
|
||||
NULL);
|
||||
|
||||
DEFINE_bool(pipeline_knowledge, options::ONE_DASH, '\0', false,
|
||||
NULL, N_("(ARM only) Ignore for backward compatibility"));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user