[PATCH] x86: Restore PC16 relocation overflow check

H.J. Lu hjl.tools@gmail.com
Fri May 28 11:40:51 GMT 2021


On Thu, May 27, 2021 at 11:48 PM Jan Beulich <jbeulich@suse.com> wrote:
>
> On 27.05.2021 19:38, H.J. Lu wrote:
> > The x86-64 psABI has
> >
> > ---
> > A program or object file using R_X86_64_8, R_X86_64_16, R_X86_64_PC16
> > or R_X86_64_PC8 relocations is not conformant to this ABI, these
> > relocations are only added for documentation purposes.
> > ---
> >
> > Since x86 PC16 relocations were intended for 16-bit programs in an ELF32
> > or ELF64 container, PC16 relocation should wrap-around in 16-bit address
> > space.
>
> This, to me at least, does not follow from the ABI wording. Or else
> the same would apply to PC8.

Since x86 doesn't support 8-bit mode, PC8 is different from PC16.

> >  Revert
> >
> > commit a7664973b24a242cd9ea17deb5eaf503065fc0bd
> > Author: Jan Beulich <jbeulich@suse.com>
> > Date:   Mon Apr 26 10:41:35 2021 +0200
> >
> >     x86: correct overflow checking for 16-bit PC-relative relocs
>
> I disagree with this revert, at least as long as there's no clear
> plan for an alternative. As long as PC8 and PC16 aren't specifically
> called out as _intentionally_ having different behavior, their

PC16 is different and used for 16-bit programs.

> behavior ought to match. I do realize that my opinion in such matters
> counts next to nothing, but then - at the very least - the test cases
> from this commit should be left in place and converted to XFAILs, to
> make obvious that there is something wrong.

I will leave them XFAIL.

> > and
> >
> > commit 50c95a739c91ae70cf8481936611aa1f5397a384
> > Author: H.J. Lu <hjl.tools@gmail.com>
> > Date:   Wed May 26 12:13:13 2021 -0700
> >
> >     x86: Propery check PC16 reloc overflow in 16-bit mode instructions
> >
> > while keeping PR ld/27905 tests for PC16 relocation in 16-bit programs.
>
> Interestingly you keep this commit's test cases.
>

This is to make sure that we don't break 16-bit programs.

-- 
H.J.


More information about the Binutils mailing list