From 5c97e1e835712fccbfe793a4508490c589909513 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 12 Dec 2016 11:44:02 +0100 Subject: gcc: 17f0f5acdcfb9181203ca9b6d8f8cbc64e5ce843 (2016-11-30) --- open_issues/gcc.mdwn | 461 +++++++++++++++----------------------------------- open_issues/gnat.mdwn | 4 +- 2 files changed, 142 insertions(+), 323 deletions(-) (limited to 'open_issues') diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn index 7850d024..3627179b 100644 --- a/open_issues/gcc.mdwn +++ b/open_issues/gcc.mdwn @@ -35,8 +35,7 @@ git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefi --> Last reviewed up to the Git mirror's commit -a050099a416f013bda35832b878d9a57b0cbb231 (gcc-6-branch branch point; -2016-04-15). +17f0f5acdcfb9181203ca9b6d8f8cbc64e5ce843 (2016-11-30). has documentation for the `configure` switches. @@ -65,215 +64,6 @@ a050099a416f013bda35832b878d9a57b0cbb231 (gcc-6-branch branch point; * `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: * Implementation note: 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 ]], [[ - 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` * `config/t-linux` @@ -439,6 +229,8 @@ a050099a416f013bda35832b878d9a57b0cbb231 (gcc-6-branch branch point; +++ ./gcc/testsuite/gcc.target/i386/noplt-2.c +++ ./gcc/testsuite/gcc.target/i386/noplt-3.c +++ ./gcc/testsuite/gcc.target/i386/noplt-4.c + {+/* { dg-do compile { target *-*-linux* } } */+} + +++ ./gcc/testsuite/gcc.target/i386/pr66275.c +++ ./gcc/testsuite/gcc.target/i386/pr68018.c {+/* { dg-do compile { target { *-*-linux* && { ! ia32 } } } } */+} @@ -470,6 +262,72 @@ a050099a416f013bda35832b878d9a57b0cbb231 (gcc-6-branch branch point; {+ return+} {+}+} + --- /dev/null + +++ ./gcc/testsuite/gcc.target/i386/pr70750-1.c + +++ ./gcc/testsuite/gcc.target/i386/pr70750-2.c + diff --git ./gcc/testsuite/gcc.target/i386/pr70750-2.c ./gcc/testsuite/gcc.target/i386/pr70750-2.c + @@ -0,0 +1,11 @@ + {+/* { dg-do compile { target *-*-linux* } } */+} + + --- /dev/null + +++ ./gcc/testsuite/gcc.target/i386/interrupt-11.c + +++ ./gcc/testsuite/gcc.target/i386/interrupt-12.c + +++ ./gcc/testsuite/gcc.target/i386/interrupt-13.c + +++ ./gcc/testsuite/gcc.target/i386/interrupt-14.c + +++ ./gcc/testsuite/gcc.target/i386/interrupt-15.c + +++ ./gcc/testsuite/gcc.target/i386/interrupt-16.c + +++ ./gcc/testsuite/gcc.target/i386/interrupt-17.c + +++ ./gcc/testsuite/gcc.target/i386/interrupt-24.c + +++ ./gcc/testsuite/gcc.target/i386/interrupt-8.c + {+/* { dg-do compile { target *-*-linux* } } */+} + + --- /dev/null + +++ ./gcc/testsuite/gcc.target/i386/pr67400-1.c + +++ ./gcc/testsuite/gcc.target/i386/pr67400-2.c + +++ ./gcc/testsuite/gcc.target/i386/pr67400-3.c + +++ ./gcc/testsuite/gcc.target/i386/pr67400-4.c + +++ ./gcc/testsuite/gcc.target/i386/pr67400-5.c + +++ ./gcc/testsuite/gcc.target/i386/pr67400-6.c + +++ ./gcc/testsuite/gcc.target/i386/pr67400-7.c + {+/* { dg-do compile { target *-*-linux* } } */+} + + --- /dev/null + +++ ./gcc/testsuite/gcc.target/i386/pr66232-14.c + +++ ./gcc/testsuite/gcc.target/i386/pr66232-15.c + +++ ./gcc/testsuite/gcc.target/i386/pr66232-16.c + +++ ./gcc/testsuite/gcc.target/i386/pr66232-17.c + {+/* { dg-do compile { target *-*-linux* } } */+} + + --- /dev/null + +++ ./gcc/testsuite/gcc.target/i386/noplt-gd-1.c + {+/* { dg-do compile { target { *-*-linux* && tls_get_addr_via_got } } } */+} + + --- /dev/null + +++ ./gcc/testsuite/gcc.target/i386/noplt-gd-2.c + {+/* { dg-do run { target { *-*-linux* } } } */+} + + --- /dev/null + +++ ./gcc/testsuite/gcc.target/i386/noplt-gd-3.c + {+/* { dg-do compile { target { *-*-linux* && { ia32 && tls_get_addr_via_got } } } } */+} + + --- /dev/null + +++ ./gcc/testsuite/gcc.target/i386/noplt-ld-1.c + {+/* { dg-do compile { target { *-*-linux* && tls_get_addr_via_got } } } */+} + + --- /dev/null + +++ ./gcc/testsuite/gcc.target/i386/noplt-ld-2.c + {+/* { dg-do run { target { *-*-linux* } } } */+} + + --- /dev/null + +++ ./gcc/testsuite/gcc.target/i386/noplt-ld-3.c + {+/* { dg-do compile { target { *-*-linux* && { ia32 && tls_get_addr_via_got } } } } */+} + + --- /dev/null + +++ ./gcc/testsuite/gnat.dg/trampoline3.adb + +++ ./gcc/testsuite/gnat.dg/trampoline4.adb + {+-- { dg-do compile { target *-*-linux* } }+} + + * `hurd/usr` `NATIVE_SYSTEM_HEADER_DIR`, `638454a19c1c08f01c10517bc72a114250fc4f33`, @@ -733,7 +591,7 @@ a050099a416f013bda35832b878d9a57b0cbb231 (gcc-6-branch branch point; to find out why some stuff wasn't compiling even after kfreebsd porting patches adding preprocessors checks for __GLIBC__ - GNU/kFreeBSD and GNU/kNetBSD: commit + GNU/kFreeBSD: commit 6396cc37141180db4d2c8f73cab4f5977d8a1e19 (2004-06-24, r83577), GNU/kOpenSolaris: commit 3bef40126fb1633018fce47828df0fa9f65f110c (2009-01-29, r143768). See also GDB commits @@ -1015,6 +873,9 @@ a050099a416f013bda35832b878d9a57b0cbb231 (gcc-6-branch branch point; [[!debbug 734973]]. gcc-4.9/debian/patches/libcilkrts-targets.diff + r235870 "Merge libcilkrts from upstream" is supposed to contain the Hurd + port (not yet reviewed/tested). + * [low] `libmpx` Only enabled for GNU/Linux, but actually seems to be portable. @@ -1061,6 +922,65 @@ a050099a416f013bda35832b878d9a57b0cbb231 (gcc-6-branch branch point; ee1bfdb0d611ed2e1057071f39589e6ebcd87983 `Remove __seg_tls before first release`. + * x86 `-mgeneral-regs-only` option, commit + f409438030cfed3c6373f0dfa58a4bdf9a65b4ac, [[!GCC_PR 70738]]. + + Before being temporarily reverted in commit + 294528f77a8097ace2986019770cad097a3bbc55, it had originally been added in + commit a55668c45867980a07a06690a45edd43b4c82efa `Add -mgeneral-regs-only + option`: + + X86 Linux kernel is compiled only with integer instructions. Currently, + + -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-80387 + -mno-fp-ret-in-387 -mskip-rax-setup + + is used to compile kernel. If we add another non-integer feature, it + has to be turned off. We can add a -mgeneral-regs-only option, similar + to AArch64, to disable all non-integer features so that kernel doesn't + need a long list and the same option will work for future compilers. + It can also be used to compile interrupt handler. + + Will this be useful for GNU Mach, too? + + * `TARGET_PRINTF_POINTER_FORMAT` + + commit b9833bfd04471afa17cd52aedd911e4671bdd82a + Author: msebor + Date: Wed Sep 21 01:39:27 2016 +0000 + + PR middle-end/49905 - Better sanity checking on sprintf src & dest to + [...] + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240298 138bc75d-0d04-0410-961f-82ee72b054a4 + + Why is `TARGET_PRINTF_POINTER_FORMAT` `#define`d in `gcc/config/linux.c`? + `#define` of `TARGET_PRINTF_POINTER_FORMAT` should move from + `gcc/config/linux.h` into `gnu-user.h`, and likewise for definition of + `gnu_libc_printf_pointer_format` in `gcc/config/linux.c`? Then adjust + `gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c`. + + commit 9ce11577b63e817104a9590b60c5aac49ca4f6e2 + Author: msebor + Date: Wed Oct 5 15:21:40 2016 +0000 + + PR bootstrap/77819 - undefined reference to gnu_libc_printf_pointer_format with uClibc + + gcc/ChangeLog: + + PR bootstrap/77819 + * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro. + * config/linux.c (gnu_libc_printf_pointer_format): Remove. + * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC] + (default_printf_pointer_format): Define function. + * targhooks.c (linux_printf_pointer_format): Define new function. + * targhooks.h (linux_printf_pointer_format): Declare. + (gnu_libc_printf_pointer_format): Remove declaration. + + git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240793 138bc75d-0d04-0410-961f-82ee72b054a4 + + Some of that stuff has been reverted in commit + 72d5639d126d3b84a480430b4a4ce7dabd8ebd63. + * `--enable-default-pie` On 2016-12-05 noticed that per `gcc -v` output, `gcc version 6.2.1 20161124 @@ -1071,8 +991,8 @@ a050099a416f013bda35832b878d9a57b0cbb231 (gcc-6-branch branch point; # Build Here's a log of a GCC build run; this is from Git commit -a050099a416f013bda35832b878d9a57b0cbb231 (gcc-6-branch branch point; -2016-04-15), plus *libstdc++ RLIMIT changes* ([[!message-id +17f0f5acdcfb9181203ca9b6d8f8cbc64e5ce843 (2016-11-30), +plus *libstdc++ RLIMIT changes* ([[!message-id "8760n66mky.fsf@euler.schwinge.homeip.net"]]), run on kepler.SCHWINGE and laplace.SCHWINGE. @@ -1094,8 +1014,8 @@ until these is auto-detected/fixed/ported for GNU Hurd. `/include` for GNU Hurd. Explicit `--enable-multiarch` because *auto check [is disabled if] configured with --native-system-header-dir*. -This takes up around 4.8 GiB, and runs for [[4 h 46 min|performance#measure]] -on kepler.SCHWINGE and [[3 h 52 min|performance#measure]] on laplace.SCHWINGE. +This takes up around 3.9 GiB, and runs for [[3 h 57 min|performance#measure]] +on kepler.SCHWINGE and [[4 h 37 min|performance#measure]] on laplace.SCHWINGE.