[Top][All Lists]

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

[Bug gas/23997] PLT32 relocation is off by 4

From: hjl.tools at gmail dot com
Subject: [Bug gas/23997] PLT32 relocation is off by 4
Date: Tue, 18 Dec 2018 02:17:44 +0000


H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2018-12-18
                 CC|                            |hjl.tools at gmail dot com
     Ever confirmed|0                           |1

--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Ruslan Nikolaev from comment #0)
> The bug was initially filed at
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88524 (see the discussion
> there) but turns out to be an assembler problem.
> Consider the following example for some -fpic -mcmodel=small compiled code.
> There is an external function func() for which we store a relative reference
> to the corresponding @plt stub in a 32-bit variable.
> The following seems to generate correct offsets (@plt is already relative, so
> we can probably specify it directly):
> void func(void);
> asm("a: .long address@hidden");
> extern int a;
> int geta()
> {
>         return a;
> }
> gcc -Wall -O2 -c -fpic test.c
> yields
> OFFSET           TYPE              VALUE 
> 0000000000000000 R_X86_64_PLT32    func
> 0000000000000013 R_X86_64_REX_GOTPCRELX  a-0x0000000000000004
> However, if we change asm("a: .long address@hidden") to asm("a: .long 
> address@hidden -
> .")
> the generated code is very weird and is off by 4:

@PLT is PC relative.  Why do you want to use "address@hidden - ."?

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]