Messages in this thread | | | From | Fangrui Song <> | Date | Thu, 21 Sep 2023 10:36:27 -0700 | Subject | Re: [PATCH] x86/speculation, objtool: Use absolute relocations for annotations |
| |
On Thu, Sep 21, 2023 at 10:19 AM Peter Zijlstra <peterz@infradead.org> wrote: > > On Thu, Sep 21, 2023 at 09:26:43AM -0700, Fangrui Song wrote: > > > I do not see why absolute things need 12 byte entries. > > We can freely use `.long .text.foo` even in ELFCLASS64 object files. > > There is no risk of overflow (the ultimate link .text.foo may have an > > address of 0xffffffff........) since the section will be discarded. > > And you're sure no toolchain is going to be clever and tell me that the > absolute relocation will want to be 8 bytes and does not fit in the 4 > bytes allotted? > Because clearly that is something some clever assembler is going to > complain about any day now.
Well, only if the clever assembler doesn't support 32-bit absolute relocation for a 64-bit architecture. I don't know such an architecture. In addition, as long as the architecture intends to support DWARF32, it has to support 32-bit absolute relocations for a 64-bit architecture.
Of course, I cannot predict new toolchains for new architectures from doing insensible thing, but DWARF32 support and other metadata section uses are pretty strong arguments for them to add a 32-bit absolute relocation type.
Note: some .discard.* sections before commit 1c0c1faf5692 ("objtool: Use relative pointers for annotations") used absolute relocations.
-- 宋方睿
| |