elf: Pass need_layout to _bfd_elf_map_sections_to_segments
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 6 Jan 2022 16:45:16 +0000 (08:45 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 12 Jan 2022 13:15:18 +0000 (05:15 -0800)
commite2cbf4df83fe57892a6aaedf737b84baa6321fa7
tree900d45cb8e5c64d097999b4532be7d38753c645e
parentfc07cf22c679002bb57e9259eca5dfd6891eb962
elf: Pass need_layout to _bfd_elf_map_sections_to_segments

On some targets, the DT_RELR section size can be computed only after all
symbols addresses can be determined.  Update ldelf_map_segments to pass
need_layout to _bfd_elf_map_sections_to_segments which will size DT_RELR
section and set need_layout to true if the DT_RELR section size is changed.

bfd/

* elf-bfd.h (_bfd_elf_map_sections_to_segments): Add a bool
pointer argument.
* elf.c (_bfd_elf_map_sections_to_segments): Add a bool pointer
argument to indicate if section layout needs update.
(assign_file_positions_for_load_sections): Pass NULL to
_bfd_elf_map_sections_to_segments.
* elflink.c (_bfd_elf_strip_zero_sized_dynamic_sections): Pass
NULL to _bfd_elf_map_sections_to_segments.

ld/

* ldelfgen.c (ldelf_map_segments): Pass &need_layout to
_bfd_elf_map_sections_to_segments.
bfd/elf-bfd.h
bfd/elf.c
bfd/elflink.c
ld/ldelfgen.c