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

            Bug ID: 32991
           Summary: "pushl main@GOT(%ebx)" is mishandled
           Product: binutils
           Version: 2.42
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: hjl.tools at gmail dot com
  Target Milestone: ---
            Target: i386

sysdeps/i386/start.S has

# ifdef SHARED
        pushl main@GOT(%ebx)
# else

linker relaxed it to

 22c:   e9 cf ff ff ff          jmp    200 <main>
 231:   90                      nop

This bug is fixed on master branch by

commit 11c2852449825a5f486f63bc40aabed56b7c04c1
Author: Jan Beulich <jbeul...@suse.com>
Date:   Fri Feb 21 10:24:50 2025 +0100

    x86: widen @got{,pcrel} support to PUSH and APX IMUL

    With us doing the transformation to an immediate operand for MOV and
    various ALU insns, there's little reason to then not support the same
    conversion for the other two insns which have respective immediate
    operand forms. Unfortunately for IMUL (due to the 0F opcode prefix)
    there's no suitable relocation, so the pre-APX forms cannot be marked
    for relaxation in the assembler.

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

Reply via email to