summaryrefslogtreecommitdiff
path: root/open_issues/gcc.mdwn
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2013-06-10 15:43:02 +0200
committerThomas Schwinge <thomas@codesourcery.com>2013-06-10 15:43:02 +0200
commit30cc6497724b295c50e69e564e3821204fafb47e (patch)
treecf6621c5524a51484f3cef8e0536c463680879d7 /open_issues/gcc.mdwn
parentf6d7366069d3df0cb2cce6ef47f26dbd6576cbd0 (diff)
open_issues/gcc: 2a3496bebfe9d89f11d0b7a591afac55e11d5263 (2013-06-06; 3a930d3fc68785662f5f3f4af02474cb21a62056 (2013-06-06))
Diffstat (limited to 'open_issues/gcc.mdwn')
-rw-r--r--open_issues/gcc.mdwn698
1 files changed, 627 insertions, 71 deletions
diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn
index 3aa7b63b..d8a8cd5f 100644
--- a/open_issues/gcc.mdwn
+++ b/open_issues/gcc.mdwn
@@ -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