[PATCH] x86: Remove duplicated I386_PCREL_TYPE_P/X86_64_PCREL_TYPE_P
H.J. Lu
hjl.tools@gmail.com
Thu Jan 5 16:55:55 GMT 2023
On Thu, Jan 5, 2023 at 8:52 AM Jan Beulich <jbeulich@suse.com> wrote:
>
> On 05.01.2023 17:50, H.J. Lu wrote:
> > On Wed, Jan 4, 2023 at 11:42 PM Jan Beulich <jbeulich@suse.com> wrote:
> >>
> >> On 04.01.2023 20:14, H.J. Lu via Binutils wrote:
> >>> I386_PCREL_TYPE_P and X86_64_PCREL_TYPE_P are defined twice. Remove
> >>> the duplications.
> >>
> >> I recall noticing this as well, quite some time back, but I didn't feel
> >> like touching it because I was puzzled by ...
> >>
> >>> --- a/bfd/elfxx-x86.h
> >>> +++ b/bfd/elfxx-x86.h
> >>> @@ -97,13 +97,6 @@
> >>> #define PLT_FDE_START_OFFSET 4 + PLT_CIE_LENGTH + 8
> >>> #define PLT_FDE_LEN_OFFSET 4 + PLT_CIE_LENGTH + 12
> >>>
> >>> -#define I386_PCREL_TYPE_P(TYPE) ((TYPE) == R_386_PC32)
> >>
> >> ... this not including PC8 and PC16 when ...
> >
> > This is I386_PCREL_TYPE_P.
> >
> >>> -#define X86_64_PCREL_TYPE_P(TYPE) \
> >>> - ((TYPE) == R_X86_64_PC8 \
> >>> - || (TYPE) == R_X86_64_PC16 \
> >>> - || (TYPE) == R_X86_64_PC32 \
> >>> - || (TYPE) == R_X86_64_PC64)
> >>
> >> ... this does.
> >
> > This is X86_64_PCREL_TYPE_P, not I386_PCREL_TYPE_P.
> >
> >> Jan
> >
> > The current ones have
> >
> > #define X86_64_PCREL_TYPE_P(TYPE) \
> > ((TYPE) == R_X86_64_PC8 \
> > || (TYPE) == R_X86_64_PC16 \
> > || (TYPE) == R_X86_64_PC32 \
> > || (TYPE) == R_X86_64_PC64)
> > #define I386_PCREL_TYPE_P(TYPE) ((TYPE) == R_386_PC32)
> >
> > and the ones I removed are
> >
> > -#define I386_PCREL_TYPE_P(TYPE) ((TYPE) == R_386_PC32)
> > -#define X86_64_PCREL_TYPE_P(TYPE) \
> > - ((TYPE) == R_X86_64_PC8 \
> > - || (TYPE) == R_X86_64_PC16 \
> > - || (TYPE) == R_X86_64_PC32 \
> > - || (TYPE) == R_X86_64_PC64)
> >
> > They are identical.
>
> That wasn't the question, though. I really did ask about the 32-bit vs
> 64-bit difference, which looks suspect to me.
>
R_386_PC8 and R_386_PC16 were never handled by linker.
--
H.J.
More information about the Binutils
mailing list