forked from Imagelibrary/rtems
Remove (Obsolete).
This commit is contained in:
@@ -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;
|
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user