Re: [PATCH v5 06/16] x86/relocs: Handle R_X86_64_REX_GOTPCRELX relocations

From: Uros Bizjak
Date: Thu Nov 07 2024 - 06:31:53 EST


On Thu, Nov 7, 2024 at 12:27 PM Brian Gerst <brgerst@xxxxxxxxx> wrote:
>
> On Thu, Nov 7, 2024 at 6:20 AM Uros Bizjak <ubizjak@xxxxxxxxx> wrote:
> >
> > On Tue, Nov 5, 2024 at 4:58 PM Brian Gerst <brgerst@xxxxxxxxx> wrote:
> > >
> > > Clang may produce R_X86_64_REX_GOTPCRELX relocations when redefining the
> > > stack protector location. Treat them as another type of PC-relative
> > > relocation.
> > >
> > > Signed-off-by: Brian Gerst <brgerst@xxxxxxxxx>
> > > ---
> > > arch/x86/tools/relocs.c | 7 +++++++
> > > 1 file changed, 7 insertions(+)
> > >
> > > diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
> > > index 6afe2e5e9102..7d7fc7f0a250 100644
> > > --- a/arch/x86/tools/relocs.c
> > > +++ b/arch/x86/tools/relocs.c
> > > @@ -32,6 +32,11 @@ static struct relocs relocs32;
> > > static struct relocs relocs32neg;
> > > static struct relocs relocs64;
> > > # define FMT PRIu64
> > > +
> > > +#ifndef R_X86_64_REX_GOTPCRELX
> > > +#define R_X86_64_REX_GOTPCRELX 42
> > > +#endif
> >
> > The next patch (7/16) introduces the above definition to
> > arch/x86/include/asm/elf.h. If you swap patches 6 and 7 in the series,
> > you won't have to introduce the above conditional definition.
>
> This is a userspace tool, so it's using the build host libc headers.

Ah, indeed.

Thanks,
Uros.