[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/27169] New: i386: Emit R_386_PLT32 instead of R_386_PC32 for `c
From: |
i at maskray dot me |
Subject: |
[Bug gas/27169] New: i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo` |
Date: |
Sun, 10 Jan 2021 00:54:00 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=27169
Bug ID: 27169
Summary: i386: Emit R_386_PLT32 instead of R_386_PC32 for
`call/jmp foo`
Product: binutils
Version: unspecified
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: i at maskray dot me
Target Milestone: ---
gcc i386 -fno-pic emits `call/jmp foo`, which produces an R_386_PC32
relocation, which is indistinguishable from an address taken operation. If the
symbol turns out to be external, the linker has to employ a tricky called
"canonical PLT entry" (st_shndx=0, st_value!=0), which is similar to a copy
relocation.
If a shared object is linked with -Bsymbolic or --dynamic-list and defines a
function symbol which needs to be interposed by a canonical PLT entry, the
linker could error (the address of the symbol may be different in the shared
object and in the executable).
i386 needs a change similar to
https://sourceware.org/bugzilla/show_bug.cgi?id=22791
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug gas/27169] New: i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo`,
i at maskray dot me <=
- [Bug gas/27169] i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo`, i at maskray dot me, 2021/01/09
- [Bug gas/27169] i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo`, hjl.tools at gmail dot com, 2021/01/10
- [Bug gas/27169] i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo`, i at maskray dot me, 2021/01/10
- [Bug gas/27169] i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo`, hjl.tools at gmail dot com, 2021/01/10
- [Bug gas/27169] i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo`, i at maskray dot me, 2021/01/10
- [Bug gas/27169] i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo`, i at maskray dot me, 2021/01/10
- [Bug gas/27169] i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo`, hjl.tools at gmail dot com, 2021/01/10
- [Bug gas/27169] i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo`, i at maskray dot me, 2021/01/10
- [Bug gas/27169] i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo`, hjl.tools at gmail dot com, 2021/01/10
- [Bug gas/27169] i386: Emit R_386_PLT32 instead of R_386_PC32 for `call/jmp foo`, hjl.tools at gmail dot com, 2021/01/12