new file mode 100644
@@ -0,0 +1,73 @@
+#*** libstdc++ for unix/-m32:
+#*** libstdc++ for unix/-m64:
+# Both of these fail because of the stl debug patch which changes line numbers.
+FAIL: 23_containers/vector/requirements/dr438/assign_neg.cc (test for errors, line 1225)
+FAIL: 23_containers/vector/requirements/dr438/assign_neg.cc (test for excess errors)
+FAIL: 23_containers/vector/requirements/dr438/constructor_1_neg.cc (test for errors, line 1155)
+FAIL: 23_containers/vector/requirements/dr438/constructor_1_neg.cc (test for excess errors)
+FAIL: 23_containers/vector/requirements/dr438/constructor_2_neg.cc (test for errors, line 1155)
+FAIL: 23_containers/vector/requirements/dr438/constructor_2_neg.cc (test for excess errors)
+FAIL: 23_containers/vector/requirements/dr438/insert_neg.cc (test for errors, line 1266)
+FAIL: 23_containers/vector/requirements/dr438/insert_neg.cc (test for excess errors)
+
+# These tests fail in trunk in all configurations.
+FAIL: gcc.dg/cproj-fails-with-broken-glibc.c execution test
+XPASS: gcc.dg/inline_3.c (test for excess errors)
+XPASS: gcc.dg/inline_4.c (test for excess errors)
+XPASS: gcc.dg/unroll_2.c (test for excess errors)
+XPASS: gcc.dg/unroll_3.c (test for excess errors)
+XPASS: gcc.dg/unroll_4.c (test for excess errors)
+FAIL: libmudflap.c++/pass55-frag.cxx ( -O) execution test
+FAIL: gcc.c-torture/execute/vshuf-v2di.c execution, -Os
+FAIL: gcc.c-torture/execute/vshuf-v8hi.c execution, -Os
+FAIL: gcc.c-torture/execute/vshuf-v16qi.c execution, -Os
+
+# These fail because we use non-standard 32-bit configuration.
+FAIL: gcc.target/i386/pr27827.c scan-assembler fmul[ \t]*%st
+FAIL: gcc.dg/pr52086.c (internal compiler error)
+FAIL: gcc.dg/pr52086.c (test for excess errors)
+
+# Failures in libitm.
+FAIL: libitm.c/stackundo.c (test for excess errors)
+UNRESOLVED: libitm.c/stackundo.c compilation failed to produce executable
+FAIL: libitm.c++/dropref.C (test for excess errors)
+UNRESOLVED: libitm.c++/dropref.C compilation failed to produce executable
+UNRESOLVED: libitm.c++/eh-1.C compilation failed to produce executable
+FAIL: libitm.c++/eh-1.C (test for excess errors)
+FAIL: libitm.c++/throwdown.C (test for excess errors)
+FAIL: libitm.c/cancel.c (test for excess errors)
+UNRESOLVED: libitm.c/cancel.c compilation failed to produce executable
+FAIL: libitm.c/clone-1.c (test for excess errors)
+UNRESOLVED: libitm.c/clone-1.c compilation failed to produce executable
+FAIL: libitm.c/dropref-2.c (test for excess errors)
+UNRESOLVED: libitm.c/dropref-2.c compilation failed to produce executable
+UNRESOLVED: libitm.c/dropref.c compilation failed to produce executable
+FAIL: libitm.c/dropref.c (test for excess errors)
+FAIL: libitm.c/memcpy-1.c (test for excess errors)
+UNRESOLVED: libitm.c/memcpy-1.c compilation failed to produce executable
+FAIL: libitm.c/memset-1.c (test for excess errors)
+UNRESOLVED: libitm.c/memset-1.c compilation failed to produce executable
+UNRESOLVED: libitm.c/notx.c compilation failed to produce executable
+FAIL: libitm.c/notx.c (test for excess errors)
+FAIL: libitm.c/reentrant.c (test for excess errors)
+UNRESOLVED: libitm.c/reentrant.c compilation failed to produce executable
+FAIL: libitm.c/simple-1.c (test for excess errors)
+UNRESOLVED: libitm.c/simple-1.c compilation failed to produce executable
+UNRESOLVED: libitm.c/simple-2.c compilation failed to produce executable
+FAIL: libitm.c/simple-2.c (test for excess errors)
+UNRESOLVED: libitm.c/txrelease.c compilation failed to produce executable
+FAIL: libitm.c/txrelease.c (test for excess errors)
+
+# These tests only fail when boehm-gc.c is enabled.
+FAIL: boehm-gc.c/thread_leak_test.c -O2 (test for excess errors)
+
+# These are flaky when tested in loaded machines (they exceed the timeout)
+flaky | FAIL: libmudflap.cth/pass40-frag.c (-O2) output pattern test
+flaky | FAIL: libmudflap.cth/pass40-frag.c (-static -DSTATIC) execution test
+flaky | FAIL: libmudflap.cth/pass40-frag.c (-O3) execution test
+flaky | FAIL: libmudflap.cth/pass40-frag.c (-static -DSTATIC) output pattern test
+flaky | FAIL: libmudflap.cth/pass40-frag.c (-O3) output pattern test
+flaky | FAIL: libmudflap.cth/pass40-frag.c execution test
+flaky | FAIL: libmudflap.cth/pass40-frag.c output pattern test
+flaky | FAIL: libmudflap.cth/pass40-frag.c (-O2) execution test
+flaky | FAIL: boehm-gc.c/gctest.c -O2 execution test
@@ -1267,6 +1267,12 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i
else
tm_file="${tm_file} i386/gnu-user.h i386/linux.h"
fi
+ # Pull in spec changes for GRTEv3 configurations.
+ case ${target} in
+ *-grtev3-*)
+ tm_file="${tm_file} linux-grtev3.h"
+ ;;
+ esac
;;
i[34567]86-*-knetbsd*-gnu)
tm_file="${tm_file} i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
@@ -1293,6 +1299,12 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
tm_file="${tm_file} linux.h i386/linux64.h"
# Assume modern glibc
default_gnu_indirect_function=yes
+ # Pull in spec changes for GRTEv3 configurations.
+ case ${target} in
+ *-grtev3-*)
+ tm_file="${tm_file} linux-grtev3.h"
+ ;;
+ esac
;;
x86_64-*-kfreebsd*-gnu)
tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
@@ -26,7 +26,7 @@ along with GCC; see the file COPYING3. If not see
#endif
#define GLIBC_DYNAMIC_LINKER RUNTIME_ROOT_PREFIX "/lib/ld-linux.so.2"
-/* These may be provided by config/linux-grtev2.h. */
+/* These may be provided by config/linux-grtev*.h. */
#ifndef LINUX_GRTE_EXTRA_SPECS
#define LINUX_GRTE_EXTRA_SPECS
#endif
@@ -35,7 +35,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define GLIBC_DYNAMIC_LINKER64 RUNTIME_ROOT_PREFIX "/lib64/ld-linux-x86-64.so.2"
#define GLIBC_DYNAMIC_LINKERX32 RUNTIME_ROOT_PREFIX "/libx32/ld-linux-x32.so.2"
-/* These may be provided by config/linux-grtev2.h. */
+/* These may be provided by config/linux-grtev*.h. */
#ifndef LINUX_GRTE_EXTRA_SPECS
#define LINUX_GRTE_EXTRA_SPECS
#endif
new file mode 100644
@@ -0,0 +1,43 @@
+/* Definitions for Linux-based GRTE (Google RunTime Environment) version 3.
+ Copyright (C) 2009,2010,2011,2012 Free Software Foundation, Inc.
+ Contributed by Chris Demetriou and Ollie Wild.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+/* Overrides LIB_SPEC from gnu-user.h. */
+#undef LIB_SPEC
+#define LIB_SPEC \
+ "%{pthread:-lpthread} \
+ %{shared:-lc} \
+ %{!shared:%{mieee-fp:-lieee} %{profile:%(libc_p)}%{!profile:%(libc)}}"
+
+/* When GRTE links statically, it needs its NSS and resolver libraries
+ linked in as well. Note that when linking statically, these are
+ enclosed in a group by LINK_GCC_C_SEQUENCE_SPEC. */
+#undef LINUX_GRTE_EXTRA_SPECS
+#define LINUX_GRTE_EXTRA_SPECS \
+ { "libc", "%{static:%(libc_static);:-lc}" }, \
+ { "libc_p", "%{static:%(libc_p_static);:-lc_p}" }, \
+ { "libc_static", \
+ "-lc -lnss_borg -lnss_cache -lnss_dns -lnss_files -lresolv" }, \
+ { "libc_p_static", \
+ "-lc_p -lnss_borg_p -lnss_cache_p -lnss_dns_p -lnss_files_p -lresolv_p" },