Re: [PATCH v6 14/27] x86/percpu: Adapt percpu for PIE support

From: Thomas Garnier
Date: Mon Apr 08 2019 - 12:05:30 EST


On Fri, Feb 1, 2019 at 9:13 AM Thomas Garnier <thgarnie@xxxxxxxxxxxx> wrote:
>
> On Thu, Jan 31, 2019 at 6:31 PM Christopher Lameter <cl@xxxxxxxxx> wrote:
> >
> > On Thu, 31 Jan 2019, Thomas Garnier wrote:
> >
> > > The per-cpu symbols are in a section that is zero based to create
> > > offsets. The compiler doesn't see them as offsets but as relative
> > > symbol and try to relocate them. Given the distance between zero and
> > > the mapped kernel is much larger than the instruction offset range, it
> > > fails to do it.
> >
> > We switch that off in the linker. If that does not work with your
> > modifications then you need to figure out how to update the link
> > configuration.
> >
>
> It didn't work originally but I will revisit to see if I missed something.

I revisited and couldn't find a way to prevent relocations to the
percpu section. Without PIE, you can reference absolute address which
was convenient for percpu.

Christopher: Did you have something specific in mind?

I checked the following:
- Changing the FLAGS() on the PHDRS.
- using -z noreloc-overflow which actually doesn't seem to apply to
PC32 relocations.
- Look at all linker options and script format for anything around that.