[PATCH] x86-64: Remove HAVE_LD_PIE_COPYRELOC

Uros Bizjak ubizjak@gmail.com
Tue Sep 21 16:16:15 GMT 2021


On Mon, Sep 20, 2021 at 8:20 PM Fāng-ruì Sòng via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> PING^5 https://gcc.gnu.org/pipermail/gcc-patches/2021-May/570139.html
>
> On Sat, Sep 4, 2021 at 12:11 PM Fāng-ruì Sòng <maskray@google.com> wrote:
> >
> > PING^4 https://gcc.gnu.org/pipermail/gcc-patches/2021-May/570139.html
> >
> > One major design goal of PIE was to avoid copy relocations.
> > The original patch for GCC 5 caused problems for many years.
> >
> > On Wed, Aug 18, 2021 at 11:54 PM Fāng-ruì Sòng <maskray@google.com> wrote:
> >>
> >> PING^3 https://gcc.gnu.org/pipermail/gcc-patches/2021-May/570139.html
> >>
> >> On Fri, Jun 4, 2021 at 3:04 PM Fāng-ruì Sòng <maskray@google.com> wrote:
> >> >
> >> > PING^2 https://gcc.gnu.org/pipermail/gcc-patches/2021-May/570139.html
> >> >
> >> > On Mon, May 24, 2021 at 9:43 AM Fāng-ruì Sòng <maskray@google.com> wrote:
> >> > >
> >> > > Ping https://gcc.gnu.org/pipermail/gcc-patches/2021-May/570139.html
> >> > >
> >> > > On Tue, May 11, 2021 at 8:29 PM Fangrui Song <maskray@google.com> wrote:
> >> > > >
> >> > > > This was introduced in 2014-12 to use local binding for external symbols
> >> > > > for -fPIE. Now that we have H.J. Lu's GOTPCRELX for years which mostly
> >> > > > nullify the benefit of HAVE_LD_PIE_COPYRELOC, HAVE_LD_PIE_COPYRELOC
> >> > > > should retire now.
> >> > > >
> >> > > > One design goal of -fPIE was to avoid copy relocations.
> >> > > > HAVE_LD_PIE_COPYRELOC has deviated from the goal.  With this change, the
> >> > > > -fPIE behavior of x86-64 will be closer to x86-32 and other targets.
> >> > > >
> >> > > > ---
> >> > > >
> >> > > > See https://gcc.gnu.org/legacy-ml/gcc/2019-05/msg00215.html for a list
> >> > > > of fixed and unfixed (e.g. gold incompatibility with protected
> >> > > > https://sourceware.org/bugzilla/show_bug.cgi?id=19823) issues.
> >> > > >
> >> > > > If you prefer a longer write-up, see
> >> > > > https://maskray.me/blog/2021-01-09-copy-relocations-canonical-plt-entries-and-protected
> >> > > > ---
> >> > > >  gcc/config.in                                 |  6 ---
> >> > > >  gcc/config/i386/i386.c                        | 11 +---
> >> > > >  gcc/configure                                 | 52 -------------------
> >> > > >  gcc/configure.ac                              | 48 -----------------
> >> > > >  gcc/doc/sourcebuild.texi                      |  3 --
> >> > > >  .../gcc.target/i386/pie-copyrelocs-1.c        | 14 -----
> >> > > >  .../gcc.target/i386/pie-copyrelocs-2.c        | 14 -----
> >> > > >  .../gcc.target/i386/pie-copyrelocs-3.c        | 14 -----
> >> > > >  .../gcc.target/i386/pie-copyrelocs-4.c        | 17 ------
> >> > > >  gcc/testsuite/lib/target-supports.exp         | 47 -----------------
> >> > > >  10 files changed, 2 insertions(+), 224 deletions(-)
> >> > > >  delete mode 100644 gcc/testsuite/gcc.target/i386/pie-copyrelocs-1.c
> >> > > >  delete mode 100644 gcc/testsuite/gcc.target/i386/pie-copyrelocs-2.c
> >> > > >  delete mode 100644 gcc/testsuite/gcc.target/i386/pie-copyrelocs-3.c
> >> > > >  delete mode 100644 gcc/testsuite/gcc.target/i386/pie-copyrelocs-4.c

>From x86 maintainer's PoV, the implementation is trivially correct,
but I have no idea about functionality. HJ, can you please review the
functionality and post your opinion on the patch to move it forward?

Thanks,
Uros.


More information about the Gcc-patches mailing list