H.J. Lu
46bed6796d
ld: Support ELF GNU program properties
From .note.gnu.property section in each ELF input, we build a list of
GNU properties if .note.gnu.property section isn't corrupt. The unknown
properties are ignored. All property lists in relocatable inputs are
merged into an output property list. When -z stack-size=N is used and
N isn't 0, the GNU_PROPERTY_STACK_SIZE property will be merged with or
added to the output property list. .note.gnu.property section is
generated in output from the output property list.
bfd/
* Makefile.am (BFD32_BACKENDS): Add elf-properties.lo.
(BFD32_BACKENDS_CFILES): Add elf-properties.c.
* configure.ac (elf): Add elf-properties.lo.
* Makefile.in: Regenerated.
* configure: Likewise.
* elf-bfd.h (elf_property_kind): New.
(elf_property): Likewise.
(elf_property_list): Likewise.
(elf_properties): Likewise.
(_bfd_elf_parse_gnu_properties): Likewise.
(_bfd_elf_get_property): Likewise.
(_bfd_elf_link_setup_gnu_properties): Likewise.
(elf_backend_data): Add parse_gnu_properties, merge_gnu_properties
and setup_gnu_properties.
(elf_obj_tdata): Add properties.
* elf-properties.c: New file.
* elf32-i386.c (elf_i386_parse_gnu_properties): New.
(elf_i386_merge_gnu_properties): Likewise.
(elf_backend_parse_gnu_properties): Likewise.
(elf_backend_merge_gnu_properties): Likewise.
* elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise.
(elf_x86_64_merge_gnu_properties): Likewise.
(elf_backend_parse_gnu_properties): Likewise.
(elf_backend_merge_gnu_properties): Likewise.
* elfxx-target.h (elf_backend_merge_gnu_properties): Likewise.
(elf_backend_parse_gnu_properties): Likewise.
(elf_backend_setup_gnu_properties): Likewise.
(elfNN_bed): Add elf_backend_parse_gnu_properties,
elf_backend_merge_gnu_properties and
elf_backend_setup_gnu_properties.
ld/
* ld/NEWS: Mention support for ELF GNU program properties.
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Call
ELF setup_gnu_properties.
* testsuite/ld-i386/i386.exp: Run property tests for Linux/i386.
* testsuite/ld-i386/pass.c: New file.
* testsuite/ld-i386/property-1.r: Likewise.
* testsuite/ld-i386/property-2.r: Likewise.
* testsuite/ld-i386/property-3.r: Likewise.
* testsuite/ld-i386/property-4.r: Likewise.
* testsuite/ld-i386/property-5.r: Likewise.
* testsuite/ld-i386/property-6.r: Likewise.
* testsuite/ld-i386/property-6a.c: Likewise.
* testsuite/ld-i386/property-6b.c: Likewise.
* testsuite/ld-i386/property-6c.S: Likewise.
* testsuite/ld-i386/property-7.r: Likewise.
* testsuite/ld-i386/property-no-copy.S: Likewise.
* testsuite/ld-i386/property-stack.S: Likewise.
* testsuite/ld-i386/property-unsorted-1.S: Likewise.
* testsuite/ld-i386/property-unsorted-2.S: Likewise.
* testsuite/ld-i386/property-x86-1.S: Likewise.
* testsuite/ld-i386/property-x86-2.S: Likewise.
* testsuite/ld-x86-64/pass.c: Likewise.
* testsuite/ld-x86-64/property-1.r: Likewise.
* testsuite/ld-x86-64/property-2.r: Likewise.
* testsuite/ld-x86-64/property-3.r: Likewise.
* testsuite/ld-x86-64/property-4.r: Likewise.
* testsuite/ld-x86-64/property-5.r: Likewise.
* testsuite/ld-x86-64/property-6.r: Likewise.
* testsuite/ld-x86-64/property-6a.c: Likewise.
* testsuite/ld-x86-64/property-6b.c: Likewise.
* testsuite/ld-x86-64/property-6c.S: Likewise.
* testsuite/ld-x86-64/property-7.r: Likewise.
* testsuite/ld-x86-64/property-no-copy.S: Likewise.
* testsuite/ld-x86-64/property-stack.S: Likewise.
* testsuite/ld-x86-64/property-unsorted-1.S: Likewise.
* testsuite/ld-x86-64/property-unsorted-2.S: Likewise.
* testsuite/ld-x86-64/property-x86-1.S: Likewise.
* testsuite/ld-x86-64/property-x86-2.S: Likewise.
* testsuite/ld-x86-64/x86-64.exp: Run property tests for
Linux/x86-64.
2017-04-03 08:08:27 -07:00
..
2015-05-11 11:29:03 -07:00
2009-04-08 21:48:47 +00:00
2010-04-22 01:51:01 +00:00
2012-04-03 16:01:38 +00:00
2016-02-03 08:25:15 -08:00
2015-10-22 04:47:07 -07:00
2016-02-03 08:25:15 -08:00
2015-10-22 04:47:07 -07:00
2016-02-03 08:25:15 -08:00
2015-10-22 04:47:07 -07:00
2015-10-22 04:56:39 -07:00
2016-02-03 08:25:15 -08:00
2016-02-03 08:25:15 -08:00
2016-02-03 08:25:15 -08:00
2016-02-03 08:25:15 -08:00
2016-02-03 08:25:15 -08:00
2016-02-03 08:25:15 -08:00
2016-02-03 08:25:15 -08:00
2016-02-03 08:25:15 -08:00
2015-02-19 04:45:27 -08:00
2010-07-15 00:42:23 +00:00
2015-04-22 05:30:01 -07:00
2015-04-22 05:30:01 -07:00
2015-04-22 05:30:01 -07:00
2015-04-22 05:30:01 -07:00
2015-04-22 05:30:01 -07:00
2010-08-13 20:50:27 +00:00
2010-08-13 20:50:27 +00:00
2010-08-13 20:50:27 +00:00
2015-04-22 05:30:01 -07:00
2015-05-11 11:29:03 -07:00
2012-04-03 16:01:38 +00:00
2012-04-03 16:01:38 +00:00
2017-01-02 14:08:56 +10:30
2015-05-11 11:29:03 -07:00
2016-02-26 09:39:24 -08:00
2015-10-22 04:47:07 -07:00
2016-02-03 08:25:15 -08:00
2015-10-22 04:47:07 -07:00
2015-10-22 04:47:07 -07:00
2016-02-03 08:25:15 -08:00
2008-03-16 22:26:23 +00:00
2008-03-16 22:26:23 +00:00
2012-04-03 16:01:38 +00:00
2008-03-16 22:26:23 +00:00
2008-03-16 22:26:23 +00:00
2008-03-16 22:26:23 +00:00
2012-08-28 20:29:19 +00:00
2012-08-28 20:29:19 +00:00
2017-04-03 08:08:27 -07:00
2015-05-11 11:29:03 -07:00
2015-05-11 11:29:03 -07:00
2015-05-11 11:29:03 -07:00
2015-05-11 12:06:33 -07:00
2016-06-13 09:27:12 -07:00
2016-06-13 09:27:12 -07:00
2016-06-13 09:27:12 -07:00
2016-06-13 09:27:12 -07:00
2016-02-03 08:25:15 -08:00
2015-10-22 04:47:07 -07:00
2016-02-03 08:25:15 -08:00
2015-10-22 04:47:07 -07:00
2015-10-26 08:11:55 -07:00
2016-06-03 04:10:11 -07:00
2016-06-03 04:10:11 -07:00
2016-02-26 09:39:24 -08:00
2016-06-03 04:10:11 -07:00
2016-06-03 04:10:11 -07:00
2016-06-03 04:10:11 -07:00
2016-06-08 12:41:50 -07:00
2016-06-08 12:41:50 -07:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2015-10-22 04:47:07 -07:00
2016-02-03 08:25:15 -08:00
2015-10-22 04:47:07 -07:00
2016-02-03 08:25:15 -08:00
2015-10-22 04:47:07 -07:00
2015-10-22 04:47:07 -07:00
2016-02-03 08:25:15 -08:00
2016-02-26 09:39:24 -08:00
2015-10-22 04:47:07 -07:00
2016-02-03 08:25:15 -08:00
2016-02-26 09:39:24 -08:00
2015-10-22 04:47:07 -07:00
2015-10-22 04:47:07 -07:00
2016-06-03 04:10:11 -07:00
2016-05-06 05:28:18 -07:00
2016-05-06 05:28:18 -07:00
2015-10-26 08:11:55 -07:00
2015-10-26 08:11:55 -07:00
2016-06-03 04:10:11 -07:00
2015-12-04 09:03:04 -08:00
2015-12-04 09:03:04 -08:00
2016-02-03 08:25:15 -08:00
2016-02-03 08:25:15 -08:00
2015-12-04 09:03:04 -08:00
2016-06-15 09:44:21 -07:00
2016-06-08 12:41:50 -07:00
2016-06-15 09:44:21 -07:00
2016-06-08 12:41:50 -07:00
2016-06-15 09:44:21 -07:00
2016-06-08 12:41:50 -07:00
2016-06-15 09:44:21 -07:00
2016-06-08 12:41:50 -07:00
2016-06-15 09:44:21 -07:00
2016-06-08 12:41:50 -07:00
2016-06-15 09:44:21 -07:00
2016-06-08 12:41:50 -07:00
2016-06-15 09:44:21 -07:00
2016-06-08 12:41:50 -07:00
2016-06-15 09:44:21 -07:00
2016-06-08 12:41:50 -07:00
2016-06-15 09:44:21 -07:00
2016-06-08 12:41:50 -07:00
2016-06-15 09:44:21 -07:00
2016-06-08 12:41:50 -07:00
2016-06-15 09:44:21 -07:00
2016-06-15 09:44:21 -07:00
2016-06-15 09:44:21 -07:00
2016-06-15 09:44:21 -07:00
2016-06-08 12:41:50 -07:00
2016-06-08 12:41:50 -07:00
2017-01-02 14:08:56 +10:30
2016-08-19 09:16:30 +01:00
2010-09-24 06:09:31 +00:00
2010-10-01 04:47:02 +00:00
2010-10-01 04:47:02 +00:00
2017-04-03 08:08:27 -07:00
2016-06-08 12:01:50 -07:00
2012-04-03 16:01:38 +00:00
2012-04-03 16:01:38 +00:00
2014-11-21 08:45:02 -08:00
2014-11-21 08:45:02 -08:00
2015-10-22 04:47:07 -07:00
2014-11-21 08:45:02 -08:00
2014-11-21 08:45:02 -08:00
2014-11-21 08:45:02 -08:00
2015-10-22 04:47:07 -07:00
2014-11-21 08:45:02 -08:00
2015-10-22 04:47:07 -07:00
2014-11-21 08:45:02 -08:00
2014-11-21 08:45:02 -08:00
2014-11-25 05:05:39 -08:00
2016-10-11 13:50:10 +01:00
2016-10-11 13:50:10 +01:00
2016-10-11 13:50:10 +01:00
2012-04-03 16:01:38 +00:00
2016-10-11 13:50:10 +01:00
2012-04-03 16:01:38 +00:00
2015-06-24 13:47:37 -07:00
2015-05-12 13:11:48 -07:00
2015-06-24 13:47:37 -07:00
2012-04-03 16:01:38 +00:00
2012-05-22 14:05:21 +00:00
2012-05-22 14:05:21 +00:00
2012-05-22 14:05:21 +00:00
2012-05-22 14:05:21 +00:00
2011-04-04 16:36:29 +00:00
2011-04-04 16:36:29 +00:00
2012-04-03 16:01:38 +00:00
2016-08-19 09:16:30 +01:00
2011-05-01 13:38:22 +00:00
2016-08-19 09:16:30 +01:00
2011-06-24 14:03:15 +00:00
2016-06-18 09:17:25 -07:00
2011-10-21 19:37:15 +00:00
2012-06-11 13:23:51 +00:00
2012-06-11 13:23:51 +00:00
2014-07-15 13:09:55 -07:00
2014-07-15 13:09:55 -07:00
2014-08-27 07:59:48 -07:00
2014-08-27 07:59:48 -07:00
2015-04-22 05:30:01 -07:00
2015-04-22 05:30:01 -07:00
2015-04-22 05:30:01 -07:00
2015-04-22 05:30:01 -07:00
2015-04-22 05:30:01 -07:00
2015-05-16 07:00:55 -07:00
2015-04-22 05:30:01 -07:00
2015-04-10 11:06:34 -07:00
2015-04-10 11:06:34 -07:00
2015-04-10 11:06:34 -07:00
2015-04-10 11:06:34 -07:00
2015-04-22 05:30:01 -07:00
2015-02-07 05:28:06 -08:00
2015-02-07 05:28:06 -08:00
2015-02-07 05:28:06 -08:00
2015-02-07 05:28:06 -08:00
2015-08-13 04:31:38 -07:00
2015-08-13 04:31:38 -07:00
2015-08-12 13:47:41 -07:00
2015-08-12 13:47:41 -07:00
2015-09-01 05:06:33 -07:00
2015-09-01 05:06:33 -07:00
2015-09-01 05:06:33 -07:00
2015-09-01 05:06:33 -07:00
2015-09-01 05:06:33 -07:00
2015-09-01 05:06:33 -07:00
2015-09-30 08:45:13 -07:00
2015-09-30 08:45:13 -07:00
2015-09-30 08:45:13 -07:00
2015-09-30 08:45:13 -07:00
2016-06-03 04:10:11 -07:00
2015-10-26 16:32:55 -07:00
2015-10-26 16:32:55 -07:00
2015-12-01 14:45:51 -08:00
2015-12-01 14:45:51 -08:00
2015-12-01 14:45:51 -08:00
2016-03-13 08:57:10 -07:00
2016-03-13 08:57:10 -07:00
2016-11-23 11:10:39 +00:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-05-19 12:57:11 -07:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-02-11 15:20:13 -08:00
2016-02-11 15:20:13 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-10-12 09:36:05 +10:30
2016-10-11 13:50:10 +01:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-10-12 09:36:05 +10:30
2016-10-11 13:50:10 +01:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-06-16 11:28:29 -07:00
2016-06-16 11:28:29 -07:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 05:01:34 -08:00
2016-02-26 05:01:34 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-02-26 04:55:57 -08:00
2016-04-04 20:50:19 -07:00
2016-03-15 11:47:06 -07:00
2016-03-15 11:47:06 -07:00
2016-03-15 11:47:06 -07:00
2016-04-11 19:41:52 -07:00
2016-04-11 19:41:52 -07:00
2016-04-11 19:41:52 -07:00
2016-05-19 12:57:11 -07:00
2016-05-19 12:57:11 -07:00
2016-06-11 21:24:01 -07:00
2016-06-11 21:24:01 -07:00
2016-06-11 21:24:01 -07:00
2016-06-11 21:24:01 -07:00
2016-06-13 11:11:23 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-13 11:11:23 -07:00
2016-06-13 11:11:23 -07:00
2016-06-13 11:11:23 -07:00
2016-06-13 11:11:23 -07:00
2016-06-13 11:11:23 -07:00
2017-02-15 11:11:40 -08:00
2017-02-15 11:11:40 -08:00
2017-02-15 11:11:40 -08:00
2017-02-15 11:11:40 -08:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-06-18 09:17:25 -07:00
2016-08-29 08:14:45 -07:00
2016-08-29 08:14:45 -07:00
2017-01-10 13:31:59 -08:00
2017-01-10 13:31:59 -08:00
2017-02-15 11:39:48 -08:00
2017-02-15 11:39:48 -08:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2017-04-03 08:08:27 -07:00
2008-03-16 22:26:23 +00:00
2008-03-16 22:26:23 +00:00
2008-03-16 22:26:23 +00:00
2008-03-16 22:26:23 +00:00
2015-04-10 11:06:34 -07:00
2015-04-10 11:06:34 -07:00
2012-03-20 18:16:38 +00:00
2012-03-20 18:16:38 +00:00
2012-03-20 18:16:38 +00:00
2012-03-20 18:16:38 +00:00
2015-04-10 14:02:23 -07:00
2015-04-11 07:56:48 -07:00
2015-04-14 04:13:11 -07:00
2012-04-03 16:01:38 +00:00
2015-05-11 11:29:03 -07:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2017-01-10 10:58:51 -08:00
2016-08-19 09:16:30 +01:00
2016-06-08 12:01:50 -07:00
2016-08-19 09:16:30 +01:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-08-19 09:16:30 +01:00
2012-04-03 16:01:38 +00:00
2016-08-19 09:16:30 +01:00
2012-04-03 16:01:38 +00:00
2012-04-03 16:01:38 +00:00
2016-08-19 09:16:30 +01:00
2013-05-31 17:27:28 +00:00
2016-08-19 09:16:30 +01:00
2012-04-03 16:01:38 +00:00
2012-04-03 16:01:38 +00:00
2016-06-08 12:01:50 -07:00
2016-08-19 09:16:30 +01:00
2012-04-03 16:01:38 +00:00
2016-08-19 09:16:30 +01:00
2012-04-03 16:01:38 +00:00
2012-04-03 16:01:38 +00:00
2012-04-03 16:01:38 +00:00
2009-06-19 16:00:33 +00:00
2009-06-19 16:00:33 +00:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-08-19 09:16:30 +01:00
2012-04-03 16:01:38 +00:00
2016-08-19 09:16:30 +01:00
2012-04-03 16:01:38 +00:00
2008-12-18 22:47:32 +00:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-08-19 09:16:30 +01:00
2013-05-31 17:27:28 +00:00
2016-08-19 09:16:30 +01:00
2012-04-03 16:01:38 +00:00
2016-08-19 09:16:30 +01:00
2016-06-08 12:01:50 -07:00
2016-08-19 09:16:30 +01:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-08-19 09:16:30 +01:00
2013-05-31 17:27:28 +00:00
2016-08-19 09:16:30 +01:00
2012-04-03 16:01:38 +00:00
2012-04-03 16:01:38 +00:00
2009-08-02 23:55:49 +00:00
2009-08-02 23:55:49 +00:00
2012-04-03 16:01:38 +00:00
2011-04-08 16:14:49 +00:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-06-08 12:01:50 -07:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2016-02-26 09:39:24 -08:00
2009-04-28 12:46:10 +00:00
2011-07-27 20:58:14 +00:00
2009-04-28 12:46:10 +00:00