aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorVivek Das Mohapatra <vivek@collabora.com>2020-12-14 17:25:51 +0000
committerAlan Modra <amodra@gmail.com>2020-12-15 18:44:56 +1030
commit6a0a0dd0cc43765d8e5e277aeaaf169a863f2315 (patch)
tree776cc1a93737ca13d34c6f6c0c906134c7ddd46f /bfd
parentee0688c2339deba4bca7d57a96001183aa06a765 (diff)
downloadgdb-6a0a0dd0cc43765d8e5e277aeaaf169a863f2315.zip
gdb-6a0a0dd0cc43765d8e5e277aeaaf169a863f2315.tar.gz
gdb-6a0a0dd0cc43765d8e5e277aeaaf169a863f2315.tar.bz2
Handle -z unique/-z nounique in ld
Add (or suppress) a DT_GNU_FLAGS_1 dynamic section with a bit flag value of DF_GNU_1_UNIQUE. bfd/ * elflink.c (bfd_elf_size_dynamic_sections): Call _bfd_elf_add_dynamic_entry to add a DT_GNU_FLAGS_1 section. include/ * bfdlink.h (struct bfd_link_info): New field gnu_flags_1. ld/ * emultempl/elf.em (gld${EMULATION_NAME}_handle_option): Parse -z unique / -z nounique options.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elflink.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index e3a5c8a..11b901a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2020-12-15 Vivek Das Mohapatra <vivek@collabora.com>
+
+ * elflink.c (bfd_elf_size_dynamic_sections): Call
+ _bfd_elf_add_dynamic_entry to add a DT_GNU_FLAGS_1 section.
+
2020-12-14 Alan Modra <amodra@gmail.com>
* elf-bfd.h (struct elf_obj_tdata): Add being_created.
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 29b46f1..37af3ef 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -7178,7 +7178,10 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
|| !_bfd_elf_add_dynamic_entry (info, DT_SYMTAB, 0)
|| !_bfd_elf_add_dynamic_entry (info, DT_STRSZ, strsize)
|| !_bfd_elf_add_dynamic_entry (info, DT_SYMENT,
- bed->s->sizeof_sym))
+ bed->s->sizeof_sym)
+ || (info->gnu_flags_1
+ && !_bfd_elf_add_dynamic_entry (info, DT_GNU_FLAGS_1,
+ info->gnu_flags_1)))
return FALSE;
}
}