[PATCH] x86: Disallow ".long foo@PLT - .L4" for PLT32 relocation
H.J. Lu
hjl.tools@gmail.com
Fri Jul 31 08:55:53 GMT 2026
On Fri, Jul 31, 2026 at 4:26 PM Jan Beulich <jbeulich@suse.com> wrote:
>
> On 31.07.2026 01:09, H.J. Lu wrote:
> > Disallow ".long foo@PLT - .L4" and only allow ".slong foo@PLT - .L4" for
> > PLT32 relocation.
>
> Why would you enforce this also for 32-bit, where the difference between
> .slong and .long is entirely benign? The existing cons_sign should be
> sufficient to achieve what's needed for 64-bit code.
>
I compared ".long foo@PLT - .L4":
.section .rodata
.p2align 2
.L4:
.long foo1@PLT - .L4
.long foo2@PLT - .L4
.long foo3@PLT - .L4
.long foo4@PLT - .L4
.long foo1@PLT - .L5
.long foo2@PLT - .L5
.long foo3@PLT - .L5
.long foo4@PLT - .L5
.L5:
vs ".slong foo@PLT - .L4":
.section .rodata
.p2align 2
.L4:
.slong foo1@PLT - .L4
.slong foo2@PLT - .L4
.slong foo3@PLT - .L4
.slong foo4@PLT - .L4
.slong foo1@PLT - .L5
.slong foo2@PLT - .L5
.slong foo3@PLT - .L5
.slong foo4@PLT - .L5
.L5:
in 64-bit. The output object files are identical. If we don't allow
".long foo@PLT - .L4" in 64-bit, we shouldn't allow it in 32-bit.
--
H.J.
More information about the Binutils
mailing list