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