Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/gpl3/gcc/dist merge forward our changes into the GC...



details:   https://anonhg.NetBSD.org/src/rev/5067505424a9
branches:  trunk
changeset: 766344:5067505424a9
user:      mrg <mrg%NetBSD.org@localhost>
date:      Tue Jun 21 02:41:35 2011 +0000

description:
merge forward our changes into the GCC 4.5.3 tree.  mostly from chuq.

diffstat:

 external/gpl3/gcc/dist/configure                                      |   2 +-
 external/gpl3/gcc/dist/configure.ac                                   |   2 +-
 external/gpl3/gcc/dist/gcc/Makefile.in                                |   5 +-
 external/gpl3/gcc/dist/gcc/c-opts.c                                   |  10 +
 external/gpl3/gcc/dist/gcc/c.opt                                      |  10 +
 external/gpl3/gcc/dist/gcc/cfgexpand.c                                |   4 +-
 external/gpl3/gcc/dist/gcc/config.gcc                                 |  43 +++++-
 external/gpl3/gcc/dist/gcc/config/arm/t-arm                           |   2 +
 external/gpl3/gcc/dist/gcc/config/m68k/m68k.md                        |  49 +++++-
 external/gpl3/gcc/dist/gcc/config/mips/netbsd.h                       |  75 +++++++++-
 external/gpl3/gcc/dist/gcc/config/netbsd-elf.h                        |   1 +
 external/gpl3/gcc/dist/gcc/config/netbsd.h                            |  53 ++++--
 external/gpl3/gcc/dist/gcc/config/pa/milli64.S                        |   2 +-
 external/gpl3/gcc/dist/gcc/config/pa/pa.c                             |  34 ++--
 external/gpl3/gcc/dist/gcc/config/pa/pa.h                             |   2 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/netbsd.h                     |  48 ++++++
 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c                     |   2 +-
 external/gpl3/gcc/dist/gcc/config/rs6000/sysv4.h                      |  31 ++-
 external/gpl3/gcc/dist/gcc/config/rs6000/t-netbsd                     |   5 +-
 external/gpl3/gcc/dist/gcc/config/sh/t-netbsd                         |   4 +
 external/gpl3/gcc/dist/gcc/config/sparc/netbsd-elf.h                  |  13 +-
 external/gpl3/gcc/dist/gcc/config/sparc/t-netbsd64                    |  15 +-
 external/gpl3/gcc/dist/gcc/configure                                  |   5 +-
 external/gpl3/gcc/dist/gcc/configure.ac                               |   4 +-
 external/gpl3/gcc/dist/gcc/doc/cpp.texi                               |   4 +
 external/gpl3/gcc/dist/gcc/doc/cppenv.texi                            |  13 +
 external/gpl3/gcc/dist/gcc/doc/cppopts.texi                           |  16 ++
 external/gpl3/gcc/dist/gcc/doc/gcov.texi                              |   3 +-
 external/gpl3/gcc/dist/gcc/doc/invoke.texi                            |  20 +-
 external/gpl3/gcc/dist/gcc/gcc.c                                      |  37 ++++-
 external/gpl3/gcc/dist/gcc/gcc.h                                      |   1 +
 external/gpl3/gcc/dist/gcc/genemit.c                                  |   6 +-
 external/gpl3/gcc/dist/gcc/genmultilib                                |  18 +-
 external/gpl3/gcc/dist/gcc/genrecog.c                                 |   6 +-
 external/gpl3/gcc/dist/gcc/ginclude/stddef.h                          |   2 +
 external/gpl3/gcc/dist/gcc/hwint.h                                    |   2 +
 external/gpl3/gcc/dist/gcc/libgcc2.c                                  |   9 +
 external/gpl3/gcc/dist/gcc/tree-cfg.c                                 |   4 +-
 external/gpl3/gcc/dist/libcpp/Makefile.in                             |   2 +-
 external/gpl3/gcc/dist/libcpp/files.c                                 |  15 +-
 external/gpl3/gcc/dist/libcpp/include/cpplib.h                        |   3 +
 external/gpl3/gcc/dist/libcpp/init.c                                  |   2 +
 external/gpl3/gcc/dist/libcpp/internal.h                              |   3 +
 external/gpl3/gcc/dist/libcpp/lex.c                                   |   6 +-
 external/gpl3/gcc/dist/libcpp/macro.c                                 |  62 ++++++++-
 external/gpl3/gcc/dist/libiberty/floatformat.c                        |   4 +
 external/gpl3/gcc/dist/libiberty/strerror.c                           |   2 +-
 external/gpl3/gcc/dist/libobjc/hash.c                                 |   4 +-
 external/gpl3/gcc/dist/libstdc++-v3/config/os/bsd/netbsd/ctype_base.h |  22 +-
 external/gpl3/gcc/dist/libstdc++-v3/crossconfig.m4                    |  37 ++++
 50 files changed, 580 insertions(+), 144 deletions(-)

diffs (truncated from 1783 to 300 lines):

diff -r b82922499850 -r 5067505424a9 external/gpl3/gcc/dist/configure
--- a/external/gpl3/gcc/dist/configure  Tue Jun 21 02:32:55 2011 +0000
+++ b/external/gpl3/gcc/dist/configure  Tue Jun 21 02:41:35 2011 +0000
@@ -3276,7 +3276,7 @@
     ;;
   *-*-netbsd*)
     # Skip some stuff on all NetBSD configurations.
-    noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
+    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
 
     # Skip some stuff that's unsupported on some NetBSD configurations.
     case "${target}" in
diff -r b82922499850 -r 5067505424a9 external/gpl3/gcc/dist/configure.ac
--- a/external/gpl3/gcc/dist/configure.ac       Tue Jun 21 02:32:55 2011 +0000
+++ b/external/gpl3/gcc/dist/configure.ac       Tue Jun 21 02:41:35 2011 +0000
@@ -513,7 +513,7 @@
     ;;
   *-*-netbsd*)
     # Skip some stuff on all NetBSD configurations.
-    noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
+    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
 
     # Skip some stuff that's unsupported on some NetBSD configurations.
     case "${target}" in
diff -r b82922499850 -r 5067505424a9 external/gpl3/gcc/dist/gcc/Makefile.in
--- a/external/gpl3/gcc/dist/gcc/Makefile.in    Tue Jun 21 02:32:55 2011 +0000
+++ b/external/gpl3/gcc/dist/gcc/Makefile.in    Tue Jun 21 02:41:35 2011 +0000
@@ -1880,6 +1880,7 @@
 s-mlib: $(srcdir)/genmultilib Makefile
        if test @enable_multilib@ = yes \
           || test -n "$(MULTILIB_OSDIRNAMES)"; then \
+         CONFIG_SHELL="$(SHELL)" \
          $(SHELL) $(srcdir)/genmultilib \
            "$(MULTILIB_OPTIONS)" \
            "$(MULTILIB_DIRNAMES)" \
@@ -3926,7 +3927,7 @@
 # Abort if no system headers available, unless building a crosscompiler.
 # FIXME: abort unless building --without-headers would be more accurate and less ugly
 stmp-fixinc: gsyslimits.h macro_list fixinc_list \
-  $(build_objdir)/fixincludes/fixincl \
+  $(build_objdir)/fixincludes/fixincl$(build_exeext) \
   $(build_objdir)/fixincludes/fixinc.sh
        rm -rf include-fixed; mkdir include-fixed
        -chmod a+rx include-fixed
@@ -4389,6 +4390,8 @@
        lang.install-info
 
 $(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
+       @echo "NOT REBUILDING $@"
+NetBSD_DISABLED_info:
        rm -f $@
        if [ -f $< ]; then \
          for f in $(<)*; do \
diff -r b82922499850 -r 5067505424a9 external/gpl3/gcc/dist/gcc/c-opts.c
--- a/external/gpl3/gcc/dist/gcc/c-opts.c       Tue Jun 21 02:32:55 2011 +0000
+++ b/external/gpl3/gcc/dist/gcc/c-opts.c       Tue Jun 21 02:41:35 2011 +0000
@@ -160,12 +160,14 @@
       error ("macro name missing after %qs", opt);
       break;
 
+    case OPT_cxx_isystem:
     case OPT_F:
     case OPT_I:
     case OPT_idirafter:
     case OPT_isysroot:
     case OPT_isystem:
     case OPT_iquote:
+    case OPT_iremap:
       error ("missing path after %qs", opt);
       break;
 
@@ -564,6 +566,10 @@
        set_std_cxx98 (true);
       break;
 
+    case OPT_cxx_isystem:
+      add_path (xstrdup (arg), SYSTEM, 1, true);
+      break;
+
     case OPT_d:
       handle_OPT_d (arg);
       break;
@@ -879,6 +885,10 @@
       add_path (xstrdup (arg), SYSTEM, 0, true);
       break;
 
+    case OPT_iremap:
+      add_cpp_remap_path (arg);
+      break;
+
     case OPT_iwithprefix:
       add_prefixed_path (arg, SYSTEM);
       break;
diff -r b82922499850 -r 5067505424a9 external/gpl3/gcc/dist/gcc/c.opt
--- a/external/gpl3/gcc/dist/gcc/c.opt  Tue Jun 21 02:32:55 2011 +0000
+++ b/external/gpl3/gcc/dist/gcc/c.opt  Tue Jun 21 02:41:35 2011 +0000
@@ -520,6 +520,12 @@
 C ObjC C++ ObjC++
 A synonym for -std=c89 (for C) or -std=c++98 (for C++)
 
+; This should really just be C++/ObjC++ but we (NetBSD) use it when
+; calling C and ObjC compilers as well.
+cxx-isystem
+C ObjC C++ ObjC++ Joined Separate
+-cxx-isystem <dir>     Add <dir> to the start of the C++ system include path
+
 d
 C ObjC C++ ObjC++ Joined
 ; Documented in common.opt.  FIXME - what about -dI, -dD, -dN and -dD?
@@ -904,6 +910,10 @@
 C ObjC C++ ObjC++ Joined Separate
 -iquote <dir>  Add <dir> to the end of the quote include path
 
+iremap
+C ObjC C++ ObjC++ Joined Separate
+-iremap <src:dst>      Convert <src> to <dst> if it occurs as prefix in __FILE__.
+
 iwithprefix
 C ObjC C++ ObjC++ Joined Separate
 -iwithprefix <dir>     Add <dir> to the end of the system include path
diff -r b82922499850 -r 5067505424a9 external/gpl3/gcc/dist/gcc/cfgexpand.c
--- a/external/gpl3/gcc/dist/gcc/cfgexpand.c    Tue Jun 21 02:32:55 2011 +0000
+++ b/external/gpl3/gcc/dist/gcc/cfgexpand.c    Tue Jun 21 02:41:35 2011 +0000
@@ -1080,7 +1080,9 @@
          else
            len = tree_low_cst (TYPE_SIZE_UNIT (type), 1);
 
-         if (len < max)
+         if (len == 0)
+           ret = SPCT_HAS_ARRAY;
+         else if (len < max)
            ret = SPCT_HAS_SMALL_CHAR_ARRAY | SPCT_HAS_ARRAY;
          else
            ret = SPCT_HAS_LARGE_CHAR_ARRAY | SPCT_HAS_ARRAY;
diff -r b82922499850 -r 5067505424a9 external/gpl3/gcc/dist/gcc/config.gcc
--- a/external/gpl3/gcc/dist/gcc/config.gcc     Tue Jun 21 02:32:55 2011 +0000
+++ b/external/gpl3/gcc/dist/gcc/config.gcc     Tue Jun 21 02:41:35 2011 +0000
@@ -720,6 +720,9 @@
 arm*-*-netbsdelf*)
        tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h arm/netbsd-elf.h"
        tmake_file="${tmake_file} arm/t-arm arm/t-netbsd"
+       case ${target} in
+       armeb*) tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=MASK_BIG_END" ;;
+       esac
        ;;
 arm*-*-netbsd*)
        tm_file="arm/aout.h arm/arm.h netbsd.h netbsd-aout.h arm/netbsd.h"
@@ -956,6 +959,12 @@
            tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
        fi
        ;;
+hppa*-*-netbsd* | parisc*-*-netbsd*)
+       target_cpu_default="MASK_PA_11"
+       tm_file="${tm_file} dbxelf.h elfos.h svr4.h netbsd.h netbsd-elf.h \
+                pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
+       tmake_file="${tmake_file} pa/t-netbsd"
+       ;;
 # port not yet contributed.
 #hppa*-*-openbsd*)
 #      target_cpu_default="MASK_PA_11"
@@ -1129,7 +1138,7 @@
        ;;
 x86_64-*-netbsd*)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
-       tmake_file="${tmake_file} i386/t-crtstuff"
+       tmake_file="${tmake_file} i386/t-netbsd64"
        ;;
 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
        tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h"
@@ -1468,6 +1477,12 @@
        fi
        extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
        ;;
+ia64*-*-netbsd*)
+       tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h ia64/sysv4.h ia64/netbsd.h"
+       target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
+       tmake_file="${tmake_file} ia64/t-ia64"
+       extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
+       ;;
 ia64*-*-freebsd*)
        tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
        target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
@@ -1733,6 +1748,16 @@
          "":yes | yes:yes ) thread_file=posix ;;
        esac
        ;;
+mips64*-*-netbsd*)                     # NetBSD/mips64, either endian.
+       target_cpu_default="MASK_ABICALLS|MASK_64BIT|MASK_FLOAT64"
+       tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h mips/netbsd64.h"
+       tmake_file="${tmake_file} mips/t-netbsd64"
+#      tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
+       tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
+#      tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"mips64\\\""
+       gnu_ld=yes
+       gas=yes
+       ;;
 mips*-*-netbsd*)                       # NetBSD/mips, either endian.
        target_cpu_default="MASK_ABICALLS"
        tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
@@ -1949,10 +1974,19 @@
        tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
        extra_options="${extra_options} rs6000/sysv4.opt"
        ;;
-powerpc-*-netbsd*)
-       tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
+powerpc*-*-netbsd*)
+       tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h"
+       case ${target} in
+         powerpc64*)
+           tm_file="rs6000/biarch64.h ${tm_file} rs6000/default64.h rs6000/netbsd64.h"
+           tmake_file="${tmake_file} rs6000/t-netbsd64"
+           ;;
+         *)
+           tm_file="${tm_file} rs6000/netbsd.h"
        tmake_file="${tmake_file} rs6000/t-netbsd"
-       extra_options="${extra_options} rs6000/sysv4.opt"
+           ;;
+       esac
+       extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
        ;;
 powerpc-*-eabispe*)
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabispe.h"
@@ -2489,6 +2523,7 @@
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
        tmake_file="${tmake_file} sparc/t-netbsd64"
+       with_cpu=ultrasparc
        ;;
 spu-*-elf*)
        tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
diff -r b82922499850 -r 5067505424a9 external/gpl3/gcc/dist/gcc/config/arm/t-arm
--- a/external/gpl3/gcc/dist/gcc/config/arm/t-arm       Tue Jun 21 02:32:55 2011 +0000
+++ b/external/gpl3/gcc/dist/gcc/config/arm/t-arm       Tue Jun 21 02:41:35 2011 +0000
@@ -41,6 +41,8 @@
 
 $(srcdir)/config/arm/arm-tune.md: $(srcdir)/config/arm/gentune.sh \
        $(srcdir)/config/arm/arm-cores.def
+       @echo "NOT REBUILDING $@"
+NetBSD_DISABLED_config_arm_arm-tune.md:
        $(SHELL) $(srcdir)/config/arm/gentune.sh \
                $(srcdir)/config/arm/arm-cores.def > \
                $(srcdir)/config/arm/arm-tune.md
diff -r b82922499850 -r 5067505424a9 external/gpl3/gcc/dist/gcc/config/m68k/m68k.md
--- a/external/gpl3/gcc/dist/gcc/config/m68k/m68k.md    Tue Jun 21 02:32:55 2011 +0000
+++ b/external/gpl3/gcc/dist/gcc/config/m68k/m68k.md    Tue Jun 21 02:41:35 2011 +0000
@@ -3116,16 +3116,33 @@
 ;; We need a separate DEFINE_EXPAND for u?mulsidi3 to be able to use the
 ;; proper matching constraint.  This is because the matching is between
 ;; the high-numbered word of the DImode operand[0] and operand[1].
+;;
+;; Note: life_analysis() does not keep track of the individual halves of the
+;; DImode register.  To prevent spurious liveness before the u?mulsidi3 insn
+;; (which causes "uninitialized variable" warnings), we explicitly clobber
+;; the DImode register.
 (define_expand "umulsidi3"
-  [(parallel
-    [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 4)
-         (mult:SI (match_operand:SI 1 "register_operand" "")
-                  (match_operand:SI 2 "register_operand" "")))
+  [(set (match_operand:DI 0 "register_operand" "")
+       (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" ""))
+                (zero_extend:DI (match_operand:SI 2 "register_operand" ""))))]
+  "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
+  "")
+
+(define_insn_and_split "*umulsidi3_split"
+  [(set (match_operand:DI 0 "register_operand" "")
+       (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" ""))
+                (zero_extend:DI (match_operand:SI 2 "register_operand" ""))))]
+  "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
+  "#"
+  "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
+  [(clobber (match_dup 0))
+   (parallel
+    [(set (subreg:SI (match_dup 0) 4)
+         (mult:SI (match_dup 1) (match_dup 2)))
      (set (subreg:SI (match_dup 0) 0)
          (truncate:SI (lshiftrt:DI (mult:DI (zero_extend:DI (match_dup 1))
                                             (zero_extend:DI (match_dup 2)))
                                    (const_int 32))))])]
-  "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
   "")
 
 (define_insn ""
@@ -3156,15 +3173,27 @@
   "mulu%.l %2,%3:%0")
 
 (define_expand "mulsidi3"
-  [(parallel
-    [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 4)
-         (mult:SI (match_operand:SI 1 "register_operand" "")
-                  (match_operand:SI 2 "register_operand" "")))
+  [(set (match_operand:DI 0 "register_operand" "")
+       (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" ""))
+                (sign_extend:DI (match_operand:SI 2 "register_operand" ""))))]
+  "TARGET_68020 && !TUNE_68060 && !TARGET_COLDFIRE"
+  "")
+
+(define_insn_and_split "*mulsidi3_split"
+  [(set (match_operand:DI 0 "register_operand" "")



Home | Main Index | Thread Index | Old Index