bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/22589] aarch64: adrp relocation gets filled with non-zero addres


From: nickc at redhat dot com
Subject: [Bug ld/22589] aarch64: adrp relocation gets filled with non-zero address for undefined weak symbol
Date: Fri, 15 Dec 2017 18:33:44 +0000

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

Nick Clifton <nickc at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2017-12-15
                 CC|                            |nickc at redhat dot com
     Ever confirmed|0                           |1

--- Comment #1 from Nick Clifton <nickc at redhat dot com> ---
Hi Julius,

I do not believe that this is a bug:

>   400078:       90000000        adrp    x0, 400000 <_start-0x78> (File

> This breaks any code trying to test x0 for zero to see if the weak symbol is 
> defined.

Actually the offset stored in the instruction *is* zero.  Look at the
binary value of the instruction (0x90000000).  But since adrp loads a (pafe
aligned) pc-relative value into its destination register, x0 will never be 
set to zero unless the adrp instruction is at address in the first 4K of 
memory.

Hence the linker has linked the code correctly and the disassembler is
helpfully showing you that value that *will* be loaded into the x0 register.

Does this make sense to you ?

Cheers
  Nick

-- 
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]