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.
This commit is contained in:
parent
ee0688c233
commit
6a0a0dd0cc
@ -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.
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
2020-12-15 Vivek Das Mohapatra <vivek@collabora.com>
|
||||
|
||||
* elf/common.h (DT_GNU_FLAGS_1, DF_GNU_1_UNIQUE): Define.
|
||||
* bfdlink.h (struct bfd_link_info): New field gnu_flags_1.
|
||||
|
||||
2020-12-11 Cary Coutant <ccoutant@gmail.com>
|
||||
|
||||
|
@ -655,6 +655,9 @@ struct bfd_link_info
|
||||
/* May be used to set DT_FLAGS_1 for ELF. */
|
||||
bfd_vma flags_1;
|
||||
|
||||
/* May be used to set DT_GNU_FLAGS_1 for ELF. */
|
||||
bfd_vma gnu_flags_1;
|
||||
|
||||
/* May be used to set ELF visibility for __start_* / __stop_. */
|
||||
unsigned int start_stop_visibility;
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2020-12-15 Vivek Das Mohapatra <vivek@collabora.com>
|
||||
|
||||
* emultempl/elf.em (gld${EMULATION_NAME}_handle_option):
|
||||
Parse -z unique / -z nounique options.
|
||||
|
||||
2020-12-14 Howard Chu <hyc@symas.com>
|
||||
|
||||
* libdep_plugin.c: New file: Processes archives that contain a
|
||||
|
@ -809,6 +809,10 @@ fragment <<EOF
|
||||
link_info.flags |= (bfd_vma) DF_ORIGIN;
|
||||
link_info.flags_1 |= (bfd_vma) DF_1_ORIGIN;
|
||||
}
|
||||
else if (strcmp (optarg, "unique") == 0)
|
||||
link_info.gnu_flags_1 |= (bfd_vma) DF_GNU_1_UNIQUE;
|
||||
else if (strcmp (optarg, "nounique") == 0)
|
||||
link_info.gnu_flags_1 &= ~(bfd_vma) DF_GNU_1_UNIQUE;
|
||||
else if (strcmp (optarg, "combreloc") == 0)
|
||||
link_info.combreloc = TRUE;
|
||||
else if (strcmp (optarg, "nocombreloc") == 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user