ld: Add --warn-textrel and obsolete --warn-shared-textrel
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 27 May 2020 11:53:54 +0000 (04:53 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 27 May 2020 11:54:10 +0000 (04:54 -0700)
commita6dbf402de65fe66f4ec99b56527dfd00d077cb6
treea264f6b6544f748f3d7dea562ee44cb47a8d9dd1
parent25e1eca8faf1c29d28e57b37d6b5e3810b7b870b
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.
13 files changed:
bfd/ChangeLog
bfd/elflink.c
bfd/elfxx-x86.c
include/ChangeLog
include/bfdlink.h
ld/ChangeLog
ld/NEWS
ld/emultempl/elf.em
ld/ld.texi
ld/ldlex.h
ld/lexsup.c
ld/testsuite/ld-elf/pr19539.d
ld/testsuite/ld-i386/warn1.d