bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/19188] [2.26 Regression] binutils assertion fail ../../bfd/elfnn


From: jiwang at gcc dot gnu.org
Subject: [Bug ld/19188] [2.26 Regression] binutils assertion fail ../../bfd/elfnn-aarch64.c:4631
Date: Fri, 30 Oct 2015 14:45:45 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=19188

--- Comment #3 from Jiong Wang <jiwang at gcc dot gnu.org> ---
caused by we always call tpoff_base when we need to do tls relaxation which is
wrong.  tpoff_base shouldn't be called if there is
no tls object defined in the input section. it's only valid when we are
doing X -> TLS local executable relaxation, not for any others.

Normally elfNN_aarch64_tls_relax don't need relocation value, as it just
need to change the relocation type to the relaxed types then set the
return type to bfd_reloc_continue thus the next iteration of relocate
section should apply the relaxed relocation properly, but for
the large model IE-> LE, BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1 it's
an exception, as the original IE model contains only two relocation
entries, while the relaxed LE model for large requires three entries, we
can't play the type change trick anymore, we can only resolve the
relocation just inside elfNN_aarch64_tls_relax, and set the return type
to bfd_reloc_ok, thus we need the extra relocation value here.

We need to fix the code to call tpoff_base only when needed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]