open_issues/gcc: 2a3496bebfe9d89f11d0b7a591afac55e11d5263 (2013-06-06; 3a930d3fc68785...
[hurd-web.git] / open_issues / gcc.mdwn
index 3aa7b63..d8a8cd5 100644 (file)
@@ -37,8 +37,8 @@ git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefi
 
 -->
 
-Last reviewed up to the [[Git mirror's 0479dc77cf50ee78769b55563051cf72d39b3d60
-(2013-05-27) sources|source_repositories/gcc]].
+Last reviewed up to the [[Git mirror's 3a930d3fc68785662f5f3f4af02474cb21a62056
+(2013-06-06) sources|source_repositories/gcc]].
 
 <http://gcc.gnu.org/install/configure.html> has documentation for the
 `configure` switches.
@@ -48,20 +48,247 @@ Last reviewed up to the [[Git mirror's 0479dc77cf50ee78769b55563051cf72d39b3d60
 
       * `configure.ac`
 
-      * `libgomp/configure.tgt`
+      * `libstdc++-v3`
 
-      * `libstdc++-v3/configure.host`
+          * `configure.host`
 
-        `abi_baseline_pair` etc. setting.
+            `abi_baseline_pair` etc. setting.  `config/abi/post/*-linux-gnu`.
+            TODO.
 
-      * `libstdc++-v3/config/os/gnu-linux/*`
+          * `config/os/gnu-linux`
 
-        Is used for all GNU systems, as per `libstdc++-v3/configure.host`.
-        Should rename to `gnu-user` to reflect this?
+            Is used for all GNU systems, as per `configure.host`.  Should
+            rename to `gnu-user` to reflect this?  TODO.
 
       * `gcc/acinclude.m4`:`gcc_GAS_FLAGS`: always pass `--32` to assembler for
         x86 Linux.  (Why?)
 
+      * `lib-prefix.m4` (present twice in GCC sources) contains one remaining
+        `linux`-only case.
+
+      * `libjava`
+
+        TODO:
+
+            classpath/include/jni_md-x86-linux-gnu.h
+
+        See below (`log_build`).
+
+            Makefile.am:## _GNU_SOURCE defined for some Linux builds.  It doesn't hurt to
+            Makefile.am:## always define it.  Some systems, including Linux, need
+            Makefile.am:# certain linuxthread functions get linked:
+            Makefile.am:## This is specific to Linux/{Free,Net,Open}BSD/Hurd and perhaps few others.
+            Makefile.am:  $(mkinstalldirs) $(DESTDIR)$(SDK_INCLUDE_DIR)/linux; \
+            Makefile.am:      $(DESTDIR)$(SDK_INCLUDE_DIR)/linux); \
+            Makefile.am:      $(DESTDIR)$(SDK_INCLUDE_DIR)/linux/$$headername.h; \
+            classpath/NEWS:  the epoll notification mechanism on Linux 2.6.
+            classpath/config.rpath:    linux* | k*bsd*-gnu)
+            classpath/config.rpath:    gnu* | linux* | k*bsd*-gnu)
+            classpath/config.rpath:  linux*oldld* | linux*aout* | linux*coff*)
+            classpath/config.rpath:  linux* | k*bsd*-gnu)
+            classpath/configure.ac:    *linux*)
+            classpath/configure.ac:    target_os=linux-gnu 
+            classpath/configure.ac:    AC_MSG_WARN(no, using x86-linux-gnu)
+            classpath/doc/cp-vmintegration.texinfo:has been primarily tested against Linux and lacks garbage collections, a
+            classpath/doc/cp-vmintegration.texinfo:Linux and Windows 2000.  As of June, 2004, it does not appear that ORP
+            classpath/doc/cp-vmintegration.texinfo:This is a free Java Virtual Machine that is being developed on GNU/Linux
+            classpath/doc/cp-vmintegration.texinfo:Runs on the x86 and PowerPC architectures, on the AIX, Linux, and Mac
+            classpath/gnu/classpath/SystemProperties.java:        && "Linux".equals(defaultProperties.get("os.name")))
+            classpath/gnu/java/nio/EpollSelectorImpl.java: * notification mechanism on GNU/Linux.
+            classpath/java/io/File.java:   * <strong>Implementation note</strong>: Unlike the RI, on Linux and UNIX
+            classpath/java/net/MimeTypeMapper.java:        // On Linux this usually means /etc/mime.types.
+            classpath/ltcf-cxx.sh:  linux*)
+            classpath/ltcf-cxx.sh:    linux*)
+            classpath/ltconfig:# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+            classpath/ltconfig:linux-gnu*) ;;
+            classpath/ltconfig:linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:    version_type=linux
+            classpath/ltconfig:# No shared lib support for Linux oldld, aout, or coff.
+            classpath/ltconfig:linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+            classpath/ltconfig:# This must be Linux ELF.
+            classpath/ltconfig:linux-gnu*)
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:  # powerpc, because MkLinux only supported shared libraries with the
+            classpath/ltconfig:  # most powerpc-linux boxes support dynamic linking these days and
+            classpath/ltconfig:  # assume the GNU/Linux dynamic linker is in use.
+            classpath/ltconfig:  dynamic_linker='GNU/Linux ld.so'
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:  dynamic_linker='GNU/Linux ld.so'
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:  version_type=linux
+            classpath/ltconfig:    version_type=linux
+            classpath/ltmain.sh:#         compiler flags:              $LTCFLAGS
+            classpath/ltmain.sh:         *-*-linux*)
+            classpath/ltmain.sh:         darwin|linux|osf|windows|none)
+            classpath/ltmain.sh:         # Like Linux, but with the current version available in
+            classpath/ltmain.sh:       linux)
+            classpath/m4/lib-link.m4:              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
+            classpath/m4/lib-link.m4:                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+            classpath/m4/lib-link.m4:                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
+            classpath/m4/lib-link.m4:                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+            classpath/m4/lib-prefix.m4:    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
+            classpath/m4/lib-prefix.m4:              linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+            classpath/m4/lib-prefix.m4:            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+            classpath/m4/lib-prefix.m4:    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
+            classpath/m4/lib-prefix.m4:              linux*) haveit=yes;;
+            classpath/m4/lib-prefix.m4:            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+            classpath/m4/lib-prefix.m4:  dnl On glibc systems, the current practice is that on a system supporting
+            classpath/native/jni/java-net/javanet.c:      /* Not writable on Linux */
+            classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c: * vector based read call (currently readv on Linux).
+            classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c: * vector based read call (currently readv on Linux).
+            classpath/vm/reference/java/lang/VMProcess.java:  // Linux use a process-per-thread model, which means the same thread
+
+            configure.ac:     *-*-linux*)
+            configure.ac: AC_DEFINE(LINUX_THREADS, 1, [Define if using POSIX threads on Linux.])
+            include/config.h.in:/* Define if using POSIX threads on Linux. */
+            include/config.h.in:#undef LINUX_THREADS
+            include/posix-threads.h:# ifdef LOCK_DEBUG /* Assumes Linuxthreads */
+            include/posix-threads.h:#ifndef LINUX_THREADS
+            include/posix-threads.h:// pthread_mutex_destroy does nothing on Linux and it is a win to avoid
+            include/posix-threads.h:#endif /* LINUX_THREADS */
+            include/posix-threads.h:      // For linux_threads this is really a pointer to its thread data
+            include/posix-threads.h:// E.g. on X86 Linux, pthread_self() is too slow for our purpose.
+            include/posix-threads.h:// This code should probably go away when Linux/X86 starts using a
+            posix-threads.cc:#if defined(LINUX_THREADS) || defined(FREEBSD_THREADS)
+            posix-threads.cc:  // LinuxThreads (prior to glibc 2.1) usurps both SIGUSR1 and SIGUSR2.
+            posix-threads.cc:#else /* LINUX_THREADS */
+            posix-threads.cc:#endif /* LINUX_THREADS */
+            posix-threads.cc:      // In older glibc's (prior to 2.1.3), the cond_wait functions may 
+            posix-threads.cc:  // glibc 2.1.3 doesn't set the value of `thread' until after start_routine
+
+            configure.ac:      # We can save a little space at runtime if the mutex has m_count
+            configure.ac:      # or __m_count.  This is a nice hack for Linux.
+            configure.ac:      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]], [[
+            configure.ac:          extern pthread_mutex_t *mutex; int q = mutex->m_count;
+
+        Makes sense to implement in our [[/libpthread]] ([[!taglink
+        open_issue_libpthread]])?
+
+            configure.ac: i?86-*-linux*)
+            configure.ac:    SIGNAL_HANDLER=include/i386-signal.h
+            configure.ac:    SIGNAL_HANDLER_AUX=include/x86_64-signal.h
+            include/i386-signal.h:// on an i386 based Linux system.
+            include/i386-signal.h:   directly rather than via glibc.  The sigaction structure that the
+            include/i386-signal.h: * called _directly_ by the kernel, because linuxthreads wraps signal
+            include/i386-signal.h: * handler to a linuxthreads wrapper, we will lose the PC adjustment
+            include/i386-signal.h: * Also, there may not be any unwind info in the linuxthreads
+
+            configure.ac:      *-linux*)
+            configure.ac:        host_os=linux;;
+
+            configure.host:  i[34567]86*-linux* | \
+            configure.host:    can_unwind_signal=yes
+            configure.host:    libgcj_ld_symbolic='-Wl,-Bsymbolic'
+            configure.host:    if test x$slow_pthread_self = xyes \
+            configure.host:       [...]
+            configure.host:  i[34567]86*-kfreebsd*-gnu | x86_64*-kfreebsd*-gnu)
+            configure.host:        libgcj_ld_symbolic='-Wl,-Bsymbolic'
+            configure.host:        slow_pthread_self=
+
+            java/lang/natObject.cc:// What follows currenly assumes a Linux-like platform.
+            java/lang/natObject.cc:// Some of it specifically assumes X86 or IA64 Linux, though that
+            java/lang/natObject.cc:#   define INVALID_THREAD_ID 0  // Works for Linux?
+            java/lang/natObject.cc:  const unsigned MIN_SLEEP_USECS = 2001; // Shorter times spin under Linux.
+            java/lang/natVMClassLoader.cc:      // a module named (eg, on Linux) `lib-gnu-pkg-quux.so', followed
+
+            libltdl/acinclude.m4:x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+            libltdl/acinclude.m4:        x86_64-*linux*)
+            libltdl/acinclude.m4:        ppc64-*linux*|powerpc64-*linux*)
+            libltdl/acinclude.m4:          LD="${LD-ld} -m elf32ppclinux"
+            libltdl/acinclude.m4:        s390x-*linux*)
+            libltdl/acinclude.m4:        sparc64-*linux*)
+            libltdl/acinclude.m4:        x86_64-*linux*)
+            libltdl/acinclude.m4:        ppc*-*linux*|powerpc*-*linux*)
+            libltdl/acinclude.m4:        s390*-*linux*)
+            libltdl/acinclude.m4:        sparc*-*linux*)
+            libltdl/acinclude.m4:    # Under GNU Hurd, this test is not required because there is
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:              version_type=linux
+            libltdl/acinclude.m4:# No shared lib support for Linux oldld, aout, or coff.
+            libltdl/acinclude.m4:linux*oldld* | linux*aout* | linux*coff*)
+            libltdl/acinclude.m4:# This must be Linux ELF.
+            libltdl/acinclude.m4:linux*)
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:  # powerpc, because MkLinux only supported shared libraries with the
+            libltdl/acinclude.m4:  # most powerpc-linux boxes support dynamic linking these days and
+            libltdl/acinclude.m4:  # assume the GNU/Linux dynamic linker is in use.
+            libltdl/acinclude.m4:  dynamic_linker='GNU/Linux ld.so'
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:    version_type=linux
+            libltdl/acinclude.m4:  version_type=linux
+            libltdl/acinclude.m4:# This must be Linux ELF.
+            libltdl/acinclude.m4:linux*)
+            libltdl/acinclude.m4:  linux*)
+            libltdl/acinclude.m4:linux*)
+            libltdl/acinclude.m4:      linux*)
+            libltdl/acinclude.m4:          # Linux and Compaq Tru64 Unix objects are PIC.
+            libltdl/acinclude.m4:          # Linux and Compaq Tru64 Unix objects are PIC.
+            libltdl/acinclude.m4:    linux*)
+            libltdl/acinclude.m4:    linux*)
+            libltdl/acinclude.m4:  gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
+            libltdl/acinclude.m4:    # GNU and its variants, using gnu ld.so (Glibc)
+            libltdl/ltmain.sh:   darwin|linux|osf|windows)
+            libltdl/ltmain.sh:   # Like Linux, but with the current version available in
+            libltdl/ltmain.sh: linux)
+            shlibpath.m4:  version_type=linux
+            shlibpath.m4:  version_type=linux
+            shlibpath.m4:  version_type=linux
+            shlibpath.m4:  version_type=linux
+            shlibpath.m4:  version_type=linux
+            shlibpath.m4:              version_type=linux
+            shlibpath.m4:# No shared lib support for Linux oldld, aout, or coff.
+            shlibpath.m4:linux*oldld* | linux*aout* | linux*coff*)
+            shlibpath.m4:# This must be Linux ELF.
+            shlibpath.m4:linux*|k*bsd*-gnu)
+            shlibpath.m4:  version_type=linux
+            shlibpath.m4:  # powerpc, because MkLinux only supported shared libraries with the
+            shlibpath.m4:  # most powerpc-linux boxes support dynamic linking these days and
+            shlibpath.m4:  # assume the GNU/Linux dynamic linker is in use.
+            shlibpath.m4:  dynamic_linker='GNU/Linux ld.so'
+            shlibpath.m4:  version_type=linux
+            shlibpath.m4:  version_type=linux
+            shlibpath.m4:  version_type=linux
+            shlibpath.m4:  version_type=linux
+            shlibpath.m4:    version_type=linux
+            shlibpath.m4:  version_type=linux
+
+            testsuite/lib/libjava.exp:    if { [regexp "linux" $target_triplet] } {
+
+        Adds `-specs=libgcj-test.spec`, which is created by `configure`.  *This
+        spec file is read by gcj when linking.  It is only used by the testing
+        harnesses (in libjava and gdb).*  TODO.  [[!taglink open_issue_gdb]].
+
+      * `libgcc`
+
+        TODO:
+
+          * `config/t-linux`
+          * `config/i386/t-linux`
+          * `config/i386/linux-unwind.h`
+
+      * `libitm`
+
+        TODO:
+
+          * `libitm/config/linux`
+
   * `hurd/usr`
 
     `NATIVE_SYSTEM_HEADER_DIR`, `638454a19c1c08f01c10517bc72a114250fc4f33`,
@@ -94,10 +321,13 @@ Last reviewed up to the [[Git mirror's 0479dc77cf50ee78769b55563051cf72d39b3d60
       * Might `-fsplit-stack` be useful for us with respect to our
         [[multithreaded|multithreading]] libraries?
 
-  * `--enable-languages=[...]`
+  * `gcc/ada`, `gcc/testsuite/ada`, `gcc/testsuite/gnat.dg`, `gnattools`,
+    `libada` (not reviewed)
 
       * [[Ada (GNAT)|GNAT]] support is work in progress.
 
+  * `gcc/go`, `gcc/testsuite/go.test`, `libgo` (not reviewed)
+
       * The [[Google Go's libgo|gccgo]] (introduced in
         e440a3286bc89368b8d3a8fd6accd47191790bf2 (2010-12-03)) needs
         OS configuration / support.
@@ -153,8 +383,6 @@ Last reviewed up to the [[Git mirror's 0479dc77cf50ee78769b55563051cf72d39b3d60
     buildable out of the box)?  See also
     73905b5de0d9a086f22ded7638bb1c0ae1b91326.
 
-  * Various testsuite bits should include `*-*-gnu*`, too.
-
   * [low] [[toolchain/cross-gnu]] toolchain bootstrap vs. `fenv.h` in libgcc's
     libbid:
 
@@ -303,40 +531,18 @@ Last reviewed up to the [[Git mirror's 0479dc77cf50ee78769b55563051cf72d39b3d60
     "20110609002620.GA16719@const.famille.thibault.fr"]].  commit
     026e608ecebcb2a6193971006a85276307d79b00.
 
-  * 549e2197b118efb2d947aaa15d445b05c1b5ed62 `Import the asan runtime library
-    into GCC tree`.  Linux-specific things:
-    `ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX`, `ASAN_LINUX`, `ASAN_POSIX`,
-    `libsanitizer/asan/asan_linux.cc`,
-    `libsanitizer/asan/asan_malloc_linux.cc`,
-    `libsanitizer/asan/asan_posix.cc`,
-    `libsanitizer/interception/interception.h`,
-    `libsanitizer/interception/interception_linux.cc`,
-    `libsanitizer/interception/interception_linux.h`,
-    `libsanitizer/sanitizer_common/sanitizer_allocator.cc`,
-    `libsanitizer/sanitizer_common/sanitizer_linux.cc`,
-    `libsanitizer/sanitizer_common/sanitizer_posix.cc`,
-    `libsanitizer/sanitizer_common/sanitizer_procmaps.h`,
-    `libsanitizer/sanitizer_common/sanitizer_symbolizer_linux.cc`.
-    4afab99bf0fe2d6905a9fa9d6ab886ca102312df `Enable libsanitizer just on x86
-    linux for now`.  492e75a7336b4dbfe38207ea3abf8d5bd72376a9 `Move
-    libsanitizer configure logic to subdirectory`.
-    6aea389d84c2172668af5f108e2b17e131120d0b `Add STATIC_LIBASAN_LIBS for
-    -static-libasan`.  Further commits later on.
-
-      * 9cf754572854d9d9cd43c277eb7afb12e4911358 `Import tsan runtime from
-        llvm`.  Linux-specific things: `libsanitizer/tsan/tsan_platform.h`,
-        `libsanitizer/tsan/tsan_platform_linux.cc`,
-        `libsanitizer/tsan/tsan_symbolize_addr2line_linux.cc`.
-        a96132f29aa3dfe94141a87537f62ea73ce0fc19 `Set TSAN_SUPPORTED=yes for
-        x86_64/i686-linux for 64-bit multilib`.  Further commits later on.
+  * [[`libsanitizer`|_san]] (not reviewed)
+
+    A lot of Linux-specific things.
+
+
 
 
 # Build
 
 Here's a log of a GCC build run; this is from our [[Git repository's
-dcdba5abca23716daa6aeb5c92f367e0978e4539 (2013-05-27;
-0479dc77cf50ee78769b55563051cf72d39b3d60 (2013-05-27)), plus
-`id:"87txlnlg0z.fsf@kepler.schwinge.homeip.net"`
+2a3496bebfe9d89f11d0b7a591afac55e11d5263 (2013-06-06;
+3a930d3fc68785662f5f3f4af02474cb21a62056 (2013-06-06))
 sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE.
 
     $ export LC_ALL=C
@@ -349,10 +555,11 @@ sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE.
 Different hosts may default to different shells and compiler versions; thus
 harmonized.
 
-We're stuck with GCC 4.6 until there are Debian *gnat-4.7* packages avaible.
+We're stuck with GCC 4.6 until there are Debian *gnat-4.7*/*gnat-4.8* packages
+avaible.
 
-This takes up around 3.5 GiB, and needs roughly 3.5 h on kepler.SCHWINGE and 15
-h on coulomb.SCHWINGE.
+This takes up around 3.5 GiB, and needs roughly 3.5 h on kepler.SCHWINGE and
+15.25 h on coulomb.SCHWINGE.
 
 <!--
 
@@ -370,7 +577,9 @@ h on coulomb.SCHWINGE.
 
     Addressed in Debian glibc.
 
-  * `host-linux.c` vs. `host-default.c`
+  * `gcc/config/host-linux.c` vs. `host-default.c`
+
+      * `gcc/config/x-linux`
 
   * *fixincludes* stuff
 
@@ -382,15 +591,16 @@ h on coulomb.SCHWINGE.
     Comes from `gcc/config.gcc`: `i386/t-pmm_malloc` vs. `i386/t-gmm_malloc`
     for `i[34567]86-*-linux*` vs. `i[34567]86-*-*`.
 
-  * *libgomp*
+  * `libgomp`
 
-      * `libgomp/config/linux/`, `libgomp/config/linux/x86`
+      * `libgomp/config/linux`, `libgomp/config/linux/x86`
 
-    `sed`ed away.
+    `sed`ed away in `log_build*`.  TODO.
 
-      * `-ftls-model=initial-exec -march=i486 -mtune=i686`
+      * `-march=i486 -mtune=i686`
 
-    `sed`ed away.
+    `sed`ed away in `log_build*`.  This comes from `libgomp/configure.tgt`,
+    where this is added to `XCFLAGS` for `i[456]86-*-linux*` only.  TODO?
 
   * Missing `EOWNERDEAD`, `ENOTRECOVERABLE`.  What're they used for?
 
@@ -592,10 +802,10 @@ coulomb.SCHWINGE:
     $ make -k check-target 2>&1 | tee log_test_4_check-target
     [...]
 
-This needs roughly 7.25 h on kepler.SCHWINGE and 3.5 h (`check-fixincludes`,
-`gcc/check-ada`) + 14 h (`gcc/check-c`) + 4.5 h (`gcc/check-c++`) + 6 h
+This needs roughly 7.5 h on kepler.SCHWINGE and 3.75 h (`check-fixincludes`,
+`gcc/check-ada`) + 14 h (`gcc/check-c`) + 4.5 h (`gcc/check-c++`) + 7.25 h
 (`gcc/check-fortran`, `gcc/check-java`, `gcc/check-lto`, `gcc/check-objc`) +
-9.75 h (`check-intl`, [...], `check-lto-plugin`, `check-target`) = 37.75 h on
+10.25 h (`check-intl`, [...], `check-lto-plugin`, `check-target`) = 39.75 h on
 coulomb.SCHWINGE.
 
 
@@ -611,34 +821,380 @@ coulomb.SCHWINGE.
 
     TODO.
 
-  * As of b401cb7ed15602d244a6807835b0b9d740a302a8 (2012-11-26;
-    769bf18a20ee2540ca7601cdafabd62b18b9751b (2012-10-01)), all
-    `gcc.dg/guality` and `g++.dg/guality` and a few more are no longer tested
-    on coulomb.SCHWINGE and kepler.SCHWINGE.
+  * Some are correctly UNSUPPORTED:
+
+      * [[IFUNC]]
+
+        Also multiversioning, `g++.dg/ext/mv*`, for example (several of which
+        started FAILing (ICE) on kepler.SCHWINGE).
+
+      * SSE2 (`sse2_runtime`)
+
+        `g++.dg/other/i386-1.C`, `g++.dg/other/pr40446.C`,
+        `g++.dg/other/pr49133.C`, `gcc.dg/compat/union-m128-1_main.c`,
+        `gcc.dg/compat/vector-1a_main.c`, `gcc.dg/compat/vector-2a_main.c`,
+        `gcc.dg/pr36584.c`, `gcc.dg/pr37544.c`, `gcc.dg/torture/pr16104-1.c`,
+        `gcc.dg/torture/pr35771-1.c`, `gcc.dg/torture/pr50444.c`,
+        `gcc.dg/torture/stackalign/alloca-2.c`,
+        `gcc.dg/torture/stackalign/alloca-3.c`,
+        `gcc.dg/torture/stackalign/push-1.c`,
+        `gcc.dg/torture/stackalign/vararg-3.c`, `gcc.target/i386/pr39315-2.c`,
+        `gcc.target/i386/pr39315-4.c`, `gcc.target/i386/pr44948-2a.c`,
+        `gcc.target/i386/pr46880.c`, `gcc.target/i386/pr52736.c`,
+        `gcc.target/i386/pr54703.c`, `gcc.target/i386/sse2-extract-1.c`,
+        several from `gfortran.fortran-torture`
+
+      * [[`asan.exp`|_san]]
+
+      * missing profiling C library (`-lc_p`)
+
+        `g++.old-deja/g++.law/profile1.C`, `gcc.dg/20021014-1.c`,
+        `gcc.dg/nest.c`, `gcc.dg/nested-func-4.c`, `gcc.dg/pr32450.c`,
+        `gcc.dg/pr43643.c`
+
+      * other C libraries
+
+        `gcc.target/i386/long-double-64-2.c`,
+        `gcc.target/i386/long-double-80-3.c`
+
+  * `gcc`
+
+        spawn [open ...]
+        FAIL: gcc.dg/split-2.c execution test
+
+        FAIL: gcc.dg/split-5.c execution test
+
+    TODO.
+
+        xgcc: internal compiler error: Aborted (program cc1)
+        libbacktrace could not find executable to open
+        Please submit a full bug report, [...]
+        FAIL: largefile.c  -O0 -g -I. -Dwith_PCH (internal compiler error)
+        [...]
+
+    TODO.
+
+  * `g++`
+
+        spawn [open ...]
+        terminate called after throwing an instance of 'int'
+        FAIL: g++.dg/eh/sighandle.C -std=gnu++98 execution test
+
+        FAIL: g++.dg/eh/sighandle.C -std=gnu++11 execution test
+
+    TODO.
+
+        spawn [open ...]
+        FAIL: g++.dg/cdce3.C -std=gnu++98 execution test
+
+        FAIL: g++.dg/cdce3.C -std=gnu++11 execution test
+
+    TODO.
+
+        FAIL: g++.dg/tls/thread_local3.C -std=gnu++11 execution test
+        FAIL: g++.dg/tls/thread_local3g.C -std=gnu++11 execution test
+        FAIL: g++.dg/tls/thread_local4.C -std=gnu++11 execution test
+        FAIL: g++.dg/tls/thread_local4g.C -std=gnu++11 execution test
+        FAIL: g++.dg/tls/thread_local5.C -std=gnu++11 execution test
+        FAIL: g++.dg/tls/thread_local5g.C -std=gnu++11 execution test
+
+    They used to PASS, but FAIL as of
+    769bf18a20ee2540ca7601cdafabd62b18b9751b..be3860ba8df48cca3253da4f02fd2d42d856ce80.
+    TODO.
+
+        -PASS: g++.dg/vect/pr36648.cc -std=c++98 execution test
+        -PASS: g++.dg/vect/pr36648.cc -std=c++11 execution test
+
+    On kepler.SCHWINGE, executables are generated (and run), on
+    coulomb.SCHWINGE only assembler code is generated.  TODO.  Likewise for
+    execution tests from `gcc.dg/vect` and `gfortran.dg/vect`.
+
+  * `gcc`, `g++`
+
+        FAIL: gcc.dg/cleanup-10.c execution test
+        FAIL: gcc.dg/cleanup-11.c execution test
+        FAIL: gcc.dg/cleanup-8.c execution test
+        FAIL: gcc.dg/cleanup-9.c execution test
+        FAIL: g++.dg/ext/cleanup-10.C -std=gnu++98 execution test
+        FAIL: g++.dg/ext/cleanup-10.C -std=gnu++11 execution test
+        FAIL: g++.dg/ext/cleanup-11.C -std=gnu++98 execution test
+        FAIL: g++.dg/ext/cleanup-11.C -std=gnu++11 execution test
+        FAIL: g++.dg/ext/cleanup-8.C -std=gnu++98 execution test
+        FAIL: g++.dg/ext/cleanup-8.C -std=gnu++11 execution test
+        FAIL: g++.dg/ext/cleanup-9.C -std=gnu++98 execution test
+        FAIL: g++.dg/ext/cleanup-9.C -std=gnu++11 execution test
+
+    TODO.
+
+        spawn [open ...]
+        gdb: took too long to attach
+        testcase [...]/gcc/testsuite/gcc.dg/guality/guality.exp completed in 16 seconds
+
+        spawn [open ...]
+        gdb: took too long to attach
+        testcase [...]/gcc/testsuite/g++.dg/guality/guality.exp completed in 20 seconds
 
-  * As of b401cb7ed15602d244a6807835b0b9d740a302a8 (2012-11-26;
-    769bf18a20ee2540ca7601cdafabd62b18b9751b (2012-10-01)), there are
-    regressions (FAILs) in libgomp execution tests on coulomb.SCHWINGE.
+    TODO.  The gfortran ones worked fine.
 
-  * 769bf18a20ee2540ca7601cdafabd62b18b9751b..be3860ba8df48cca3253da4f02fd2d42d856ce80
+  * `[ARCH]/libgomp`
 
-    On GNU/Hurd:
+    As of dcdba5abca23716daa6aeb5c92f367e0978e4539 (2013-05-27;
+    0479dc77cf50ee78769b55563051cf72d39b3d60 (2013-05-27)), plus
+    `id:"87txlnlg0z.fsf@kepler.schwinge.homeip.net"`, about a dozen of them
+    (but different ones per each run) FAIL on coulomb.SCHWINGE:
 
-         Running [...]/hurd/master/gcc/testsuite/g++.dg/tls/tls.exp ...
-        +FAIL: g++.dg/tls/thread_local3.C -std=gnu++11 execution test
-        +FAIL: g++.dg/tls/thread_local3g.C -std=gnu++11 execution test
-        +FAIL: g++.dg/tls/thread_local4.C -std=gnu++11 execution test
-        +FAIL: g++.dg/tls/thread_local4g.C -std=gnu++11 execution test
-        +FAIL: g++.dg/tls/thread_local5.C -std=gnu++11 execution test
-        +FAIL: g++.dg/tls/thread_local5g.C -std=gnu++11 execution test
+        spawn [open ...]
+        
+        Program aborted. Backtrace:
+        #0  0x1042523
+        #1  0x1043D6F
+        #2  0x10F9BC7
+        FAIL: libgomp.fortran/lib1.f90  -O1  execution test
 
-    They used to PASS.
+    All have basically the same backtrace.  TODO.
+
+  * `[ARCH]/libjava`
+
+        spawn [open ...]
+        Exception in thread "main" java.io.IOException: Invalid argument
+           at gnu.java.nio.channels.FileChannelImpl.write(natFileChannelImpl.cc:202)
+           at java.io.FileOutputStream.write(libgcj.so.14)
+           at java.io.DataOutputStream.write(libgcj.so.14)
+           at java.io.RandomAccessFile.write(libgcj.so.14)
+           at LargeFile.main(LargeFile.exe)
+        FAIL: LargeFile execution - source compiled test
+        UNTESTED: LargeFile output - source compiled test
+
+        FAIL: LargeFile -findirect-dispatch execution - source compiled test
+        UNTESTED: LargeFile -findirect-dispatch output - source compiled test
+        FAIL: LargeFile -O3 execution - source compiled test
+        UNTESTED: LargeFile -O3 output - source compiled test
+        FAIL: LargeFile -O3 -findirect-dispatch execution - source compiled test
+        UNTESTED: LargeFile -O3 -findirect-dispatch output - source compiled test
+
+    TODO.
+
+        spawn [open ...]
+        1
+        FAIL: Throw_2 execution - source compiled test
+        UNTESTED: Throw_2 output - source compiled test
+
+        FAIL: Throw_2 -findirect-dispatch execution - source compiled test
+        UNTESTED: Throw_2 -findirect-dispatch output - source compiled test
+        FAIL: Throw_2 -O3 execution - source compiled test
+        UNTESTED: Throw_2 -O3 output - source compiled test
+        FAIL: Throw_2 -O3 -findirect-dispatch execution - source compiled test
+        UNTESTED: Throw_2 -O3 -findirect-dispatch output - source compiled test
+
+    TODO.
+
+  * `[ARCH]/libmudflap`
+
+        spawn [open ...]
+        FAIL: libmudflap.cth/pass37-frag.c (-O0) execution test
+        FAIL: libmudflap.cth/pass37-frag.c (-O0) output pattern test
+
+        FAIL: libmudflap.cth/pass37-frag.c (-O0) (rerun 1) execution test
+        FAIL: libmudflap.cth/pass37-frag.c (-O0) (rerun 1) output pattern test
+        [...]
+
+    TODO.  Seems like not just timeouts (though, reported before: [[!GCC_PR
+    20003]]).  If GDB is to believed, it seems like confusion between
+    libmudflap and glibc startup (while setting up the signal thread?):
+
+        #0  getenv (name=0x12dabee "LANGUAGE") at getenv.c:81
+        #1  0x011b2c78 in guess_category_value (categoryname=<optimized out>, category=<optimized out>) at dcigettext.c:1359
+        #2  __dcigettext (domainname=0x12dab1b <_libc_intl_domainname> "libc", msgid1=0x12e1cd8 "Error in unknown error system: ", msgid2=0x0, plural=0, n=0, category=5) at dcigettext.c:575
+        #3  0x011b1c53 in __dcgettext (domainname=0x12dab1b <_libc_intl_domainname> "libc", msgid=0x12e1cd8 "Error in unknown error system: ", category=5) at dcgettext.c:53
+        #4  0x01203728 in __strerror_r (errnum=-1, buf=0x15ff648 "", buflen=1024) at ../sysdeps/mach/_strerror.c:57
+        #5  0x011b0f30 in __assert_perror_fail (errnum=-1, file=0x1133969 "./pthread/cthreads-compat.c", line=45, function=0x1133985 <__PRETTY_FUNCTION__.5356> "cthread_fork") at assert-perr.c:62
+        #6  0x011324d4 in cthread_fork (func=0x118b0b0 <_hurd_msgport_receive>, arg=0x0) at ./pthread/cthreads-compat.c:45
+        #7  0x01192a96 in _hurdsig_init (intarray=0x102a000, intarraysize=5) at hurdsig.c:1499
+        #8  0x0117b9f8 in _hurd_new_proc_init (argv=0x15ffb88, intarray=0x102a000, intarraysize=5) at hurdinit.c:138
+        #9  0x0117bfef in _hurd_init (flags=8, argv=0x15ffb88, portarray=0x1029000, portarraysize=6, intarray=0x102a000, intarraysize=5) at hurdinit.c:94
+        #10 0x011a47c4 in init1 (argc=1, arg0=0x1025000 "/media/erich/home/thomas/tmp/gcc/hurd/master.build/i686-unknown-gnu0.3/libmudflap/testsuite/pass37-frag.exe") at ../sysdeps/mach/hurd/i386/init-first.c:136
+        #11 0x00001ec6 in _dl_start_user () from /lib/ld.so
+
+    pthread/cthreads-compat.c:
+
+            38  cthread_t
+            39  cthread_fork (cthread_fn_t func, void *arg)
+            40  {
+            41    pthread_t thread;
+            42    int err;
+            43
+            44    err = pthread_create (&thread, NULL, func, arg);
+            45    assert_perror (err);
+
+        Breakpoint 2, cthread_fork (func=0x118b0b0 <_hurd_msgport_receive>, arg=0x0) at ./pthread/cthreads-compat.c:44
+        44        err = pthread_create (&thread, NULL, func, arg);
+        (gdb) info threads 
+          Id   Target Id         Frame 
+        * 4    Thread 17597.16   cthread_fork (func=0x118b0b0 <_hurd_msgport_receive>, arg=0x0) at ./pthread/cthreads-compat.c:44
+        (gdb) s
+        40      {
+        (gdb) 
+        44        err = pthread_create (&thread, NULL, func, arg);
+        (gdb) 
+        
+        Breakpoint 1, pthread_create (thr=0x15ffa70, attr=0x0, start=0x118b0b0 <_hurd_msgport_receive>, arg=0x0) at ../../../master/libmudflap/mf-hooks3.c:272
+        272     {
+        (gdb) s
+        275       TRACE ("pthread_create\n");
+        (gdb) 
+        278       si = CALL_REAL (malloc, sizeof (*si));
+        (gdb) n
+        279       si->user_fn = start;
+        (gdb) 
+        283       return CALL_REAL (pthread_create, thr, attr, __mf_pthread_spawner, si);
+        (gdb) s
+        279       si->user_fn = start;
+        (gdb) 
+        280       si->user_arg = arg;
+        (gdb) 
+        283       return CALL_REAL (pthread_create, thr, attr, __mf_pthread_spawner, si);
+        (gdb) 
+        280       si->user_arg = arg;
+        (gdb) 
+        283       return CALL_REAL (pthread_create, thr, attr, __mf_pthread_spawner, si);
+        (gdb) 
+        __mf_0fn_pthread_create (thr=thr@entry=0x15ffa70, attr=attr@entry=0x0, start=start@entry=0x1041070 <__mf_pthread_spawner>, arg=arg@entry=0x108e520 <__mf_0fn_bufs+12288>) at ../../../master/libmudflap/mf-hooks3.c:265
+        265     }
+        (gdb) s
+        pthread_create (thr=0x15ffa70, attr=0x0, start=0x118b0b0 <_hurd_msgport_receive>, arg=0x0) at ../../../master/libmudflap/mf-hooks3.c:284
+        284     }
+        (gdb) s
+        cthread_fork (func=0x118b0b0 <_hurd_msgport_receive>, arg=0x0) at ./pthread/cthreads-compat.c:45
+        45        assert_perror (err);
+        (gdb) s
+        __assert_perror_fail (errnum=-1, file=0x1133969 "./pthread/cthreads-compat.c", line=45, function=0x1133985 <__PRETTY_FUNCTION__.5356> "cthread_fork") at assert-perr.c:55
+
+    Is this `libmudflap/mf-hooks3.c:__mf_0fn_pthread_create`, *a special
+    bootstrap variant*, that indeed just returns `-1`?
+
+  * `[ARCH]/libstdc++-v3`
+
+        FAIL: libstdc++-abi/abi_check
+
+    TODO.
+
+        $ readelf --symbols --wide i686-unknown-gnu0.3/./libstdc++-v3/src/.libs/libstdc++.so | grep pthread_mutex
+          1065: 00000000     0 FUNC    WEAK   DEFAULT  UND pthread_mutex_unlock@GLIBC_2.13_DEBIAN_31 (37)
+          2515: 00000000     0 FUNC    WEAK   DEFAULT  UND pthread_mutex_lock@GLIBC_2.13_DEBIAN_31 (37)
+          2978: 00068430    15 FUNC    GLOBAL DEFAULT   11 _ZNSt12__basic_fileIcEC2EP15__pthread_mutex@@GLIBCXX_3.4
+          3790: 00068430    15 FUNC    GLOBAL DEFAULT   11 _ZNSt12__basic_fileIcEC1EP15__pthread_mutex@@GLIBCXX_3.4
+          2085: 00000000     0 FUNC    WEAK   DEFAULT  UND pthread_mutex_unlock@@GLIBC_2.13_DEBIAN_31
+          3535: 00000000     0 FUNC    WEAK   DEFAULT  UND pthread_mutex_lock@@GLIBC_2.13_DEBIAN_31
+          3998: 00068430    15 FUNC    GLOBAL DEFAULT   11 _ZNSt12__basic_fileIcEC2EP15__pthread_mutex
+          4810: 00068430    15 FUNC    GLOBAL DEFAULT   11 _ZNSt12__basic_fileIcEC1EP15__pthread_mutex
+
+    `_ZNSt12__basic_fileIcEC1EP15__pthread_mutex`
+    (`std::__basic_file<char>::__basic_file(__pthread_mutex*)`), but
+    `_ZNSt12__basic_fileIcEC2EP15pthread_mutex_t`
+    (`std::__basic_file<char>::__basic_file(pthread_mutex_t*)`) is expected.
+
+        FAIL: 22_locale/time_get/get_date/wchar_t/4.cc execution test
+        FAIL: 27_io/basic_filebuf/close/char/4879.cc execution test
+        FAIL: 27_io/basic_filebuf/close/char/9964.cc execution test
+        FAIL: 27_io/basic_filebuf/imbue/char/13171-2.cc execution test
+        FAIL: 27_io/basic_filebuf/imbue/wchar_t/14975-2.cc execution test
+        WARNING: program timed out.
+        FAIL: 27_io/basic_filebuf/open/char/9507.cc execution test
+        FAIL: 27_io/basic_filebuf/seekoff/char/26777.cc execution test
+        WARNING: program timed out.
+        FAIL: 27_io/basic_filebuf/showmanyc/char/9533-1.cc execution test
+        FAIL: 27_io/basic_filebuf/underflow/char/10097.cc execution test
+        FAIL: 27_io/objects/char/7.cc execution test
+        FAIL: 27_io/objects/char/9661-1.cc execution test
+        FAIL: 27_io/objects/wchar_t/7.cc execution test
+        FAIL: 27_io/objects/wchar_t/9661-1.cc execution test
+        FAIL: 30_threads/async/42819.cc execution test
+        FAIL: 30_threads/async/49668.cc execution test
+        FAIL: 30_threads/async/54297.cc execution test
+        FAIL: 30_threads/async/any.cc execution test
+        FAIL: 30_threads/async/async.cc execution test
+        FAIL: 30_threads/async/sync.cc execution test
+        FAIL: 30_threads/call_once/39909.cc execution test
+        FAIL: 30_threads/call_once/49668.cc execution test
+        FAIL: 30_threads/call_once/call_once1.cc execution test
+        FAIL: 30_threads/condition_variable/54185.cc execution test
+        FAIL: 30_threads/condition_variable_any/50862.cc execution test
+        FAIL: 30_threads/condition_variable_any/53830.cc execution test
+        FAIL: 30_threads/future/members/45133.cc execution test
+        FAIL: 30_threads/future/members/get.cc execution test
+        FAIL: 30_threads/future/members/get2.cc execution test
+        FAIL: 30_threads/future/members/share.cc execution test
+        FAIL: 30_threads/future/members/valid.cc execution test
+        FAIL: 30_threads/future/members/wait.cc execution test
+        FAIL: 30_threads/future/members/wait_for.cc execution test
+        FAIL: 30_threads/future/members/wait_until.cc execution test
+        FAIL: 30_threads/lock/2.cc execution test
+        FAIL: 30_threads/lock/4.cc execution test
+        FAIL: 30_threads/mutex/try_lock/2.cc execution test
+        FAIL: 30_threads/packaged_task/49668.cc execution test
+        FAIL: 30_threads/packaged_task/cons/3.cc execution test
+        FAIL: 30_threads/packaged_task/cons/alloc.cc execution test
+        FAIL: 30_threads/packaged_task/members/get_future.cc execution test
+        FAIL: 30_threads/packaged_task/members/invoke.cc execution test
+        FAIL: 30_threads/packaged_task/members/invoke2.cc execution test
+        FAIL: 30_threads/packaged_task/members/invoke3.cc execution test
+        FAIL: 30_threads/packaged_task/members/invoke4.cc execution test
+        FAIL: 30_threads/packaged_task/members/invoke5.cc execution test
+        FAIL: 30_threads/packaged_task/members/reset2.cc execution test
+        FAIL: 30_threads/promise/cons/alloc.cc execution test
+        FAIL: 30_threads/promise/cons/move.cc execution test
+        FAIL: 30_threads/promise/cons/move_assign.cc execution test
+        FAIL: 30_threads/promise/members/get_future.cc execution test
+        FAIL: 30_threads/promise/members/set_exception.cc execution test
+        FAIL: 30_threads/promise/members/set_exception2.cc execution test
+        FAIL: 30_threads/promise/members/set_value.cc execution test
+        FAIL: 30_threads/promise/members/set_value2.cc execution test
+        FAIL: 30_threads/promise/members/set_value3.cc execution test
+        FAIL: 30_threads/promise/members/swap.cc execution test
+        FAIL: 30_threads/shared_future/members/get.cc execution test
+        FAIL: 30_threads/shared_future/members/get2.cc execution test
+        FAIL: 30_threads/shared_future/members/valid.cc execution test
+        FAIL: 30_threads/shared_future/members/wait.cc execution test
+        FAIL: 30_threads/shared_future/members/wait_for.cc execution test
+        FAIL: 30_threads/shared_future/members/wait_until.cc execution test
+        FAIL: 30_threads/this_thread/3.cc execution test
+        FAIL: 30_threads/this_thread/4.cc execution test
+        FAIL: 30_threads/thread/cons/2.cc execution test
+        FAIL: 30_threads/thread/cons/3.cc execution test
+        FAIL: 30_threads/thread/cons/4.cc execution test
+        FAIL: 30_threads/thread/cons/49668.cc execution test
+        FAIL: 30_threads/thread/cons/5.cc execution test
+        FAIL: 30_threads/thread/cons/6.cc execution test
+        FAIL: 30_threads/thread/cons/7.cc execution test
+        FAIL: 30_threads/thread/cons/8.cc execution test
+        FAIL: 30_threads/thread/cons/9.cc execution test
+        FAIL: 30_threads/thread/cons/moveable.cc execution test
+        FAIL: 30_threads/thread/members/1.cc execution test
+        FAIL: 30_threads/thread/members/2.cc execution test
+        FAIL: 30_threads/thread/members/3.cc execution test
+        FAIL: 30_threads/thread/native_handle/cancel.cc execution test
+        FAIL: 30_threads/thread/swap/1.cc execution test
+        FAIL: 30_threads/timed_mutex/try_lock/2.cc execution test
+        FAIL: 30_threads/timed_mutex/try_lock_for/3.cc execution test
+        FAIL: 30_threads/timed_mutex/try_lock_until/2.cc execution test
+        FAIL: 30_threads/try_lock/2.cc execution test
+        FAIL: 30_threads/try_lock/4.cc execution test
+
+    TODO.  Perhaps just timeouts?  [[!message-id
+    "200609052027.NAA09861@hpsje.cup.hp.com"]].  [[!message-id
+    "1227217275.6205.6.camel@janis-laptop"]].  If needed, can re-implement in
+    GCC DejaGnu's `remote.exp:remote_wait` to get rid of (that is, ignore) its
+    `timeout` parameter which, in DejaGnu code, is often invoked with a
+    hard-coded value (that we may want to override) (or is that what
+    `gcc/testsuite/lib/timeout.exp:standard_wait` is for?).  While at it,
+    `libmudflap/testsuite/libmudflap.c++/ctors.exp` and
+    `libmudflap/testsuite/libmudflap.c/externs.exp` use hard-coded timeout
+    values in `remote_wait` calls (also, why don't these use the usual way of
+    running tests?).
 
   * What is `gcc/testsuite/gcc.test-framework/test-framework.exp` and should we
     define `CHECK_TEST_FRAMEWORK` to run these tests?
 
-  * TODO
-
 
 ## Enhancements