[2/2] LoongArch: Fix h->got union phase confusion for DT_RELR

Message ID 20261001151257.3242569-6-jremus@linux.ibm.com
State New
Headers
Series ld: Fix h->got union phase confusion for DT_RELR |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm success Build passed
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 success Build passed
linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 success Test passed
linaro-tcwg-bot/tcwg_binutils_check--master-arm success Test passed

Commit Message

Jens Remus Oct. 1, 2026, 3:13 p.m. UTC
  record_relr_dyn_got_relocs is called after allocate_dynrelocs has
repurposed h->got from refcount to offset semantics.  This goes
along with a change in indication for no GOT entry allocated from
h->got.refcount <= 0 to h->got.offset == (bfd_vma)-1.

bfd/
	* elfnn-loongarch.c (record_relr_dyn_got_relocs): Fix h->got
	union phase confusion.

Signed-off-by: Jens Remus <jremus@linux.ibm.com>
---
 bfd/elfnn-loongarch.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Patch

diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c
index 1a2b3b0399e3..6293efc48edd 100644
--- a/bfd/elfnn-loongarch.c
+++ b/bfd/elfnn-loongarch.c
@@ -2288,7 +2288,7 @@  record_relr_dyn_got_relocs (struct elf_link_hash_entry *h, void *inf)
     return true;
   if (h->type == STT_GNU_IFUNC && h->def_regular)
     return true;
-  if (h->got.refcount <= 0)
+  if (h->got.offset == (bfd_vma) -1)
     return true;
   if (loongarch_elf_hash_entry (h)->tls_type
       & (GOT_TLS_GD | GOT_TLS_IE | GOT_TLS_GDESC))