ld: change --enable-new-dtags to only generate new dtags

The "new" dtags options have been around for 14+ years, so there
shouldn't be a need to generate both new & old tags anymore.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Mike Frysinger 2013-01-18 17:43:58 +00:00
parent 8ce3d284cb
commit b1b00fcc61
7 changed files with 29 additions and 11 deletions

View File

@ -1,3 +1,9 @@
2013-01-18 Mike Frysinger <vapier@gentoo.org>
* elflink.c (bfd_elf_size_dynamic_sections): Only add DT_RPATH
when new_dtags is false. Only add DT_RUNPATH when new_dtags is
true.
2013-01-17 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_check_relocs): Count size relocation as

View File

@ -5730,19 +5730,16 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
if (rpath != NULL)
{
bfd_size_type indx;
bfd_vma tag;
indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr, rpath,
TRUE);
if (indx == (bfd_size_type) -1
|| !_bfd_elf_add_dynamic_entry (info, DT_RPATH, indx))
if (indx == (bfd_size_type) -1)
return FALSE;
if (info->new_dtags)
{
_bfd_elf_strtab_addref (elf_hash_table (info)->dynstr, indx);
if (!_bfd_elf_add_dynamic_entry (info, DT_RUNPATH, indx))
return FALSE;
}
tag = info->new_dtags ? DT_RUNPATH : DT_RPATH;
if (!_bfd_elf_add_dynamic_entry (info, tag, indx))
return FALSE;
}
if (filter_shlib != NULL)

View File

@ -1,3 +1,9 @@
2013-01-18 Mike Frysinger <vapier@gentoo.org>
* layout.cc (Layout::finish_dynamic_section): Only add DT_RPATH
when enable_new_dtags is false. Only add DT_RUNPATH when
enable_new_dtags is true.
2013-01-17 Serge Pavlov <serge.v.pavlov@gmail.com>
* powerpc.cc (Stub_table::find_plt_call_entry): Make types

View File

@ -4647,8 +4647,9 @@ Layout::finish_dynamic_section(const Input_objects* input_objects,
}
}
odyn->add_string(elfcpp::DT_RPATH, rpath_val);
if (parameters->options().enable_new_dtags())
if (!parameters->options().enable_new_dtags())
odyn->add_string(elfcpp::DT_RPATH, rpath_val);
else
odyn->add_string(elfcpp::DT_RUNPATH, rpath_val);
}

View File

@ -1,3 +1,8 @@
2013-01-18 Mike Frysinger <vapier@gentoo.org>
* NEWS: Mention change in behavior with --enable-new-dtags.
* ld.texinfo (Options): Clarify --enable-new-dtags behavior.
2013-01-14 Leif Ekblad <leif@rdos.net>
Alan Modra <amodra@gmail.com>

View File

@ -2,6 +2,8 @@
* Add support for the Imagination Technologies Meta processor.
* --enable-new-dtags no longer generates old dtags in addition to new dtags.
Changes in 2.23:
* Enable compressed debug section feature for x86/x86_64 pe-coff.

View File

@ -2112,7 +2112,8 @@ if linker generated unwind info is supported.
@itemx --disable-new-dtags
This linker can create the new dynamic tags in ELF. But the older ELF
systems may not understand them. If you specify
@option{--enable-new-dtags}, the dynamic tags will be created as needed.
@option{--enable-new-dtags}, the new dynamic tags will be created as needed
and older dynamic tags will be omitted.
If you specify @option{--disable-new-dtags}, no new dynamic tags will be
created. By default, the new dynamic tags are not created. Note that
those options are only available for ELF systems.