H.J. Lu 6a91be8666 ld: Initial DT_RELR support
Add a -z pack-relative-relocs option to enable DT_RELR and create a
relr.dyn section for DT_RELR.  DT_RELR is implemented with the linker
relaxation infrastructure, but it doesn't require the --relax option
enabled.  -z pack-relative-relocs implies -z combreloc.  -z nocombreloc
implies -z nopack-relative-relocs.

-z pack-relative-relocs is chosen over the similar option in lld,
--pack-dyn-relocs=relr, to implement a glibc binary lockout mechanism
with a special glibc version symbol, to avoid random crashes of DT_RELR
binaries with the existing glibc binaries.

bfd/

	* elf-bfd.h (elf_link_hash_table): Add srelrdyn.
	* elflink.c (_bfd_elf_link_create_dynamic_sections): Create a
	.relr.dyn section for DT_RELR.

include/

	* bfdlink.h (bfd_link_info): Add enable_dt_relr.

ld/

	* News: Mention -z pack-relative-relocs and
	-z nopack-relative-relocs.
	* ld.texi: Document -z pack-relative-relocs and
	-z nopack-relative-relocs.
	* ldelf.c (ldelf_after_parse): Disable DT_RELR if not building
	PIE nor shared library.  Add 3 spare dynamic tags for DT_RELR,
	DT_RELRSZ and DT_RELRENT.
	* ldlang.c (lang_relax_sections): Also enable relaxation if
	DT_RELR is enabled.
	* emulparams/elf32_x86_64.sh: Source dt-relr.sh.
	* emulparams/elf_i386.sh: Likewise.
	* emulparams/elf_x86_64.sh: Likewise.
	* emulparams/dt-relr.sh: New file.
	* scripttempl/elf.sc: Support .relr.dyn.
2022-01-12 06:04:29 -08:00
..
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2017-10-12 23:30:43 +10:30
2018-10-13 20:33:23 +10:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2021-03-31 10:49:23 +10:30
2021-03-31 10:49:23 +10:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2022-01-12 06:04:29 -08:00
2021-03-31 10:49:23 +10:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2022-01-12 06:04:29 -08:00
2019-09-11 13:45:18 +09:30
2021-03-31 10:49:23 +10:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2021-03-31 10:49:23 +10:30
2021-10-24 21:36:32 +10:30
2021-10-24 21:36:32 +10:30
2021-03-31 10:49:23 +10:30
2021-03-31 10:49:23 +10:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2021-03-31 10:49:23 +10:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2021-10-24 21:36:32 +10:30
2021-10-24 21:36:32 +10:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2022-01-12 06:04:29 -08:00
2019-09-11 13:45:18 +09:30
2022-01-12 06:04:29 -08:00
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-05-30 01:01:42 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2021-03-31 10:49:23 +10:30
2019-09-11 13:45:18 +09:30
2021-03-31 10:49:23 +10:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2021-03-31 10:49:23 +10:30
2019-09-11 13:45:18 +09:30
2019-09-11 13:45:18 +09:30
2017-10-12 23:30:43 +10:30
2021-03-31 10:49:23 +10:30
2020-11-03 08:56:27 +00:00
2018-07-10 23:59:07 +09:30

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

The files in this directory are read by genscripts.sh as shell commands.
They set parameters for the emulations.

Copyright (C) 2012-2022 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.