This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] hurd: align -p and -pg behavior on Linux
- From: Samuel Thibault <samuel dot thibault at gnu dot org>
- To: Thomas Schwinge <thomas at codesourcery dot com>
- Cc: Roland McGrath <roland at hack dot frob dot com>, bug-hurd at gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Thu, 25 Feb 2016 00:18:21 +0100
- Subject: Re: [PATCH] hurd: align -p and -pg behavior on Linux
- Authentication-results: sourceware.org; auth=none
- References: <20150919120023 dot GA12911 at var dot home> <87bn75ybeb dot fsf at kepler dot schwinge dot homeip dot net>
Thomas Schwinge, on Wed 24 Feb 2016 23:46:36 +0100, wrote:
> I guess getting -D_REENTRANT for -pthread won't do us any harm?
It won't.
> > --- gcc/config/i386/gnu.h.orig 2015-09-17 21:41:13.000000000 +0000
> > +++ gcc/config/i386/gnu.h 2015-09-17 23:03:57.000000000 +0000
> > @@ -27,11 +27,11 @@
> > #undef STARTFILE_SPEC
> > #if defined HAVE_LD_PIE
> > #define STARTFILE_SPEC \
> > - "%{!shared: %{pg|p|profile:gcrt0.o%s;pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \
> > + "%{!shared: %{pg|p:gcrt1.o%s;profile:gcrt0.o%s;pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \
> > crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
> > #else
> > #define STARTFILE_SPEC \
> > - "%{!shared: %{pg|p|profile:gcrt0.o%s;static:crt0.o%s;:crt1.o%s}} \
> > + "%{!shared: %{pg|p:gcrt1.o%s;profile:gcrt0.o%s;static:crt0.o%s;:crt1.o%s}} \
> > crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
> > #endif
>
> I think I understand what you're trying to do (avoid gcrt0.o being used
> for -pg or -p, and instead use gcrt1.o),
Yes.
> Likewise, for -pg or -p, I would assume that we
> still need gcrt0.o for static linking, and gcrt1.o for dynamic linking.
Mmm, probably indeed.
> - "%{!shared: %{pg|p|profile:gcrt0.o%s;pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \
> + "%{!shared: %{pg|p|profile:%{static:gcrt0.o%s;:gcrt1.o%s};pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \
Yes, that looks reasonable.
Samuel