diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2025-02-04 06:16:28 +0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2025-02-06 12:15:15 +0800 |
commit | 15014e9b31adca41bc1bd27ad6b2031d8c51f79e (patch) | |
tree | 98ba009c2951ac323e3c77cce045bce1a98336df | |
parent | 023dd0649ebcb7f82ba13aead02ed9200b6b5372 (diff) | |
download | binutils-15014e9b31adca41bc1bd27ad6b2031d8c51f79e.zip binutils-15014e9b31adca41bc1bd27ad6b2031d8c51f79e.tar.gz binutils-15014e9b31adca41bc1bd27ad6b2031d8c51f79e.tar.bz2 |
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>
-rw-r--r-- | bfd/elfxx-x86.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c index 832a549..f4bf58e 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)) { |