From a6dbf402de65fe66f4ec99b56527dfd00d077cb6 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 27 May 2020 04:53:54 -0700 Subject: ld: Add --warn-textrel and obsolete --warn-shared-textrel --warn-shared-textrel and -z text apply to both shared object and PIE. Add --warn-textrel and obsolete --warn-shared-textrel. Consolidate --warn-textrel and -z text/notext/textoff implementation. bfd/ PR ld/22909 * elflink.c (bfd_elf_final_link): Use bfd_link_textrel_check. Check bfd_link_dll when issue a DT_TEXTREL warning. * elfxx-x86.c (maybe_set_textrel): Likewise. (_bfd_x86_elf_size_dynamic_sections): Likewise. include/ PR ld/22909 * bfdlink.h (textrel_check_method): New enum. (bfd_link_textrel_check): New. (bfd_link_info): Replace warn_shared_textrel and error_textrel with textrel_check. ld/ PR ld/22909 * NEWS: Mention --warn-textrel. * ld.texi: Update -z text/notext/textoff. Add --warn-textrel. Remove --warn-shared-textrel. * ldlex.h (option_values): Rename OPTION_WARN_SHARED_TEXTREL to OPTION_WARN_TEXTREL. * lexsup.c (ld_options): Add --warn-textrel. Obsolete --warn-shared-textrel. (parse_args): Updated. (elf_shlib_list_options): Check link_info.textrel_check. * emultempl/elf.em: Updated. * testsuite/ld-elf/pr19539.d: Replace -z notext with --warn-textrel. Expect a warning. * testsuite/ld-i386/warn1.d: Update expected warning. --- ld/ChangeLog | 17 +++++++++++++++++ ld/NEWS | 3 +++ ld/emultempl/elf.em | 6 +++--- ld/ld.texi | 13 +++++++------ ld/ldlex.h | 2 +- ld/lexsup.c | 36 ++++++++++++++++++++++++++---------- ld/testsuite/ld-elf/pr19539.d | 3 ++- ld/testsuite/ld-i386/warn1.d | 2 +- 8 files changed, 60 insertions(+), 22 deletions(-) (limited to 'ld') diff --git a/ld/ChangeLog b/ld/ChangeLog index f0d6c26..3fd9b74 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,20 @@ +2020-05-27 H.J. Lu + + PR ld/22909 + * NEWS: Mention --warn-textrel. + * ld.texi: Update -z text/notext/textoff. Add --warn-textrel. + Remove --warn-shared-textrel. + * ldlex.h (option_values): Rename OPTION_WARN_SHARED_TEXTREL to + OPTION_WARN_TEXTREL. + * lexsup.c (ld_options): Add --warn-textrel. Obsolete + --warn-shared-textrel. + (parse_args): Updated. + (elf_shlib_list_options): Check link_info.textrel_check. + * emultempl/elf.em: Updated. + * testsuite/ld-elf/pr19539.d: Replace -z notext with + --warn-textrel. Expect a warning. + * testsuite/ld-i386/warn1.d: Update expected warning. + 2020-05-26 H.J. Lu * testsuite/ld-ifunc/ifunc-23a-x86.d: Skip *-*-lynxos *-*-nto*. diff --git a/ld/NEWS b/ld/NEWS index 9f5bbe5..0aaa13d 100644 --- a/ld/NEWS +++ b/ld/NEWS @@ -1,5 +1,8 @@ -*- text -*- +* Add a command-line option for ELF linker, --warn-textrel, to warn that + DT_TEXTREL is set in a position-independent executable or shared object. + * Add command-line options --enable-non-contiguous-regions and --enable-non-contiguous-regions-warnings. diff --git a/ld/emultempl/elf.em b/ld/emultempl/elf.em index 4fd6fdf..c4979eb 100644 --- a/ld/emultempl/elf.em +++ b/ld/emultempl/elf.em @@ -803,11 +803,11 @@ fragment <