Remove (Obsolete).

This commit is contained in:
Ralf Corsepius
2007-01-12 04:36:25 +00:00
parent 652473b3dc
commit ce62596033
2 changed files with 0 additions and 18647 deletions

View File

@@ -1,902 +0,0 @@
diff -uNr gcc-4.2-20061031.orig/gcc/builtins.def gcc-4.2-20061031/gcc/builtins.def
--- gcc-4.2-20061031.orig/gcc/builtins.def 2006-10-09 18:27:14.000000000 +0200
+++ gcc-4.2-20061031/gcc/builtins.def 2006-11-09 10:14:51.000000000 +0100
@@ -255,9 +255,9 @@
DEF_LIB_BUILTIN (BUILT_IN_FREXP, "frexp", BT_FN_DOUBLE_DOUBLE_INTPTR, ATTR_MATHFN_FPROUNDING_STORE)
DEF_C99_C90RES_BUILTIN (BUILT_IN_FREXPF, "frexpf", BT_FN_FLOAT_FLOAT_INTPTR, ATTR_MATHFN_FPROUNDING_STORE)
DEF_C99_C90RES_BUILTIN (BUILT_IN_FREXPL, "frexpl", BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR, ATTR_MATHFN_FPROUNDING_STORE)
-DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMA, "gamma", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
-DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMAF, "gammaf", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
-DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMAL, "gammal", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMA, "gamma", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_STORE)
+DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMAF, "gammaf", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_STORE)
+DEF_EXT_LIB_BUILTIN (BUILT_IN_GAMMAL, "gammal", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_STORE)
DEF_GCC_BUILTIN (BUILT_IN_HUGE_VAL, "huge_val", BT_FN_DOUBLE, ATTR_CONST_NOTHROW_LIST)
DEF_GCC_BUILTIN (BUILT_IN_HUGE_VALF, "huge_valf", BT_FN_FLOAT, ATTR_CONST_NOTHROW_LIST)
DEF_GCC_BUILTIN (BUILT_IN_HUGE_VALL, "huge_vall", BT_FN_LONGDOUBLE, ATTR_CONST_NOTHROW_LIST)
@@ -291,9 +291,9 @@
DEF_GCC_BUILTIN (BUILT_IN_LFLOOR, "lfloor", BT_FN_LONG_DOUBLE, ATTR_MATHFN_FPROUNDING)
DEF_GCC_BUILTIN (BUILT_IN_LFLOORF, "lfloorf", BT_FN_LONG_FLOAT, ATTR_MATHFN_FPROUNDING)
DEF_GCC_BUILTIN (BUILT_IN_LFLOORL, "lfloorl", BT_FN_LONG_LONGDOUBLE, ATTR_MATHFN_FPROUNDING)
-DEF_C99_BUILTIN (BUILT_IN_LGAMMA, "lgamma", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
-DEF_C99_BUILTIN (BUILT_IN_LGAMMAF, "lgammaf", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
-DEF_C99_BUILTIN (BUILT_IN_LGAMMAL, "lgammal", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+DEF_C99_BUILTIN (BUILT_IN_LGAMMA, "lgamma", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_STORE)
+DEF_C99_BUILTIN (BUILT_IN_LGAMMAF, "lgammaf", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_STORE)
+DEF_C99_BUILTIN (BUILT_IN_LGAMMAL, "lgammal", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_STORE)
DEF_GCC_BUILTIN (BUILT_IN_LLCEIL, "llceil", BT_FN_LONGLONG_DOUBLE, ATTR_MATHFN_FPROUNDING)
DEF_GCC_BUILTIN (BUILT_IN_LLCEILF, "llceilf", BT_FN_LONGLONG_FLOAT, ATTR_MATHFN_FPROUNDING)
DEF_GCC_BUILTIN (BUILT_IN_LLCEILL, "llceill", BT_FN_LONGLONG_LONGDOUBLE, ATTR_MATHFN_FPROUNDING)
diff -uNr gcc-4.2-20061031.orig/gcc/ChangeLog gcc-4.2-20061031/gcc/ChangeLog
--- gcc-4.2-20061031.orig/gcc/ChangeLog 2006-10-30 09:03:50.000000000 +0100
+++ gcc-4.2-20061031/gcc/ChangeLog 2006-11-09 10:14:08.000000000 +0100
@@ -1,3 +1,109 @@
+2006-11-08 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * doc/invoke.texi: Minor formatting fixes in option lists.
+
+2006-11-08 Eric Christopher <echristo@apple.com>
+
+ Backport from mainline:
+ * config.gcc: Add x86_64-darwin host support.
+ * config.host: Ditto.
+ * config/i386/darwin64.h: New file.
+ * config/i386/t-darwin64: Ditto.
+
+2006-11-08 Janis Johnson <janis187@us.ibm.com>
+
+ * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
+ and output-exists-not.
+
+2006-11-07 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/29610
+ * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
+ of tree_purge_dead_eh_edges as it may free dominators.
+
+ * g++.dg/other/pr29610.C: New testcase.
+
+2006-11-07 Jie Zhang <jie.zhang@analog.com>
+
+ * gcc.c (process_command): Treat -b as normal switch if its argument
+ has no dash.
+
+2006-11-06 Vladimir Prus <vladimir@codesourcery.com>
+
+ Backport from mainline:
+ * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do not
+ set inhibit_libc.
+ * config/arm/t-strongarm-elf: Likewise.
+ * config/arm/t-pe: Likewise.
+ * config/arm/t-arm-elf: Likewise.
+ * config/arm/t-xscale-elf: Likewise.
+ * config/arm/t-arm-coff: Likewise.
+ * config/arm/t-xscale-coff: Likewise.
+ * config/arm/t-wince-pe: Likewise.
+
+2006-11-06 Richard Guenther <rguenther@suse.de>
+
+ Backport from mainline:
+ 2006-10-21 Richard Guenther <rguenther@suse.de>
+
+ PR target/19116
+ * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
+ if flag_unsafe_math_optimizations is specified. We have
+ flag_finite_math_only for that.
+ * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
+ or flag_unsafe_math_optimizations.
+
+ PR middle-end/28796
+ * simplify-rtx.c (simplify_const_relational_operation):
+ Do not constant-fold ORDERED and UNORDERED for
+ flag_unsafe_math_optimizations but only we do not need to
+ honor NaNs for the given mode.
+
+2006-11-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/29695
+ * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
+ simplification.
+
+2006-11-02 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * doc/invoke.texi: Fix mfp-trap-mode typo.
+
+2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
+ instructions.
+ (sparc64-sun-solaris2*): Likewise.
+
+2006-11-02 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/29377
+ * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
+ argument to HOST_WIDE_INT. Update function prototype.
+ (round_frame_size): Change return type to HOST_WIDE_INT. Change
+ "size" argument to HOST_WIDE_INT. Update function prototype.
+
+2006-11-01 Chris Johns <chris@contemporary.net.au>
+
+ PR bootstrap/28400
+ * Makefile.in (install-driver): Use exeext when installing
+ $target-gcc-$version.
+
+2006-11-01 Andrew Haley <aph@redhat.com>
+
+ * fold-const.c (fold_unary): Don't fold (t1)(t2) to (t1) if this
+ is a Java program.
+
+2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
+
+2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/24071
+ * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
+ * gthr-posix95.h (__gthread_active_p): Likewise.
+
2006-10-30 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/29637
@@ -136,13 +242,13 @@
(init_alias_heapvars): Initialize nonlocal_for_type and
nonlocal_all.
(delete_alias_heapvars): Free nonlocal_for_type and null out
- nonlocal_all.
+ nonlocal_all.
2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
* fold-const.c (add_double): Rename to add_double_with_sign.
Add 'unsigned_p' parameter and take it into account for the overflow.
- (mul_double): Rename to mul_double_with_sign.
+ (mul_double): Rename to mul_double_with_sign.
Add 'unsigned_p' parameter and take it into account for the overflow.
(fold_div_compare): Call add_double_with_sign instead of add_double
and mul_double_with_sign instead of mul_double, passing them the
@@ -199,17 +305,17 @@
2006-10-17 Wolfgang Gellerich <gellerich@de.ibm.com>
* config/s390/contraints.md: New file.
- * config/s390/s390-protos.h (s390_mem_constraint,
- s390_O_constraint_str, s390_N_constraint_str,
+ * config/s390/s390-protos.h (s390_mem_constraint,
+ s390_O_constraint_str, s390_N_constraint_str,
s390_float_const_zero_p): Function prototypes added.
- * config/s390/s390.c (s390_extra_constraint_str,
- s390_const_double_ok_for_constraint_p,
+ * config/s390/s390.c (s390_extra_constraint_str,
+ s390_const_double_ok_for_constraint_p,
s390_const_ok_for_constraint_p): Functions removed.
(s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
s390_float_const_zero_p): New functions.
* config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
- CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
- EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
+ CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
+ EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
Macro definitions removed.
(s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
s390_extra_constraint_str): Functions removed.
diff -uNr gcc-4.2-20061031.orig/gcc/config/arm/rtems-elf.h gcc-4.2-20061031/gcc/config/arm/rtems-elf.h
--- gcc-4.2-20061031.orig/gcc/config/arm/rtems-elf.h 2005-11-21 23:56:34.000000000 +0100
+++ gcc-4.2-20061031/gcc/config/arm/rtems-elf.h 2006-11-09 10:15:12.000000000 +0100
@@ -27,6 +27,7 @@
#define TARGET_OS_CPP_BUILTINS() \
do { \
builtin_define ("__rtems__"); \
+ builtin_define ("__USE_INIT_FINI__"); \
builtin_assert ("system=rtems"); \
} while (0)
diff -uNr gcc-4.2-20061031.orig/gcc/config/arm/t-arm-coff gcc-4.2-20061031/gcc/config/arm/t-arm-coff
--- gcc-4.2-20061031.orig/gcc/config/arm/t-arm-coff 2003-07-02 01:26:43.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/arm/t-arm-coff 2006-11-09 10:15:12.000000000 +0100
@@ -31,4 +31,4 @@
# Currently there is a bug somewhere in GCC's alias analysis
# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
# Disabling function inlining is a workaround for this problem.
-TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline
+TARGET_LIBGCC2_CFLAGS = -fno-inline
diff -uNr gcc-4.2-20061031.orig/gcc/config/arm/t-arm-elf gcc-4.2-20061031/gcc/config/arm/t-arm-elf
--- gcc-4.2-20061031.orig/gcc/config/arm/t-arm-elf 2005-12-21 18:48:07.000000000 +0100
+++ gcc-4.2-20061031/gcc/config/arm/t-arm-elf 2006-11-09 10:15:12.000000000 +0100
@@ -67,7 +67,7 @@
# Currently there is a bug somewhere in GCC's alias analysis
# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
# Disabling function inlining is a workaround for this problem.
-TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline
+TARGET_LIBGCC2_CFLAGS = -fno-inline
# Assemble startup files.
$(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES)
diff -uNr gcc-4.2-20061031.orig/gcc/config/arm/t-pe gcc-4.2-20061031/gcc/config/arm/t-pe
--- gcc-4.2-20061031.orig/gcc/config/arm/t-pe 2004-05-15 14:41:35.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/arm/t-pe 2006-11-09 10:15:12.000000000 +0100
@@ -29,4 +29,4 @@
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
-TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc
+TARGET_LIBGCC2_CFLAGS =
\ No newline at end of file
diff -uNr gcc-4.2-20061031.orig/gcc/config/arm/t-strongarm-elf gcc-4.2-20061031/gcc/config/arm/t-strongarm-elf
--- gcc-4.2-20061031.orig/gcc/config/arm/t-strongarm-elf 2001-09-14 12:19:30.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/arm/t-strongarm-elf 2006-11-09 10:15:12.000000000 +0100
@@ -32,7 +32,7 @@
# Currently there is a bug somewhere in GCC's alias analysis
# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
# Disabling function inlining is a workaround for this problem.
-TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline
+TARGET_LIBGCC2_CFLAGS = -fno-inline
# Assemble startup files.
$(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES)
diff -uNr gcc-4.2-20061031.orig/gcc/config/arm/t-strongarm-pe gcc-4.2-20061031/gcc/config/arm/t-strongarm-pe
--- gcc-4.2-20061031.orig/gcc/config/arm/t-strongarm-pe 2003-07-02 01:26:43.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/arm/t-strongarm-pe 2006-11-09 10:15:12.000000000 +0100
@@ -35,4 +35,4 @@
# Currently there is a bug somewhere in GCC's alias analysis
# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
# Disabling function inlining is a workaround for this problem.
-TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline
+TARGET_LIBGCC2_CFLAGS = -fno-inline
diff -uNr gcc-4.2-20061031.orig/gcc/config/arm/t-wince-pe gcc-4.2-20061031/gcc/config/arm/t-wince-pe
--- gcc-4.2-20061031.orig/gcc/config/arm/t-wince-pe 2004-05-15 14:41:35.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/arm/t-wince-pe 2006-11-09 10:15:12.000000000 +0100
@@ -34,4 +34,4 @@
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
-TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc
+TARGET_LIBGCC2_CFLAGS =
diff -uNr gcc-4.2-20061031.orig/gcc/config/arm/t-xscale-coff gcc-4.2-20061031/gcc/config/arm/t-xscale-coff
--- gcc-4.2-20061031.orig/gcc/config/arm/t-xscale-coff 2004-05-15 14:41:35.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/arm/t-xscale-coff 2006-11-09 10:15:12.000000000 +0100
@@ -42,4 +42,4 @@
# Currently there is a bug somewhere in GCC's alias analysis
# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
# Disabling function inlining is a workaround for this problem.
-TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline
+TARGET_LIBGCC2_CFLAGS = -fno-inline
diff -uNr gcc-4.2-20061031.orig/gcc/config/arm/t-xscale-elf gcc-4.2-20061031/gcc/config/arm/t-xscale-elf
--- gcc-4.2-20061031.orig/gcc/config/arm/t-xscale-elf 2004-05-15 14:41:35.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/arm/t-xscale-elf 2006-11-09 10:15:12.000000000 +0100
@@ -54,7 +54,7 @@
# Currently there is a bug somewhere in GCC's alias analysis
# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
# Disabling function inlining is a workaround for this problem.
-TARGET_LIBGCC2_CFLAGS = -Dinhibit_libc -fno-inline
+TARGET_LIBGCC2_CFLAGS = -fno-inline
# Assemble startup files.
$(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES)
diff -uNr gcc-4.2-20061031.orig/gcc/config/bfin/bfin.h gcc-4.2-20061031/gcc/config/bfin/bfin.h
--- gcc-4.2-20061031.orig/gcc/config/bfin/bfin.h 2006-10-05 12:46:41.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/bfin/bfin.h 2006-11-09 10:15:12.000000000 +0100
@@ -39,8 +39,8 @@
#define TARGET_CPU_CPP_BUILTINS() \
do \
{ \
- builtin_define ("bfin"); \
- builtin_define ("BFIN"); \
+ builtin_define_std ("bfin"); \
+ builtin_define_std ("BFIN"); \
builtin_define ("__ADSPBLACKFIN__"); \
if (TARGET_FDPIC) \
builtin_define ("__BFIN_FDPIC__"); \
diff -uNr gcc-4.2-20061031.orig/gcc/config/bfin/rtems.h gcc-4.2-20061031/gcc/config/bfin/rtems.h
--- gcc-4.2-20061031.orig/gcc/config/bfin/rtems.h 1970-01-01 01:00:00.000000000 +0100
+++ gcc-4.2-20061031/gcc/config/bfin/rtems.h 2006-11-09 10:15:12.000000000 +0100
@@ -0,0 +1,29 @@
+/* Definitions for rtems targeting a bfin
+ Copyright (C) 2006 Free Software Foundation, Inc.
+ Contributed by Ralf Corsépius (ralf.corsepius@rtems.org).
+
+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 2, 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 COPYING. If not, write to
+the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA. */
+
+/* Target OS preprocessor built-ins. */
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("__rtems__"); \
+ builtin_assert ("system=rtems"); \
+ } \
+ while (0)
diff -uNr gcc-4.2-20061031.orig/gcc/config/c4x/rtems.h gcc-4.2-20061031/gcc/config/c4x/rtems.h
--- gcc-4.2-20061031.orig/gcc/config/c4x/rtems.h 2005-06-25 03:22:41.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/c4x/rtems.h 2006-11-09 10:15:12.000000000 +0100
@@ -24,6 +24,5 @@
#define TARGET_OS_CPP_BUILTINS() \
do { \
builtin_define ("__rtems__"); \
- builtin_define ("__USE_INIT_FINI__"); \
builtin_assert ("system=rtems"); \
} while (0)
diff -uNr gcc-4.2-20061031.orig/gcc/config/h8300/h8300.c gcc-4.2-20061031/gcc/config/h8300/h8300.c
--- gcc-4.2-20061031.orig/gcc/config/h8300/h8300.c 2006-08-28 15:51:04.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/h8300/h8300.c 2006-11-09 10:15:12.000000000 +0100
@@ -83,8 +83,8 @@
static int h8300_saveall_function_p (tree);
static int h8300_monitor_function_p (tree);
static int h8300_os_task_function_p (tree);
-static void h8300_emit_stack_adjustment (int, unsigned int);
-static int round_frame_size (int);
+static void h8300_emit_stack_adjustment (int, HOST_WIDE_INT);
+static HOST_WIDE_INT round_frame_size (HOST_WIDE_INT);
static unsigned int compute_saved_regs (void);
static void push (int);
static void pop (int);
@@ -510,7 +510,7 @@
SIZE to adjust the stack pointer. */
static void
-h8300_emit_stack_adjustment (int sign, unsigned int size)
+h8300_emit_stack_adjustment (int sign, HOST_WIDE_INT size)
{
/* If the frame size is 0, we don't have anything to do. */
if (size == 0)
@@ -546,8 +546,8 @@
/* Round up frame size SIZE. */
-static int
-round_frame_size (int size)
+static HOST_WIDE_INT
+round_frame_size (HOST_WIDE_INT size)
{
return ((size + STACK_BOUNDARY / BITS_PER_UNIT - 1)
& -STACK_BOUNDARY / BITS_PER_UNIT);
diff -uNr gcc-4.2-20061031.orig/gcc/config/i386/darwin64.h gcc-4.2-20061031/gcc/config/i386/darwin64.h
--- gcc-4.2-20061031.orig/gcc/config/i386/darwin64.h 1970-01-01 01:00:00.000000000 +0100
+++ gcc-4.2-20061031/gcc/config/i386/darwin64.h 2006-11-09 10:15:11.000000000 +0100
@@ -0,0 +1,35 @@
+/* Target definitions for x86_64 running Darwin.
+ Copyright (C) 2006 Free Software Foundation, Inc.
+ Contributed by Apple Computer 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 2, 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 COPYING. If not, write to
+the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA. */
+
+#undef TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (x86_64 Darwin)");
+
+#undef DARWIN_ARCH_SPEC
+#define DARWIN_ARCH_SPEC "%{m32:i386;:x86_64}"
+
+#undef DARWIN_SUBARCH_SPEC
+#define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC
+
+#undef SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS \
+ { "darwin_arch", DARWIN_ARCH_SPEC }, \
+ { "darwin_crt2", "" }, \
+ { "darwin_subarch", DARWIN_SUBARCH_SPEC },
diff -uNr gcc-4.2-20061031.orig/gcc/config/i386/i386.c gcc-4.2-20061031/gcc/config/i386/i386.c
--- gcc-4.2-20061031.orig/gcc/config/i386/i386.c 2006-10-16 21:53:29.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/i386/i386.c 2006-11-09 10:15:11.000000000 +0100
@@ -1847,7 +1847,7 @@
/* If we're doing fast math, we don't care about comparison order
wrt NaNs. This lets us use a shorter comparison sequence. */
- if (flag_unsafe_math_optimizations)
+ if (flag_finite_math_only)
target_flags &= ~MASK_IEEE_FP;
/* If the architecture always has an FPU, turn off NO_FANCY_MATH_387,
diff -uNr gcc-4.2-20061031.orig/gcc/config/i386/i386.md gcc-4.2-20061031/gcc/config/i386/i386.md
--- gcc-4.2-20061031.orig/gcc/config/i386/i386.md 2006-09-07 19:53:18.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/i386/i386.md 2006-11-09 10:15:11.000000000 +0100
@@ -15560,8 +15560,7 @@
(define_insn "sqrtxf2"
[(set (match_operand:XF 0 "register_operand" "=f")
(sqrt:XF (match_operand:XF 1 "register_operand" "0")))]
- "TARGET_USE_FANCY_MATH_387
- && (TARGET_IEEE_FP || flag_unsafe_math_optimizations) "
+ "TARGET_USE_FANCY_MATH_387"
"fsqrt"
[(set_attr "type" "fpspc")
(set_attr "mode" "XF")
diff -uNr gcc-4.2-20061031.orig/gcc/config/i386/t-darwin64 gcc-4.2-20061031/gcc/config/i386/t-darwin64
--- gcc-4.2-20061031.orig/gcc/config/i386/t-darwin64 1970-01-01 01:00:00.000000000 +0100
+++ gcc-4.2-20061031/gcc/config/i386/t-darwin64 2006-11-09 10:15:11.000000000 +0100
@@ -0,0 +1,3 @@
+SHLIB_VERPFX = $(srcdir)/config/i386/darwin-libgcc
+LIB2_SIDITI_CONV_FUNCS=yes
+LIB2FUNCS_EXTRA = $(srcdir)/config/darwin-64.c
diff -uNr gcc-4.2-20061031.orig/gcc/config/mips/elf.h gcc-4.2-20061031/gcc/config/mips/elf.h
--- gcc-4.2-20061031.orig/gcc/config/mips/elf.h 2006-10-08 09:35:47.000000000 +0200
+++ gcc-4.2-20061031/gcc/config/mips/elf.h 2006-11-09 10:15:12.000000000 +0100
@@ -49,6 +49,4 @@
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "crtend%O%s crtn%O%s"
-#define NO_IMPLICIT_EXTERN_C 1
-
#define HANDLE_PRAGMA_PACK_PUSH_POP 1
diff -uNr gcc-4.2-20061031.orig/gcc/config.gcc gcc-4.2-20061031/gcc/config.gcc
--- gcc-4.2-20061031.orig/gcc/config.gcc 2006-10-16 01:05:31.000000000 +0200
+++ gcc-4.2-20061031/gcc/config.gcc 2006-11-09 10:15:11.000000000 +0100
@@ -786,6 +786,11 @@
tmake_file=bfin/t-bfin-elf
use_collect2=no
;;
+bfin*-rtems*)
+ tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h"
+ tmake_file="bfin/t-bfin-elf t-rtems"
+ use_collect2=no
+ ;;
bfin*-*)
tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h"
tmake_file=bfin/t-bfin
@@ -1013,6 +1018,12 @@
with_arch=${with_arch:-nocona}
with_cpu=${with_cpu:-generic}
;;
+x86_64-*-darwin*)
+ with_arch=${with_arch:-nocona}
+ with_cpu=${with_cpu:-generic}
+ tmake_file="t-darwin ${cpu_type}/t-darwin64 t-slibgcc-darwin"
+ tm_file="${tm_file} ${cpu_type}/darwin64.h"
+ ;;
i[34567]86-*-elf*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h"
tmake_file="i386/t-i386elf t-svr4"
diff -uNr gcc-4.2-20061031.orig/gcc/config.host gcc-4.2-20061031/gcc/config.host
--- gcc-4.2-20061031.orig/gcc/config.host 2006-09-23 01:50:51.000000000 +0200
+++ gcc-4.2-20061031/gcc/config.host 2006-11-09 10:15:11.000000000 +0100
@@ -177,7 +177,7 @@
i[34567]86-*-interix3*)
host_xmake_file="${host_xmake_file} x-interix"
;;
- i[34567]86-*-darwin*)
+ i[34567]86-*-darwin* | x86_64-*-darwin*)
out_host_hook_obj="${out_host_hook_obj} host-i386-darwin.o"
host_xmake_file="${host_xmake_file} i386/x-darwin"
;;
diff -uNr gcc-4.2-20061031.orig/gcc/DATESTAMP gcc-4.2-20061031/gcc/DATESTAMP
--- gcc-4.2-20061031.orig/gcc/DATESTAMP 2006-10-31 01:17:29.000000000 +0100
+++ gcc-4.2-20061031/gcc/DATESTAMP 2006-11-09 10:14:07.000000000 +0100
@@ -1 +1 @@
-20061031
+20061109
diff -uNr gcc-4.2-20061031.orig/gcc/doc/install.texi gcc-4.2-20061031/gcc/doc/install.texi
--- gcc-4.2-20061031.orig/gcc/doc/install.texi 2006-10-20 01:39:45.000000000 +0200
+++ gcc-4.2-20061031/gcc/doc/install.texi 2006-11-09 10:14:07.000000000 +0100
@@ -3848,12 +3848,15 @@
To work around this problem, compile with @option{-gstabs+} instead of
plain @option{-g}.
-When configuring the GNU Multiple Precision Library (GMP) version 4.1.x
-on a Solaris 7 or later system, the canonical target triplet must be
-specified as the @command{build} parameter on the configure line:
+When configuring the GNU Multiple Precision Library (GMP) or the MPFR
+library on a Solaris 7 or later system, the canonical target triplet
+must be specified as the @command{build} parameter on the configure
+line. This triplet can be obtained by invoking ./config.guess in
+the toplevel source directory of GCC (and not that of GMP or MPFR).
+For example on a Solaris 7 system:
@smallexample
-./configure --build=sparc-sun-solaris2.7 --prefix=xxx --enable-mpfr
+ % ./configure --build=sparc-sun-solaris2.7 --prefix=xxx
@end smallexample
@html
@@ -3933,15 +3936,24 @@
@end html
@heading @anchor{sparc64-x-solaris2}sparc64-*-solaris2*
+When configuring the GNU Multiple Precision Library (GMP) or the
+MPFR library, the canonical target triplet must be specified as
+the @command{build} parameter on the configure line. For example
+on a Solaris 7 system:
+
+@smallexample
+ % ./configure --build=sparc64-sun-solaris2.7 --prefix=xxx
+@end smallexample
+
The following compiler flags must be specified in the configure
step in order to bootstrap this target with the Sun compiler:
@smallexample
- % CC="cc -xildoff -xarch=v9" @var{srcdir}/configure [@var{options}] [@var{target}]
+ % CC="cc -xarch=v9 -xildoff" @var{srcdir}/configure [@var{options}] [@var{target}]
@end smallexample
-@option{-xildoff} turns off the incremental linker, and @option{-xarch=v9}
-specifies the SPARC-V9 architecture to the Sun linker and assembler.
+@option{-xarch=v9} specifies the SPARC-V9 architecture to the Sun toolchain
+and @option{-xildoff} turns off the incremental linker.
@html
<hr />
diff -uNr gcc-4.2-20061031.orig/gcc/doc/invoke.texi gcc-4.2-20061031/gcc/doc/invoke.texi
--- gcc-4.2-20061031.orig/gcc/doc/invoke.texi 2006-10-19 11:19:21.000000000 +0200
+++ gcc-4.2-20061031/gcc/doc/invoke.texi 2006-11-09 10:14:07.000000000 +0100
@@ -197,8 +197,7 @@
@item Objective-C and Objective-C++ Language Options
@xref{Objective-C and Objective-C++ Dialect Options,,Options Controlling
Objective-C and Objective-C++ Dialects}.
-@gccoptlist{
--fconstant-string-class=@var{class-name} @gol
+@gccoptlist{-fconstant-string-class=@var{class-name} @gol
-fgnu-runtime -fnext-runtime @gol
-fno-nil-receivers @gol
-fobjc-call-cxx-cdtors @gol
@@ -216,8 +215,8 @@
@item Language Independent Options
@xref{Language Independent Options,,Options to Control Diagnostic Messages Formatting}.
@gccoptlist{-fmessage-length=@var{n} @gol
--fdiagnostics-show-location=@r{[}once@r{|}every-line@r{]}} @gol
--fdiagnostics-show-option
+-fdiagnostics-show-location=@r{[}once@r{|}every-line@r{]} @gol
+-fdiagnostics-show-option}
@item Warning Options
@xref{Warning Options,,Options to Request or Suppress Warnings}.
@@ -8352,7 +8351,7 @@
as well.
@item su
-Like @samp{su}, but the instructions are marked to be safe for software
+Like @samp{u}, but the instructions are marked to be safe for software
completion (see Alpha architecture manual for details).
@item sui
diff -uNr gcc-4.2-20061031.orig/gcc/doc/sourcebuild.texi gcc-4.2-20061031/gcc/doc/sourcebuild.texi
--- gcc-4.2-20061031.orig/gcc/doc/sourcebuild.texi 2006-10-16 21:51:55.000000000 +0200
+++ gcc-4.2-20061031/gcc/doc/sourcebuild.texi 2006-11-09 10:14:07.000000000 +0100
@@ -1134,6 +1134,12 @@
Passes if @var{regex} does not match demangled text in the dump file with
suffix @var{suffix}.
+@item output-exists [@{ target/xfail @var{selector} @}]
+Passes if compiler output file exists.
+
+@item output-exists-not [@{ target/xfail @var{selector} @}]
+Passes if compiler output file does not exist.
+
@item run-gcov @var{sourcefile}
Check line counts in @command{gcov} tests.
diff -uNr gcc-4.2-20061031.orig/gcc/fold-const.c gcc-4.2-20061031/gcc/fold-const.c
--- gcc-4.2-20061031.orig/gcc/fold-const.c 2006-10-19 22:22:04.000000000 +0200
+++ gcc-4.2-20061031/gcc/fold-const.c 2006-11-09 10:14:08.000000000 +0100
@@ -7397,6 +7397,8 @@
- the final type is a pointer type and the initial type not
- the initial type is a pointer to an array and the final type
not. */
+ /* Java pointer type conversions generate checks in some
+ cases, so we explicitly disallow this optimization. */
if (! inside_float && ! inter_float && ! final_float
&& ! inside_vec && ! inter_vec && ! final_vec
&& (inter_prec >= inside_prec || inter_prec >= final_prec)
@@ -7412,7 +7414,9 @@
&& final_ptr == inside_ptr
&& ! (inside_ptr
&& TREE_CODE (TREE_TYPE (inside_type)) == ARRAY_TYPE
- && TREE_CODE (TREE_TYPE (type)) != ARRAY_TYPE))
+ && TREE_CODE (TREE_TYPE (type)) != ARRAY_TYPE)
+ && ! ((strcmp (lang_hooks.name, "GNU Java") == 0)
+ && final_ptr))
return fold_build1 (code, type, TREE_OPERAND (op0, 0));
}
@@ -11184,13 +11188,76 @@
/* A < 0 ? <sign bit of A> : 0 is simply (A & <sign bit of A>). */
if (TREE_CODE (arg0) == LT_EXPR
- && integer_zerop (TREE_OPERAND (arg0, 1))
- && integer_zerop (op2)
- && (tem = sign_bit_p (TREE_OPERAND (arg0, 0), arg1)))
- return fold_convert (type,
- fold_build2 (BIT_AND_EXPR,
- TREE_TYPE (tem), tem,
- fold_convert (TREE_TYPE (tem), arg1)));
+ && integer_zerop (TREE_OPERAND (arg0, 1))
+ && integer_zerop (op2)
+ && (tem = sign_bit_p (TREE_OPERAND (arg0, 0), arg1)))
+ {
+ /* sign_bit_p only checks ARG1 bits within A's precision.
+ If <sign bit of A> has wider type than A, bits outside
+ of A's precision in <sign bit of A> need to be checked.
+ If they are all 0, this optimization needs to be done
+ in unsigned A's type, if they are all 1 in signed A's type,
+ otherwise this can't be done. */
+ if (TYPE_PRECISION (TREE_TYPE (tem))
+ < TYPE_PRECISION (TREE_TYPE (arg1))
+ && TYPE_PRECISION (TREE_TYPE (tem))
+ < TYPE_PRECISION (type))
+ {
+ unsigned HOST_WIDE_INT mask_lo;
+ HOST_WIDE_INT mask_hi;
+ int inner_width, outer_width;
+ tree tem_type;
+
+ inner_width = TYPE_PRECISION (TREE_TYPE (tem));
+ outer_width = TYPE_PRECISION (TREE_TYPE (arg1));
+ if (outer_width > TYPE_PRECISION (type))
+ outer_width = TYPE_PRECISION (type);
+
+ if (outer_width > HOST_BITS_PER_WIDE_INT)
+ {
+ mask_hi = ((unsigned HOST_WIDE_INT) -1
+ >> (2 * HOST_BITS_PER_WIDE_INT - outer_width));
+ mask_lo = -1;
+ }
+ else
+ {
+ mask_hi = 0;
+ mask_lo = ((unsigned HOST_WIDE_INT) -1
+ >> (HOST_BITS_PER_WIDE_INT - outer_width));
+ }
+ if (inner_width > HOST_BITS_PER_WIDE_INT)
+ {
+ mask_hi &= ~((unsigned HOST_WIDE_INT) -1
+ >> (HOST_BITS_PER_WIDE_INT - inner_width));
+ mask_lo = 0;
+ }
+ else
+ mask_lo &= ~((unsigned HOST_WIDE_INT) -1
+ >> (HOST_BITS_PER_WIDE_INT - inner_width));
+
+ if ((TREE_INT_CST_HIGH (arg1) & mask_hi) == mask_hi
+ && (TREE_INT_CST_LOW (arg1) & mask_lo) == mask_lo)
+ {
+ tem_type = lang_hooks.types.signed_type (TREE_TYPE (tem));
+ tem = fold_convert (tem_type, tem);
+ }
+ else if ((TREE_INT_CST_HIGH (arg1) & mask_hi) == 0
+ && (TREE_INT_CST_LOW (arg1) & mask_lo) == 0)
+ {
+ tem_type = lang_hooks.types.unsigned_type (TREE_TYPE (tem));
+ tem = fold_convert (tem_type, tem);
+ }
+ else
+ tem = NULL;
+ }
+
+ if (tem)
+ return fold_convert (type,
+ fold_build2 (BIT_AND_EXPR,
+ TREE_TYPE (tem), tem,
+ fold_convert (TREE_TYPE (tem),
+ arg1)));
+ }
/* (A >> N) & 1 ? (1 << N) : 0 is simply A & (1 << N). A & 1 was
already handled above. */
diff -uNr gcc-4.2-20061031.orig/gcc/gcc.c gcc-4.2-20061031/gcc/gcc.c
--- gcc-4.2-20061031.orig/gcc/gcc.c 2006-07-18 18:07:44.000000000 +0200
+++ gcc-4.2-20061031/gcc/gcc.c 2006-11-09 10:14:08.000000000 +0100
@@ -3744,7 +3744,10 @@
switch (c)
{
case 'b':
- if (NULL == strchr(argv[i] + 2, '-')) break;
+ if (NULL == strchr(argv[i] + 2, '-'))
+ goto normal_switch;
+
+ /* Fall through. */
case 'V':
fatal ("'-%c' must come at the start of the command line", c);
break;
diff -uNr gcc-4.2-20061031.orig/gcc/gthr-posix95.h gcc-4.2-20061031/gcc/gthr-posix95.h
--- gcc-4.2-20061031.orig/gcc/gthr-posix95.h 2006-01-26 23:00:28.000000000 +0100
+++ gcc-4.2-20061031/gcc/gthr-posix95.h 2006-11-09 10:15:12.000000000 +0100
@@ -109,6 +109,59 @@
#if SUPPORTS_WEAK && GTHREAD_USE_WEAK
+/* On Solaris 2.6 up to 9, the libc exposes a POSIX threads interface even if
+ -pthreads is not specified. The functions are dummies and most return an
+ error value. However pthread_once returns 0 without invoking the routine
+ it is passed so we cannot pretend that the interface is active if -pthreads
+ is not specified. On Solaris 2.5.1, the interface is not exposed at all so
+ we need to play the usual game with weak symbols. On Solaris 10 and up, a
+ working interface is always exposed. */
+
+#if defined(__sun) && defined(__svr4__)
+
+static volatile int __gthread_active = -1;
+
+static void
+__gthread_trigger (void)
+{
+ __gthread_active = 1;
+}
+
+static inline int
+__gthread_active_p (void)
+{
+ static pthread_mutex_t __gthread_active_mutex = PTHREAD_MUTEX_INITIALIZER;
+ static pthread_once_t __gthread_active_once = PTHREAD_ONCE_INIT;
+
+ /* Avoid reading __gthread_active twice on the main code path. */
+ int __gthread_active_latest_value = __gthread_active;
+
+ /* This test is not protected to avoid taking a lock on the main code
+ path so every update of __gthread_active in a threaded program must
+ be atomic with regard to the result of the test. */
+ if (__builtin_expect (__gthread_active_latest_value < 0, 0))
+ {
+ if (__gthrw_(pthread_once))
+ {
+ /* If this really is a threaded program, then we must ensure that
+ __gthread_active has been set to 1 before exiting this block. */
+ __gthrw_(pthread_mutex_lock) (&__gthread_active_mutex);
+ __gthrw_(pthread_once) (&__gthread_active_once, __gthread_trigger);
+ __gthrw_(pthread_mutex_unlock) (&__gthread_active_mutex);
+ }
+
+ /* Make sure we'll never enter this block again. */
+ if (__gthread_active < 0)
+ __gthread_active = 0;
+
+ __gthread_active_latest_value = __gthread_active;
+ }
+
+ return __gthread_active_latest_value != 0;
+}
+
+#else /* not Solaris */
+
static inline int
__gthread_active_p (void)
{
@@ -117,6 +170,8 @@
return __gthread_active_ptr != 0;
}
+#endif /* Solaris */
+
#else /* not SUPPORTS_WEAK */
static inline int
diff -uNr gcc-4.2-20061031.orig/gcc/gthr-posix.h gcc-4.2-20061031/gcc/gthr-posix.h
--- gcc-4.2-20061031.orig/gcc/gthr-posix.h 2006-03-02 03:47:40.000000000 +0100
+++ gcc-4.2-20061031/gcc/gthr-posix.h 2006-11-09 10:15:11.000000000 +0100
@@ -142,6 +142,59 @@
#if SUPPORTS_WEAK && GTHREAD_USE_WEAK
+/* On Solaris 2.6 up to 9, the libc exposes a POSIX threads interface even if
+ -pthreads is not specified. The functions are dummies and most return an
+ error value. However pthread_once returns 0 without invoking the routine
+ it is passed so we cannot pretend that the interface is active if -pthreads
+ is not specified. On Solaris 2.5.1, the interface is not exposed at all so
+ we need to play the usual game with weak symbols. On Solaris 10 and up, a
+ working interface is always exposed. */
+
+#if defined(__sun) && defined(__svr4__)
+
+static volatile int __gthread_active = -1;
+
+static void
+__gthread_trigger (void)
+{
+ __gthread_active = 1;
+}
+
+static inline int
+__gthread_active_p (void)
+{
+ static pthread_mutex_t __gthread_active_mutex = PTHREAD_MUTEX_INITIALIZER;
+ static pthread_once_t __gthread_active_once = PTHREAD_ONCE_INIT;
+
+ /* Avoid reading __gthread_active twice on the main code path. */
+ int __gthread_active_latest_value = __gthread_active;
+
+ /* This test is not protected to avoid taking a lock on the main code
+ path so every update of __gthread_active in a threaded program must
+ be atomic with regard to the result of the test. */
+ if (__builtin_expect (__gthread_active_latest_value < 0, 0))
+ {
+ if (__gthrw_(pthread_once))
+ {
+ /* If this really is a threaded program, then we must ensure that
+ __gthread_active has been set to 1 before exiting this block. */
+ __gthrw_(pthread_mutex_lock) (&__gthread_active_mutex);
+ __gthrw_(pthread_once) (&__gthread_active_once, __gthread_trigger);
+ __gthrw_(pthread_mutex_unlock) (&__gthread_active_mutex);
+ }
+
+ /* Make sure we'll never enter this block again. */
+ if (__gthread_active < 0)
+ __gthread_active = 0;
+
+ __gthread_active_latest_value = __gthread_active;
+ }
+
+ return __gthread_active_latest_value != 0;
+}
+
+#else /* not Solaris */
+
static inline int
__gthread_active_p (void)
{
@@ -150,6 +203,8 @@
return __gthread_active_ptr != 0;
}
+#endif /* Solaris */
+
#else /* not SUPPORTS_WEAK */
static inline int
diff -uNr gcc-4.2-20061031.orig/gcc/Makefile.in gcc-4.2-20061031/gcc/Makefile.in
--- gcc-4.2-20061031.orig/gcc/Makefile.in 2006-10-14 03:25:39.000000000 +0200
+++ gcc-4.2-20061031/gcc/Makefile.in 2006-11-09 10:15:11.000000000 +0100
@@ -3729,9 +3729,9 @@
install-driver: installdirs xgcc$(exeext)
-rm -f $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
-$(INSTALL_PROGRAM) xgcc$(exeext) $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
- -rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-$(version)
+ -rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-$(version)$(exeext)
-( cd $(DESTDIR)$(bindir) && \
- $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-$(version) )
+ $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-$(version)$(exeext) )
-if [ -f gcc-cross$(exeext) ] ; then \
if [ -d $(DESTDIR)$(gcc_tooldir)/bin/. ] ; then \
rm -f $(DESTDIR)$(gcc_tooldir)/bin/gcc$(exeext); \
diff -uNr gcc-4.2-20061031.orig/gcc/simplify-rtx.c gcc-4.2-20061031/gcc/simplify-rtx.c
--- gcc-4.2-20061031.orig/gcc/simplify-rtx.c 2006-09-05 19:41:22.000000000 +0200
+++ gcc-4.2-20061031/gcc/simplify-rtx.c 2006-11-09 10:15:11.000000000 +0100
@@ -3747,10 +3747,10 @@
return simplify_const_relational_operation (signed_condition (code),
mode, tem, const0_rtx);
- if (flag_unsafe_math_optimizations && code == ORDERED)
+ if (! HONOR_NANS (mode) && code == ORDERED)
return const_true_rtx;
- if (flag_unsafe_math_optimizations && code == UNORDERED)
+ if (! HONOR_NANS (mode) && code == UNORDERED)
return const0_rtx;
/* For modes without NaNs, if the two operands are equal, we know the
diff -uNr gcc-4.2-20061031.orig/gcc/tree-cfgcleanup.c gcc-4.2-20061031/gcc/tree-cfgcleanup.c
--- gcc-4.2-20061031.orig/gcc/tree-cfgcleanup.c 2006-07-17 15:14:38.000000000 +0200
+++ gcc-4.2-20061031/gcc/tree-cfgcleanup.c 2006-11-09 10:15:11.000000000 +0100
@@ -160,7 +160,7 @@
/* If the last statement of the block could throw and now cannot,
we need to prune cfg. */
- tree_purge_dead_eh_edges (bb);
+ retval |= tree_purge_dead_eh_edges (bb);
if (bsi_end_p (bsi))
continue;