diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2000-07-20 03:21:59 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2000-07-20 03:21:59 +0000 |
commit | d6cf28795dd28a7c5d34a58a015b7b04a932bdc7 (patch) | |
tree | 193dd1cb5d85e4ada4baae0a1498dc96af840746 /bfd/elflink.h | |
parent | 49e56c493d447e01ddb915b2612b5542ec6af044 (diff) | |
download | fsf-binutils-gdb-d6cf28795dd28a7c5d34a58a015b7b04a932bdc7.zip fsf-binutils-gdb-d6cf28795dd28a7c5d34a58a015b7b04a932bdc7.tar.gz fsf-binutils-gdb-d6cf28795dd28a7c5d34a58a015b7b04a932bdc7.tar.bz2 |
2000-07-19 H.J. Lu <hjl@gnu.org>
* elf32-arm.h (elf32_arm_size_dynamic_sections): Also set
DF_TEXTREL if DT_TEXTREL is set.
* elf32-i370.c (i370_elf_size_dynamic_sections): Likewise.
* elf32-i386.c (elf_i386_size_dynamic_sections): Likewise.
* elf32-m68k.c (elf_m68k_size_dynamic_sections): Likewise.
* elf32-mips.c (_bfd_mips_elf_size_dynamic_sections): Likewise.
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
* elf32-sparc.c (elf32_sparc_size_dynamic_sections): Likewise.
* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Likewise.
* elf64-hppa.c (elf64_hppa_size_dynamic_sections): Likewise.
* elf64-ia64.c (elf64_ia64_size_dynamic_sections): Likewise.
* elf64-sparc.c (sparc64_elf_size_dynamic_sections): Likewise.
* bfd/elflink.h (NAME(bfd_elf,size_dynamic_sections)): Also
set DF_SYMBOLIC for symbolic link. Also set DT_RUNPATH if
DT_RPATH is set.
Set the DT_FLAGS and DT_FLAGS_1 entries if necessary.
Diffstat (limited to 'bfd/elflink.h')
-rw-r--r-- | bfd/elflink.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/bfd/elflink.h b/bfd/elflink.h index 7fa35a9..1bf3668 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -2837,6 +2837,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath, { if (! elf_add_dynamic_entry (info, DT_SYMBOLIC, 0)) return false; + info->flags |= DF_SYMBOLIC; } if (rpath != NULL) @@ -2846,7 +2847,8 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath, indx = _bfd_stringtab_add (elf_hash_table (info)->dynstr, rpath, true, true); if (indx == (bfd_size_type) -1 - || ! elf_add_dynamic_entry (info, DT_RPATH, indx)) + || ! elf_add_dynamic_entry (info, DT_RPATH, indx) + || ! elf_add_dynamic_entry (info, DT_RUNPATH, indx)) return false; } @@ -3135,6 +3137,22 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath, elf_tdata (output_bfd)->cverdefs = cdefs; } + if (info->flags) + { + if (! elf_add_dynamic_entry (info, DT_FLAGS, info->flags)) + return false; + } + + if (info->flags_1) + { + if (! info->shared) + info->flags_1 &= ~ (DF_1_INITFIRST + | DF_1_NODELETE + | DF_1_NOOPEN); + if (! elf_add_dynamic_entry (info, DT_FLAGS_1, info->flags_1)) + return false; + } + /* Work out the size of the version reference section. */ s = bfd_get_section_by_name (dynobj, ".gnu.version_r"); |