[binutils-gdb] x86: Use hehdr_start for __ehdr_start
H.J. Lu
hjl@sourceware.org
Thu Feb 6 04:17:29 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=15014e9b31adca41bc1bd27ad6b2031d8c51f79e
commit 15014e9b31adca41bc1bd27ad6b2031d8c51f79e
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Feb 4 06:16:28 2025 +0800
x86: Use hehdr_start for __ehdr_start
Use hehdr_start for __ehdr_start instead of elf_link_hash_lookup.
* elfxx-x86.c (elf_x86_linker_defined): Use hehdr_start if name
is NULL.
(_bfd_x86_elf_link_check_relocs): Pass NULL as __ehdr_start to
elf_x86_linker_defined.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Diff:
---
bfd/elfxx-x86.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 832a5495eb1..f4bf58ec088 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -826,8 +826,12 @@ elf_x86_linker_defined (struct bfd_link_info *info, const char *name)
{
struct elf_link_hash_entry *h;
- h = elf_link_hash_lookup (elf_hash_table (info), name,
- false, false, false);
+ /* NULL indicates __ehdr_start. */
+ if (name == NULL)
+ h = elf_hash_table (info)->hehdr_start;
+ else
+ h = elf_link_hash_lookup (elf_hash_table (info), name,
+ false, false, false);
if (h == NULL)
return;
@@ -894,9 +898,10 @@ _bfd_x86_elf_link_check_relocs (bfd *abfd, struct bfd_link_info *info)
}
}
- /* "__ehdr_start" will be defined by linker as a hidden symbol
- later if it is referenced and not defined. */
- elf_x86_linker_defined (info, "__ehdr_start");
+ /* Pass NULL for __ehdr_start which will be defined by
+ linker as a hidden symbol later if it is referenced and
+ not defined. */
+ elf_x86_linker_defined (info, NULL);
if (bfd_link_executable (info))
{
More information about the Binutils-cvs
mailing list