Change the default characteristics of DLLs built by the linker to more secure settings.
authorJeremy Drake <sourceware-bugzilla@jdrake.com>
Thu, 27 Aug 2020 11:58:27 +0000 (12:58 +0100)
committerNick Clifton <nickc@redhat.com>
Thu, 27 Aug 2020 11:58:27 +0000 (12:58 +0100)
commit514b4e191d5f46de8e142fe216e677a35fa9c4bb
treef4173c8f49e5987adc1cd1dd4c515c9493bbe268
parentf2e5245f4169c2a1849ba998872e245c1b303950
Change the default characteristics of DLLs built by the linker to more secure settings.

PR 19011
* emultempl/pe.em (DEFAULT_DLL_CHARACTERISTICS): Define.
(pe_dll_characteristics): Initialise to DEFAULT_DLL_CHARACTERISTICS.
(add_options): Add options to disable DLL characteristics.
(list_options): List the new options.
(handle_options): Handle the new options.
* emultempl/pep.em: Similar changes to above.
(NT_EXE_IMAGE_BASE): Default to an address above 4G.
(NT_DLL_IMAGE_BASE, NT_DLL_AUTO_IMAGE_BASE,
(NT_DLL_AUTO_IMAGE_MASK): Likewise.
* ld.texi: Document the new options.
* pe-dll.c (pe_dll_enable_reloc_section): Change to default to
true.
(generate_reloc): Do nothing if there is no reloc section.
(pe_exe_fill_sections): Only assign the reloc section contents if
the section exists.
* testsuite/ld-pe/pe.exp: Add the --disable-reloc-section flag to
the .secrel32 tests.
* testsuite/ld-scripts/provide-8.d: Expect for fail on PE targets.
* NEWS: Mention the change in DLL generation.
ld/ChangeLog
ld/NEWS
ld/emultempl/pe.em
ld/emultempl/pep.em
ld/ld.texi
ld/pe-dll.c
ld/testsuite/ld-pe/pe.exp
ld/testsuite/ld-scripts/provide-8.d