Patchwork ping1 unbreak bootstrap on FreeBSD ppc

login
register
mail settings
Submitter Andreas Tobler
Date March 12, 2011, 8:36 p.m.
Message ID <4D7BD937.5010701@fgznet.ch>
Download mbox | patch
Permalink /patch/86556/
State New
Headers show

Comments

Andreas Tobler - March 12, 2011, 8:36 p.m.
All,

I'd like to commit the below patch to gcc trunk and gcc-4.5.

I have an ok from DJE, but I still await a comment from Loren.

This is now pending for more than a month. And I'd like to push this out.

Am I allowed to commit this to 4.6, or do I have to wait for 4.7 and 
then backport to 4.6?

Test results are available on the list and I'll send updated results soon.

Also, what is the commit stage for 4.5? I'd like to apply it there as well.

I'd appreciate any help on this since I get asked offlist about this 
patch. And if possible I'd like to point people at the latest gcc 
snapshot/release instead of unapproved patches.

Thanks,
Andreas

libgcc:

2011-03-12  Andreas Tobler  <andreast@fgznet.ch>

	* config.host (cpu_type): Add FreeBSD PowerPC specific parts.
	Adjust copyright year.

gcc:
2011-03-12  Andreas Tobler  <andreast@fgznet.ch>

	* config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
	terms of target_flags_explicit. Adjust copyright year.

	* config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
	* config/rs6000/t-freebsd: New file. Add override for
	LIB2FUNCS_EXTRA.
Gerald Pfeifer - March 13, 2011, 9:37 p.m.
On Sat, 12 Mar 2011, Andreas Tobler wrote:
> I'd like to commit the below patch to gcc trunk and gcc-4.5.
> 
> I have an ok from DJE, but I still await a comment from Loren.
> 
> This is now pending for more than a month. And I'd like to push this out.

I know Loren has been busy on the private side of things, and since
this is (a) fine with David as ppc maintainer, (b) strictly confined
to FreeBSD/ppc, and (c) simply broken right now I suggest to go ahead
right away for this to make GCC 4.6.0.

Then I'll update the FreeBSD port and you can point interested parties
there and after two weeks, say, and some positive feedback, backport
this to the GCC 4.5 branch.

Gerald
Andreas Tobler - March 14, 2011, 6:31 a.m.
On 13.03.11 22:37, Gerald Pfeifer wrote:
> On Sat, 12 Mar 2011, Andreas Tobler wrote:
>> I'd like to commit the below patch to gcc trunk and gcc-4.5.
>>
>> I have an ok from DJE, but I still await a comment from Loren.
>>
>> This is now pending for more than a month. And I'd like to push this out.
>
> I know Loren has been busy on the private side of things, and since
> this is (a) fine with David as ppc maintainer, (b) strictly confined
> to FreeBSD/ppc, and (c) simply broken right now I suggest to go ahead
> right away for this to make GCC 4.6.0.
>
> Then I'll update the FreeBSD port and you can point interested parties
> there and after two weeks, say, and some positive feedback, backport
> this to the GCC 4.5 branch.

Thank you.

Committed as:

- gcc: 170930
- libgcc: 170931

Andreas

Patch

Index: libgcc/config.host
===================================================================
--- libgcc/config.host	(revision 170906)
+++ libgcc/config.host	(working copy)
@@ -463,7 +463,8 @@ 
 	;;
 powerpc64-*-darwin*)
 	;;
-powerpc*-*-freebsd*)
+powerpc-*-freebsd*)
+	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-freebsd t-softfp"
 	;;
 powerpc-*-netbsd*)
 	;;
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 170906)
+++ gcc/config.gcc	(working copy)
@@ -2071,9 +2071,10 @@ 
 	tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
 	extra_headers=altivec.h
 	;;
-powerpc*-*-freebsd*)
+powerpc-*-freebsd*)
 	tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h"
-	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+	tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm rs6000/t-freebsd"
+	tmake_file="${tmake_file} t-slibgcc-libgcc rs6000/t-fprules-softfp soft-fp/t-softfp"
 	extra_options="${extra_options} rs6000/sysv4.opt"
 	;;
 powerpc-*-netbsd*)
Index: gcc/config/rs6000/t-freebsd
===================================================================
--- gcc/config/rs6000/t-freebsd	(revision 0)
+++ gcc/config/rs6000/t-freebsd	(revision 0)
@@ -0,0 +1,25 @@ 
+# Overrides for FreeBSD PowerPC 
+#
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+
+# We do not want to build darwin-ldouble.c, so set the LIB2FUNCS_EXTRA again. 
+# Invoke this file after rs6000/t-ppccomm.
+
+LIB2FUNCS_EXTRA = tramp.S
+
Index: gcc/config/rs6000/freebsd.h
===================================================================
--- gcc/config/rs6000/freebsd.h	(revision 170906)
+++ gcc/config/rs6000/freebsd.h	(working copy)
@@ -1,5 +1,6 @@ 
 /* Definitions for PowerPC running FreeBSD using the ELF format
-   Copyright (C) 2001, 2003, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2007, 2009, 2010, 2011
+   Free Software Foundation, Inc.
    Contributed by David E. O'Brien <obrien@FreeBSD.org> and BSDi.
 
    This file is part of GCC.
@@ -70,4 +71,10 @@ 
 #undef  ASM_APP_OFF
 #define ASM_APP_OFF "#NO_APP\n"
 
+/* We don't need to generate entries in .fixup, except when
+   -mrelocatable or -mrelocatable-lib is given.  */
+#undef RELOCATABLE_NEEDS_FIXUP
+#define RELOCATABLE_NEEDS_FIXUP \
+  (target_flags & target_flags_explicit & MASK_RELOCATABLE)
+
 #define DBX_REGISTER_NUMBER(REGNO) rs6000_dbx_register_number (REGNO)