[binutils-gdb] Re: alpha: Properly handle local weak undefined symbols
Alan Modra
amodra@sourceware.org
Wed May 27 12:53:09 GMT 2026
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5dd77fc95236da16036d9cbbe0e6f53f0ad7ac3b
commit 5dd77fc95236da16036d9cbbe0e6f53f0ad7ac3b
Author: Alan Modra <amodra@gmail.com>
Date: Wed May 27 21:37:31 2026 +0930
Re: alpha: Properly handle local weak undefined symbols
asan complains "runtime error: member access within null pointer"
for &h->root with NULL h, which is annoying since &h->root is the
same address as h, causing
alpha-linux-gnu +FAIL: TLS -fpic -shared
alpha-linux-gnu +FAIL: TLS -fpic and -fno-pic exec
alpha-linux-gnu +FAIL: TLS -fpic and -fno-pic exec -relax
* elf64-alpha.c (elf64_alpha_relocate_section): Fix asan
complaint.
Diff:
---
bfd/elf64-alpha.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 594bfe9a80e..8cc70610c59 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -4648,7 +4648,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
input_bfd, h->root.root.root.string);
ret_val = false;
}
- else if (elf_link_local_undefweak_p (&h->root, info))
+ else if (elf_link_local_undefweak_p (h ? &h->root : NULL, info))
/* NB: The local undefined TLS symbol address isn't usable
since it isn't mapped to any TLS storage. Set it to 0
to avoid relocation overflow. */
@@ -4676,7 +4676,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
value = 0;
else
{
- if (elf_link_local_undefweak_p (&h->root, info))
+ if (elf_link_local_undefweak_p (h ? &h->root : NULL, info))
/* NB: The local undefined TLS symbol address isn't
usable since it isn't mapped to any TLS storage.
Set it to 0 to avoid relocation overflow. */
More information about the Binutils-cvs
mailing list