Cary Coutant
a2575bec24
Update support for .note.gnu.property sections.
...
The original patch did not give the target enough hooks to discover that
an input object file does not have a particular property. For the
GNU_PROPERTY_X86_FEATURE_1_AND property, for example, where a missing
property should be assumed to be all zeroes, and ANDed with other
object modules, this is essential. We now store the target-specific
properties locally in the Target structure as native uint32_t fields,
then AND the per-object feature bits with the program's feature bits
when we're finished processing each input object file. The target-specific
properties are then added back to the output note section during
finalization.
gold/
PR gold/22914
* layout.cc (read_sized_value): Fix spelling of section name.
(Layout::layout_gnu_property): Call Sized_target::record_gnu_property
for target-specific properties;
don't store them with target-independent properties yet.
(Layout::merge_gnu_properties): New method.
(Layout::add_gnu_property): New method.
(Layout::create_gnu_properties_note): Call target to finalize
target-specific properties. Fix spelling of output section name.
* layout.h (Layout::merge_gnu_properties): New method.
(Layout::add_gnu_property): New method.
* object.cc (Sized_relobj_file::do_layout): Call
Layout::merge_gnu_properties.
* target.h (Target::merge_gnu_property): Remove.
(Target::finalize_gnu_properties): New method.
(Target::do_merge_gnu_property): Move to Sized_target and rename.
(Target::do_finalize_gnu_properties): New virtual method.
(Sized_target::record_gnu_property): Moved and renamed from
Target::do_merge_gnu_property.
(Sized_target::merge_gnu_properties): New virtual method.
* x86_64.cc (Target_x86_64::isa_1_used_, isa_1_needed_)
(feature_1_, object_feature_1_, seen_first_object_): New data members.
(Target_x86_64::do_merge_gnu_property): Rename to ...
(Target_x86_64::record_gnu_property): ... this. Save target-specific
properties in Target class object.
(Target_x86_64::merge_gnu_properties): New method.
(add_property): New static inline function.
(Target_x86_64::do_finalize_gnu_properties): New method.
* testsuite/Makefile.am (gnu_property_test): Remove C source file;
link directly without compiler driver.
* testsuite/Makefile.in: Regenerate.
* testsuite/gnu_property_a.S: Add _start.
2018-06-22 23:36:50 -07:00
..
2016-07-26 08:55:14 -07:00
2016-06-28 15:50:29 -07:00
2017-01-02 14:08:56 +10:30
2016-07-26 08:55:14 -07:00
2017-01-02 14:08:56 +10:30
2017-08-28 08:03:00 -07:00
2017-08-28 08:03:00 -07:00
2017-08-28 08:03:00 -07:00
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2015-07-06 15:02:40 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2015-07-06 15:02:40 -07:00
2015-07-06 15:02:40 -07:00
2015-07-06 15:02:40 -07:00
2015-07-06 15:02:40 -07:00
2015-07-06 15:02:40 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-10-19 20:53:14 -07:00
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-10-19 20:53:14 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2015-07-06 15:02:40 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2016-09-02 15:51:59 -07:00
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2016-09-02 15:51:59 -07:00
2016-12-19 15:28:28 -08:00
2016-12-19 15:28:28 -08:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2015-07-26 00:54:26 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2016-12-22 20:07:23 -08:00
2018-01-03 17:49:56 +10:30
2016-12-22 20:07:23 -08:00
2017-01-02 14:08:56 +10:30
2016-12-22 20:07:23 -08:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-11 11:47:27 -08:00
2017-01-10 11:50:07 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-12-01 22:53:08 -08:00
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2016-03-20 19:17:14 -07:00
2016-03-20 19:17:14 -07:00
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-12-01 12:59:36 -08:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-09-20 15:45:04 -07:00
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-06-22 23:36:50 -07:00
2018-06-22 09:52:00 -07:00
2018-06-22 09:52:00 -07:00
2018-06-22 09:52:00 -07:00
2018-06-22 09:52:00 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2015-04-01 16:52:09 +03:00
2015-04-01 16:52:09 +03:00
2015-04-01 16:52:09 +03:00
2015-04-01 16:52:09 +03:00
2015-04-01 16:52:09 +03:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-02-15 00:37:10 -08:00
2018-01-03 17:49:56 +10:30
2017-01-23 17:34:42 -08:00
2017-01-02 14:08:56 +10:30
2017-01-23 17:34:42 -08:00
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-23 17:34:42 -08:00
2017-01-02 14:08:56 +10:30
2015-07-22 03:37:50 -07:00
2015-07-22 03:37:50 -07:00
2017-01-02 14:08:56 +10:30
2015-07-22 03:37:50 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2018-03-07 12:15:49 -08:00
2018-03-07 12:15:49 -08:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-06-22 23:36:50 -07:00
2018-06-22 23:36:50 -07:00
2017-01-02 14:08:56 +10:30
2015-03-21 19:54:15 -07:00
2015-03-21 19:54:15 -07:00
2015-03-21 19:54:15 -07:00
2015-03-21 19:54:15 -07:00
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-12-01 22:53:08 -08:00
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-12-11 14:58:38 -08:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-03-26 10:54:45 -07:00
2018-03-26 10:54:45 -07:00
2018-03-26 10:54:45 -07:00
2018-01-03 17:49:56 +10:30
2017-04-27 11:54:29 +09:30
2016-03-03 11:42:13 -08:00
2016-03-03 11:42:13 -08:00
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2017-09-20 15:45:04 -07:00
2018-02-15 17:35:16 -08:00
2018-02-15 17:35:16 -08:00
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-02-22 13:56:46 -08:00
2018-02-22 13:56:46 -08:00
2018-02-22 13:56:46 -08:00
2018-04-24 13:51:24 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2016-10-21 11:10:46 -07:00
2015-07-20 10:14:35 -07:00
2017-01-02 14:08:56 +10:30
2016-06-29 08:37:42 -07:00
2016-06-29 08:37:42 -07:00
2016-06-29 08:37:42 -07:00
2016-06-29 08:37:42 -07:00
2016-06-29 08:38:58 -07:00
2016-06-29 08:38:58 -07:00
2016-06-29 08:38:58 -07:00
2016-06-29 08:38:58 -07:00
2016-12-11 20:31:09 -08:00
2018-01-03 17:49:56 +10:30
2016-12-13 09:31:19 +10:30
2017-01-02 14:08:56 +10:30
2017-05-12 15:24:32 -07:00
2017-05-12 15:24:32 -07:00
2017-11-28 09:00:44 -08:00
2017-11-27 17:32:55 -08:00
2017-11-27 17:32:55 -08:00
2018-04-02 19:07:04 -07:00
2018-04-02 19:07:04 -07:00
2018-04-02 19:07:04 -07:00
2018-04-02 19:07:04 -07:00
2018-04-02 19:07:04 -07:00
2018-04-02 19:07:04 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2015-07-22 03:38:00 -07:00
2015-07-22 03:38:00 -07:00
2015-07-22 03:38:00 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2016-06-23 09:45:25 -07:00
2017-01-02 14:08:56 +10:30
2016-12-12 18:52:44 -08:00
2017-01-11 11:26:26 -08:00
2016-12-12 18:52:44 -08:00
2016-06-28 13:56:05 -07:00
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2016-12-11 17:31:25 -08:00
2017-01-11 11:26:26 -08:00
2017-01-02 14:08:56 +10:30
2017-01-11 11:26:26 -08:00
2017-01-02 14:08:56 +10:30
2017-01-11 11:26:26 -08:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2017-01-02 14:08:56 +10:30
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2016-02-15 11:59:25 +01:00
2015-01-06 15:38:25 -08:00
2015-01-06 15:38:25 -08:00
2015-01-06 15:38:25 -08:00
2015-01-06 15:38:25 -08:00
2015-01-06 15:38:25 -08:00
2018-01-03 17:49:56 +10:30
2018-03-27 18:51:22 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-04-02 19:07:04 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-10-20 11:00:28 -07:00
2017-10-20 11:00:28 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2015-07-06 15:02:40 -07:00
2015-07-06 15:02:40 -07:00
2015-07-06 15:02:40 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-12-01 22:03:09 -08:00
2017-12-01 22:03:09 -08:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-10 11:50:07 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2015-08-18 19:24:41 -07:00
2015-08-18 19:24:41 -07:00
2017-01-02 14:08:56 +10:30
2018-06-20 01:25:04 -07:00
2018-06-20 01:25:04 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-04-24 13:51:24 -07:00
2018-04-24 13:51:24 -07:00
2018-04-24 13:51:24 -07:00
2018-04-24 13:51:24 -07:00
2018-04-24 13:51:24 -07:00
2018-01-03 17:49:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-06-21 13:54:16 -07:00
2018-06-21 13:54:16 -07:00
2018-06-21 13:54:16 -07:00
2018-06-21 13:54:16 -07:00
2018-06-21 13:54:16 -07:00
2018-06-21 13:54:16 -07:00
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2017-01-02 14:08:56 +10:30
2018-01-03 17:49:56 +10:30
2016-06-28 15:42:33 -07:00
2017-01-02 14:08:56 +10:30
2016-06-28 15:42:33 -07:00
2015-04-06 12:37:34 +03:00
2015-04-06 12:37:34 +03:00
2015-04-06 12:37:34 +03:00
2015-04-06 12:37:34 +03:00
2018-01-03 17:49:56 +10:30
2016-02-06 14:47:05 -08:00
2017-01-02 14:08:56 +10:30