From: H.J. Lu Date: Mon, 3 Feb 2025 22:16:28 +0000 (+0800) Subject: x86: Use hehdr_start for __ehdr_start X-Git-Tag: binutils-2_45~1666 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=15014e9b31adca41bc1bd27ad6b2031d8c51f79e;p=thirdparty%2Fbinutils-gdb.git 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 --- 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)) {