Re: [PATCH] x86: Disallow ".long foo@PLT - .L4" for PLT32 relocation
"H.J. Lu" <[email protected]> Fri, 31 Jul 2026 16:55:53 +0800
| Newsgroups | gmane.comp.gnu.binutils |
|---|---|
| Message-ID | <CAMe9rOoqL7FFJYnuRxRRE3it1qkAezw8u8-bLN4wqZowcWuwYQ@mail.gmail.com> |
On Fri, Jul 31, 2026 at 4:26=E2=80=AFPM Jan Beulich <[email protected]> wro= te: > > On 31.07.2026 01:09, H.J. Lu wrote: > > Disallow ".long foo@PLT - .L4" and only allow ".slong foo@PLT - .L4" fo= r > > 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. --=20 H.J.