Re: [PATCH,PING]] gcc/config/freebsd-spec.h: Fix building PIE

2012-08-29 Thread Alexis Ballier
Hi Gerald,

On Sun, 26 Aug 2012 23:28:49 +0200 (CEST)
Gerald Pfeifer  wrote:

> I have tested this patch on i386-unknown-freebsd10.0 and volunteer
> to create a ChangeLog and apply if approved.

Thanks for taking care of this, I thought this patch had been
completely forgotten :)
FWIW, the git commit message was supposed to be the ChangeLog entry
(imho it is rather pointless to include it in the patch since it will
most likely conflict when/if it gets applied)

> 
> Any reviewer?
> 
> On Tue, 8 May 2012, Alexis Ballier wrote:
> > For the record, there's a similar logic in FreeBSD's gcc: 
> > http://svnweb.freebsd.org/base/head/contrib/gcc/config/freebsd-spec.h?revision=200038&view=markup
> 
> Thanks for the patch, Alexis.  One question: why do we have the same
> in freebsd-spec.h and i386/freebsd.h.  Isn't there a way to simplify
> this?  Like omitting this from i386/freebsd.h at all?

To be honest, I don't know why we have the same in these two headers
and wondered the same. I suppose it is possible to simply remove it
from i386/freebsd.h but I didn't test this since I didn't want to mix a
bugfix for PIE and cleanup of the code within the same patch.

Regards,

Alexis.

[...]


[PATCH] gcc/config/freebsd-spec.h: Fix building PIE executables. Link them with crt{begin,end}S.o and Scrt1.o which are PIC instead of crt{begin,end}.o and crt1.o which are not. Spec synced from gnu-u

2012-05-08 Thread Alexis Ballier
gcc/config/i386/freebsd.h: Likewise.
---
 gcc/config/freebsd-spec.h |9 +++--
 gcc/config/i386/freebsd.h |9 +++--
 2 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/gcc/config/freebsd-spec.h b/gcc/config/freebsd-spec.h
index 770a3d1..2808582 100644
--- a/gcc/config/freebsd-spec.h
+++ b/gcc/config/freebsd-spec.h
@@ -64,11 +64,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If 
not, see
before entering `main'.  */

 #define FBSD_STARTFILE_SPEC \
-  "%{!shared: \
- %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
-  %{!p:%{profile:gcrt1.o%s} \
-%{!profile:crt1.o%s \
-   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
+   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
 
 /* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
the magical crtend.o file (see crtstuff.c) which provides part of 
@@ -77,7 +74,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If 
not, see
`crtn.o'.  */
 
 #define FBSD_ENDFILE_SPEC \
-  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
+  "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
 
 /* Provide a LIB_SPEC appropriate for FreeBSD as configured and as
required by the user-land thread model.  Before __FreeBSD_version
diff --git a/gcc/config/i386/freebsd.h b/gcc/config/i386/freebsd.h
index 649274d..dd69e43 100644
--- a/gcc/config/i386/freebsd.h
+++ b/gcc/config/i386/freebsd.h
@@ -67,11 +67,8 @@ along with GCC; see the file COPYING3.  If not see

 #undef STARTFILE_SPEC
 #define STARTFILE_SPEC \
-  "%{!shared: \
- %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
-  %{!p:%{profile:gcrt1.o%s} \
-%{!profile:crt1.o%s \
-   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
+   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
 
 /* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
the magical crtend.o file (see crtstuff.c) which provides part of 
@@ -81,7 +78,7 @@ along with GCC; see the file COPYING3.  If not see
 
 #undef ENDFILE_SPEC
 #define ENDFILE_SPEC \
-  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
+  "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
 
 /* Provide a LINK_SPEC appropriate for FreeBSD.  Here we provide support
for the special GCC options -static and -shared, which allow us to
-- 
1.7.8.6



Re: [PATCH] gcc/config/freebsd-spec.h: Fix building PIE executables. Link them with crt{begin,end}S.o and Scrt1.o which are PIC instead of crt{begin,end}.o and crt1.o which are not. Spec synced from g

2012-05-08 Thread Alexis Ballier
For the record, there's a similar logic in FreeBSD's gcc:
http://svnweb.freebsd.org/base/head/contrib/gcc/config/freebsd-spec.h?revision=200038&view=markup

Regards,

Alexis.


Re: [PATCH] gcc/config/freebsd-spec.h: Fix building PIE executables. Link them with crt{begin,end}S.o and Scrt1.o which are PIC instead of crt{begin,end}.o and crt1.o which are not. Spec synced from g

2012-05-09 Thread Alexis Ballier
Hmm, sorry, it seems I forgot to look at MAINTAINERS and CC him...

On Tue,  8 May 2012 09:53:43 -0400
Alexis Ballier  wrote:

> gcc/config/i386/freebsd.h: Likewise.
> ---
>  gcc/config/freebsd-spec.h |9 +++--
>  gcc/config/i386/freebsd.h |9 +++--
>  2 files changed, 6 insertions(+), 12 deletions(-)
> 
> diff --git a/gcc/config/freebsd-spec.h b/gcc/config/freebsd-spec.h
> index 770a3d1..2808582 100644
> --- a/gcc/config/freebsd-spec.h
> +++ b/gcc/config/freebsd-spec.h
> @@ -64,11 +64,8 @@ see the files COPYING3 and COPYING.RUNTIME
> respectively.  If not, see before entering `main'.  */
> 
>  #define FBSD_STARTFILE_SPEC \
> -  "%{!shared: \
> - %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
> -%{!p:%{profile:gcrt1.o%s} \
> -  %{!profile:crt1.o%s \
> -   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
> +  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
> +   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
>  
>  /* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
> the magical crtend.o file (see crtstuff.c) which provides part of 
> @@ -77,7 +74,7 @@ see the files COPYING3 and COPYING.RUNTIME
> respectively.  If not, see `crtn.o'.  */
>  
>  #define FBSD_ENDFILE_SPEC \
> -  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
> +  "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
>  
>  /* Provide a LIB_SPEC appropriate for FreeBSD as configured and as
> required by the user-land thread model.  Before __FreeBSD_version
> diff --git a/gcc/config/i386/freebsd.h b/gcc/config/i386/freebsd.h
> index 649274d..dd69e43 100644
> --- a/gcc/config/i386/freebsd.h
> +++ b/gcc/config/i386/freebsd.h
> @@ -67,11 +67,8 @@ along with GCC; see the file COPYING3.  If not see
> 
>  #undef   STARTFILE_SPEC
>  #define STARTFILE_SPEC \
> -  "%{!shared: \
> - %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
> -%{!p:%{profile:gcrt1.o%s} \
> -  %{!profile:crt1.o%s \
> -   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
> +  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
> +   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
>  
>  /* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
> the magical crtend.o file (see crtstuff.c) which provides part of 
> @@ -81,7 +78,7 @@ along with GCC; see the file COPYING3.  If not see
>  
>  #undef   ENDFILE_SPEC
>  #define ENDFILE_SPEC \
> -  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
> +  "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
>  
>  /* Provide a LINK_SPEC appropriate for FreeBSD.  Here we provide
> support for the special GCC options -static and -shared, which allow
> us to



Re: [PATCH] gcc/config/freebsd-spec.h: Fix building PIE executables. Link them with crt{begin,end}S.o and Scrt1.o which are PIC instead of crt{begin,end}.o and crt1.o which are not. Spec synced from g

2012-06-05 Thread Alexis Ballier

ping ? is there any problem with that patch ?