summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--faq/off.mdwn5
-rw-r--r--glibc.mdwn10
-rw-r--r--glibc/process.mdwn34
-rw-r--r--hurd/building.mdwn5
-rw-r--r--hurd/interface/exec_startup_get_info.mdwn23
-rw-r--r--hurd/translator/procfs/jkoenig/discussion.mdwn37
-rw-r--r--microkernel/mach/gnumach/ports.mdwn7
-rw-r--r--open_issues/binutils.mdwn44
-rw-r--r--open_issues/gcc.mdwn709
-rw-r--r--open_issues/gccgo.mdwn6
-rw-r--r--open_issues/gdb.mdwn215
-rw-r--r--open_issues/glibc.mdwn167
-rw-r--r--open_issues/glibc/t/tls-threadvar.mdwn56
-rw-r--r--open_issues/libpthread.mdwn3
-rw-r--r--open_issues/llvm.mdwn4
-rw-r--r--toolchain/elfosabi_gnu.mdwn22
m---------toolchain/logs10
17 files changed, 1091 insertions, 266 deletions
diff --git a/faq/off.mdwn b/faq/off.mdwn
index a0b5e439..4d012449 100644
--- a/faq/off.mdwn
+++ b/faq/off.mdwn
@@ -23,3 +23,8 @@ will not work. Simply use the equivalent shortcuts
to respectively shutdown and reboot Hurd, provided natively,
instead of from SYSV runlevels.
+
+[[!tag open_issue_gnumach]]
+GNU Mach does not have APM or ACPI support, so it will just stop with
+`In tight loop: hit ctl-alt-del to reboot`, and you can switch off the
+system.
diff --git a/glibc.mdwn b/glibc.mdwn
index 701b7bfc..e3988180 100644
--- a/glibc.mdwn
+++ b/glibc.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012 Free Software
+[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013 Free Software
Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -28,11 +28,9 @@ repository|source_repositories/glibc]].
Porting glibc to a specific architecture is non-trivial.
-The main port is x86, which is somewhat complete and is maintained. There is
-an incomplete and unmaintained port for PowerPC. There [[!message-id
-desc="have" "20111129161104.25123.qmail@sourceware.org"]] [[!message-id
-desc="been" "Pine.LNX.4.64.1111291611170.26895@digraph.polyomino.org.uk"]]
-incomplete and largely unmaintained ports for Alpha and MIPS in glibc-ports.
+The main port is x86, which is somewhat complete and is maintained. There were
+incomplete ports for Alpha, MIPS, and PowerPC, but they were unmaintained and
+have been removed.
## [[Hurd-specific Port|hurd/glibc]]
diff --git a/glibc/process.mdwn b/glibc/process.mdwn
index 9b2ec251..ded2e1f7 100644
--- a/glibc/process.mdwn
+++ b/glibc/process.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2009, 2010, 2013 Free Software Foundation,
+Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -15,6 +16,37 @@ process, there is additional work to be done, for example for [[signal]]s,
[[environment_variable]]s, [[file_descriptor]]s.
+# Startup
+
+[[!taglink open_issue_glibc open_issue_hurd]]: Enumerate all the different
+cases. Add tests to [[glibc]] to make sure all these work.
+
+
+## `hurd/hurdstartup.h`:`hurd_startup_data`
+
+Lives on the stack after arguments and environment.
+
+The `phdr` and `phdrsz` members are only used in
+`sysdeps/mach/hurd/dl-sysdep.c`:`_dl_sysdep_start` (for `[SHARED]`) and
+`sysdeps/mach/hurd/i386/init-first.c`:`init1` (for `[!SHARED]`). See comments
+in [[open_issues/glibc]] for commit 288f7d79fe2dcc8e62c539f57b25d7662a2cd5ff.
+
+
+## `hurd/hurdstartup.c`:`_hurd_startup (void **argptr, void (*main) (intptr_t
+ *data))`
+
+ * Initialize `hurd_startup_data` based on
+ [[hurd/interface/exec_startup_get_info]] if we have a bootstrap port, or
+ else manually.
+
+ * Call `main`, which is either
+ `sysdeps/mach/hurd/dl-sysdep.c`:`_dl_sysdep_start`:`go` if called from
+ `sysdeps/mach/hurd/dl-sysdep.c`:`_dl_sysdep_start` (for `[SHARED]` only),
+ or `sysdeps/mach/hurd/i386/init-first.c`:`_hurd_stack_setup`:`doinit` if
+ called from `sysdeps/mach/hurd/i386/init-first.c`:`_hurd_stack_setup` (for
+ `[!SHARED]` only).
+
+
# Controlling TTY
Hurd controlling tty behavior is generally consistent with BSD's, including
diff --git a/hurd/building.mdwn b/hurd/building.mdwn
index ae3fe43c..39c9a040 100644
--- a/hurd/building.mdwn
+++ b/hurd/building.mdwn
@@ -57,9 +57,10 @@ Change into the directory with the downloaded / unpacked Hurd sources, e.g.
$ cd hurd-VERSION
If you want to work on the sources before building them, it's advisable to
-first apply the patches the Debian hurd package additionally contains:
+first make sure that patches that the Debian hurd package additionally contains
+are applied:
- $ debian/rules patch
+ $ dh_quilt_patch
Then edit and change whatever files you want and finally start the build
process with
diff --git a/hurd/interface/exec_startup_get_info.mdwn b/hurd/interface/exec_startup_get_info.mdwn
new file mode 100644
index 00000000..a927232f
--- /dev/null
+++ b/hurd/interface/exec_startup_get_info.mdwn
@@ -0,0 +1,23 @@
+[[!meta copyright="Copyright © 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2010, 2011, 2013 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+This call is made by a new task to its bootstrap port to get its startup ports
+and information.
+
+Implemented regularely by the [[hurd/translator/exec]] server
+(`exec/exec.c`:`S_exec_startup_get_info`), and also [[hurd/translator]]s based
+on [[hurd/libdiskfs]]
+(`libdiskfs/boot-start.c`:`diskfs_S_exec_startup_get_info`) because these *look
+like an execserver to the execserver itself; it makes this call (as does any
+task) to get its state*.
+
+Used solely in [[glibc's process startup|glibc/process]]
+(`hurd/hurdstartup.c`:`_hurd_startup`).
diff --git a/hurd/translator/procfs/jkoenig/discussion.mdwn b/hurd/translator/procfs/jkoenig/discussion.mdwn
index 2ba98150..197461b8 100644
--- a/hurd/translator/procfs/jkoenig/discussion.mdwn
+++ b/hurd/translator/procfs/jkoenig/discussion.mdwn
@@ -153,7 +153,7 @@ License|/fdl]]."]]"""]]
# root group
-IRC, #hurd, around October 2010
+## IRC, freenode, #hurd, around October 2010
<pinotree> the only glitch is that files/dirs have the right user as
owner, but always with root group
@@ -161,7 +161,7 @@ IRC, #hurd, around October 2010
# `/proc/[PID]/stat` being 400 and not 444, and some more
-IRC, freenode, #hurd, 2011-03-27
+## IRC, freenode, #hurd, 2011-03-27
<pochu> is there a reason for /proc/$pid/stat to be 400 and not 444 like on
Linux?
@@ -206,7 +206,8 @@ IRC, freenode, #hurd, 2011-03-27
/proc uses rather than rely on CLK_TCK
<jkoenig> (so we can choose whatever reasonable value we want)
-IRC, freenode, #hurd, 2011-03-28
+
+## IRC, freenode, #hurd, 2011-03-28
<antrik> jkoenig: does procfs expose any information that is not available
to everyone through the proc server?...
@@ -259,7 +260,8 @@ IRC, freenode, #hurd, 2011-03-28
<antrik> (though I never got around to look at his buggy code...)
<jkoenig> ok
-IRC, freenode, #hurd, 2011-07-22
+
+## IRC, freenode, #hurd, 2011-07-22
<pinotree> hm, why /proc/$pid/stat is 600 instead of 644 of linux?
<jkoenig> pinotree, it reveals information which, while not that sensitive,
@@ -280,7 +282,7 @@ IRC, freenode, #hurd, 2011-07-22
# `/proc/mounts`, `/proc/[PID]/mounts`
-IRC, freenode, #hurd, 2011-07-25
+## IRC, freenode, #hurd, 2011-07-25
< pinotree> jkoenig: btw, what do you think about providing empty
/proc/mounts and /proc/$pid/mounts files?
@@ -303,16 +305,24 @@ IRC, freenode, #hurd, 2011-07-25
See also [[community/gsoc/project_ideas/mtab]].
-# `/proc/[PID]/auxv`, `/proc/[PID]/exe`, `/proc/[PID]/mem`
+# `/proc/[PID]/auxv`
+
+Needed by glibc's `pldd` tool (commit
+11988f8f9656042c3dfd9002ac85dff33173b9bd).
+
+
+# `/proc/[PID]/exe`
Needed by glibc's `pldd` tool (commit
11988f8f9656042c3dfd9002ac85dff33173b9bd).
-# `/proc/self/exe`
+## `/proc/self/exe`
[[!message-id "alpine.LFD.2.02.1110111111260.2016@akari"]]. Needed by glibc's
`stdlib/tst-secure-getenv.c`.
+`HAVE_PROC_SELF_EXE` in `[GCC]/libjava/configure.ac`.
+Also used in `[GCC]/libgfortran/runtime/main.c`:`store_exe_path`.
Is it generally possible to use something like the following instead?
Disadvantage is that every program using this needs to be patched.
@@ -410,6 +420,19 @@ This is used in `[LLVM]/lib/Support/Unix/Path.inc`.
report why the test suite failed
+## `/proc/self/maps`
+
+`HAVE_PROC_SELF_MAPS` in `[GCC]/libjava/configure.ac`.
+Also used in `[GCC]/intl/relocatable.c`:`find_shared_library_fullname` for
+`#ifdef __linux__`.
+
+
+# `/proc/[PID]/mem`
+
+Needed by glibc's `pldd` tool (commit
+11988f8f9656042c3dfd9002ac85dff33173b9bd).
+
+
# `/proc/[PID]/cwd`
## IRC, freenode, #hurd, 2012-06-30
diff --git a/microkernel/mach/gnumach/ports.mdwn b/microkernel/mach/gnumach/ports.mdwn
index e7fdb446..2d9bc311 100644
--- a/microkernel/mach/gnumach/ports.mdwn
+++ b/microkernel/mach/gnumach/ports.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2011, 2012 Free Software
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2011, 2012, 2013 Free Software
Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -27,3 +27,8 @@ License|/fdl]]."]]"""]]
* MIPS. Status completely unknown.
* [[open_issues/Mach_on_Top_of_POSIX]]. Status unknown.
+
+When starting a port for a new architecture, it might make sense to first
+target a [[!wikipedie desc=paravirtualized Paravirtualization]] environment,
+that already abstracts away some of the different hardware implementations'
+quirks.
diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn
index 5d36d3d1..b19a81a4 100644
--- a/open_issues/binutils.mdwn
+++ b/open_issues/binutils.mdwn
@@ -39,8 +39,8 @@ git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefi
-->
-Last reviewed up to the [[Git mirror's 5c3ec1ded654250e0ac27df79998b32b2403e81f
-(2013-04-29) sources|source_repositories/binutils]].
+Last reviewed up to the [[Git mirror's d2a61dc33b01c56f5153c1ddea7b1fb8f304f20d
+(2013-06-18) sources|source_repositories/binutils]].
* Globally
@@ -117,6 +117,8 @@ Last reviewed up to the [[Git mirror's 5c3ec1ded654250e0ac27df79998b32b2403e81f
* `__ehdr_start symbol`, c84ed8d89d0b8bf5a2968d465f77ac24bcfc40c2 -- can this
be helpful in the exec server, glibc, or elsewhere? Used in GDB (BFD)
commit bdbd9758806ed855af89244870fdc52cf3ff09bc.
+ Used in glibc commit 288f7d79fe2dcc8e62c539f57b25d7662a2cd5ff `Use
+ __ehdr_start, if available, as fallback for AT_PHDR.`.
* `Add HOSTING_SCRT0 for PIE test`, 49cc20aa5c416ea4307931cccf6353247368187d
-- is for GNU/Linux only; but also seems unused.
@@ -126,11 +128,11 @@ Last reviewed up to the [[Git mirror's 5c3ec1ded654250e0ac27df79998b32b2403e81f
Here's a log of a binutils build run; this is from our [[Git
repository|source_repositories/binutils]]'s `tschwinge/Paul_Desmond` branch,
-commit 5c3ec1ded654250e0ac27df79998b32b2403e81f (2013-04-29), run on
+commit d2a61dc33b01c56f5153c1ddea7b1fb8f304f20d (2013-06-18), run on
kepler.SCHWINGE and coulomb.SCHWINGE.
$ export LC_ALL=C
- $ ../Paul_Desmond/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash CC=gcc-4.7 CXX=g++-4.7 2>&1 | tee log_build
+ $ ../Paul_Desmond/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash CC=gcc-4.8 CXX=g++-4.8 2>&1 | tee log_build
[...]
$ make 2>&1 | tee log_build_
[...]
@@ -140,8 +142,8 @@ harmonized. Debian GCC (which is used in binutils' testsuite) likes to pass
`--sysroot=/` to `ld`, so we need to configure binutils with support for
sysroots.
-This takes up around 950 MiB, and needs roughly 13 min on kepler.SCHWINGE and
-45 min on coulomb.SCHWINGE.
+This takes up around 1100 MiB, and needs roughly 13 min on kepler.SCHWINGE and
+53 min on coulomb.SCHWINGE.
<!--
@@ -158,26 +160,13 @@ formats, and more emulation vectors.
$ toolchain/logs/process binutils build
- * gold GNU/Linux vs. GNU/Hurd
-
- -checking for glibc ifunc support... both
- +checking for glibc ifunc support... dyn
-
- Missing [[IFUNC]] support on GNU/Hurd.
-
- * 944a6010b676b9f80f0a16c65183102b187822c5..a5e5fda5f96d5b881a354bd8666fdbb1496ee8da:
-
- gcc-4.6 -c -DHAVE_CONFIG_H -g -O2 -I. -I../../Paul_Desmond/libiberty/../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic ../../Paul_Desmond/libiberty/hashtab.c -o hashtab.o
- +../../Paul_Desmond/libiberty/hashtab.c: In function 'hash_pointer':
- +../../Paul_Desmond/libiberty/hashtab.c:1001:7: warning: right shift count >= width of type [enabled by default]
-
# Install
$ make install 2>&1 | tee log_install
[...]
-This takes up around 150 MiB, and needs roughly 1 min on kepler.SCHWINGE and 3
+This takes up around 170 MiB, and needs roughly 1 min on kepler.SCHWINGE and 3
min on coulomb.SCHWINGE.
@@ -193,7 +182,7 @@ min on coulomb.SCHWINGE.
$ make -k check 2>&1 | tee log_test
[...]
-This needs roughly 6 min on kepler.SCHWINGE and 45 min on coulomb.SCHWINGE.
+This needs roughly 5 min on kepler.SCHWINGE and 37 min on coulomb.SCHWINGE.
## Analysis
@@ -224,7 +213,7 @@ This needs roughly 6 min on kepler.SCHWINGE and 45 min on coulomb.SCHWINGE.
symbol handling in glibc, needed for our external [[/libpthread]]. TODO:
document properly.
- * `FAIL: gas/i386/rept`
+ * `FAIL: gas/i386/rept` (intermittently)
Added in commit 06f1247c54126b9f1e6acb8ff8c7be35aec6f44c (2012-06-07) as
part of the fix for [[!sourceware_PR 14201]], renamed in commit
@@ -255,14 +244,3 @@ This needs roughly 6 min on kepler.SCHWINGE and 45 min on coulomb.SCHWINGE.
-PASS: tls_phdrs_script_test
+FAIL: tls_phdrs_script_test
-
- -PASS: ifuncmain1static
- -PASS: ifuncmain1picstatic
- -PASS: ifuncmain2static
- -PASS: ifuncmain2picstatic
- -PASS: ifuncmain4static
- -PASS: ifuncmain4picstatic
- -PASS: ifuncmain5static
- -PASS: ifuncmain5picstatic
- -PASS: ifuncmain7static
- -PASS: ifuncmain7picstatic
diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn
index f86b5345..d8a8cd5f 100644
--- a/open_issues/gcc.mdwn
+++ b/open_issues/gcc.mdwn
@@ -31,14 +31,14 @@ example. Especially all the compiler magic is all the same.
<!--
git checkout reviewed
-git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..upstream/trunk
+git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefix=./ --find-renames --ignore-space-change ..upstream/master | awk '/^diff/ { c = $0; } /^@@/ { print c; } { print; }' | less
-i
-/^commit |^merge:|^---$|hurd|linux|nacl|nptl|glibc|gs:
+/^---.*/([^.]*|.*\.texi.*|[^/]*gnu[^/]*)$|hurd|linux|nacl|nptl|glibc|gs:
-->
-Last reviewed up to the [[Git mirror's 71cfadefb994de9249449fb7e71be012b6264a3f
-(2013-02-17) 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 71cfadefb994de9249449fb7e71be012b6264a3f
* `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`,
@@ -87,13 +314,20 @@ Last reviewed up to the [[Git mirror's 71cfadefb994de9249449fb7e71be012b6264a3f
* `gcc/config/gnu-user.h` defines `*SPLIT_STACK*` macros -- which aren't
valid for us (yet), I think.
+ * Also see [[sourceware_PR 10686]], glibc commit
+ ecbf434213c0333d81706074e4d107ac45011635 `Reserve new TLS field for x86
+ and x86_64` (`__private_ss`).
+
* 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.
@@ -149,8 +383,6 @@ Last reviewed up to the [[Git mirror's 71cfadefb994de9249449fb7e71be012b6264a3f
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:
@@ -299,39 +531,18 @@ Last reviewed up to the [[Git mirror's 71cfadefb994de9249449fb7e71be012b6264a3f
"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
-06a4535f69cf9613943fd12f97fe94e471dedcce (2013-02-18;
-71cfadefb994de9249449fb7e71be012b6264a3f (2013-02-17))
+2a3496bebfe9d89f11d0b7a591afac55e11d5263 (2013-06-06;
+3a930d3fc68785662f5f3f4af02474cb21a62056 (2013-06-06))
sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE.
$ export LC_ALL=C
@@ -344,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.25 h on kepler.SCHWINGE and
-14.25 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.
<!--
@@ -365,7 +577,9 @@ This takes up around 3.5 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and
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
@@ -377,15 +591,16 @@ This takes up around 3.5 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and
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?
@@ -505,7 +720,7 @@ This takes up around 3.5 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and
$ make install 2>&1 | tee log_install
[...]
-This takes up around 1 GiB, and needs roughly 5 min on kepler.SCHWINGE and 37
+This takes up around 1.1 GiB, and needs roughly 5 min on kepler.SCHWINGE and 37
min on coulomb.SCHWINGE.
@@ -562,7 +777,7 @@ coulomb.SCHWINGE:
maybe-check-zlib: check-zlib
maybe-check-gnattools: check-gnattools
maybe-check-lto-plugin: check-lto-plugin
- $ grep ^CHECK_TARGETS gcc/Makefile
+ $ grep ^CHECK_TARGETS < gcc/Makefile
CHECK_TARGETS = check-ada check-c check-c++ check-fortran check-java check-lto check-objc
$ export LC_ALL=C
@@ -587,10 +802,10 @@ coulomb.SCHWINGE:
$ make -k check-target 2>&1 | tee log_test_4_check-target
[...]
-This needs roughly 7 h on kepler.SCHWINGE and 3.5 h (`check-fixincludes`,
-`gcc/check-ada`) + 13 h (`gcc/check-c`) + 4.25 h (`gcc/check-c++`) + 5.75 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.25 h (`check-intl`, [...], `check-lto-plugin`, `check-target`) = 35.75 h on
+10.25 h (`check-intl`, [...], `check-lto-plugin`, `check-target`) = 39.75 h on
coulomb.SCHWINGE.
@@ -606,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)
+ [...]
- * As of b401cb7ed15602d244a6807835b0b9d740a302a8 (2012-11-26;
- 769bf18a20ee2540ca7601cdafabd62b18b9751b (2012-10-01)), there are
- regressions (FAILs) in libgomp execution tests on coulomb.SCHWINGE.
+ TODO.
+
+ * `g++`
- * 769bf18a20ee2540ca7601cdafabd62b18b9751b..be3860ba8df48cca3253da4f02fd2d42d856ce80
+ spawn [open ...]
+ terminate called after throwing an instance of 'int'
+ FAIL: g++.dg/eh/sighandle.C -std=gnu++98 execution test
- On GNU/Hurd:
+ FAIL: g++.dg/eh/sighandle.C -std=gnu++11 execution test
+
+ TODO.
- 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 ...]
+ FAIL: g++.dg/cdce3.C -std=gnu++98 execution test
+
+ FAIL: g++.dg/cdce3.C -std=gnu++11 execution test
+
+ TODO.
- They used to PASS.
+ 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
+
+ TODO. The gfortran ones worked fine.
+
+ * `[ARCH]/libgomp`
+
+ 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:
+
+ spawn [open ...]
+
+ Program aborted. Backtrace:
+ #0 0x1042523
+ #1 0x1043D6F
+ #2 0x10F9BC7
+ FAIL: libgomp.fortran/lib1.f90 -O1 execution test
+
+ 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
diff --git a/open_issues/gccgo.mdwn b/open_issues/gccgo.mdwn
index fb94cb83..9e724b95 100644
--- a/open_issues/gccgo.mdwn
+++ b/open_issues/gccgo.mdwn
@@ -34,8 +34,8 @@ First, make the language functional, have its test suite pass without errors.
## Svante's work
Per [[!message-id "1335509732.3707.179.camel@hp.my.own.domain"]], Svante has
-been working on this, has some (unpublished) patches, and this is currently
-blocked on [[`getcontext`/`setcontext`|open_issues/glibc/t/tls-threadvar]].
+been working on this, has some (unpublished) patches, and this was blocked on
+[[`getcontext`/`makecontext`/`setcontext`/`swapcontext`|glibc]].
## `getcontext`/`makecontext`/`setcontext`/`swapcontext` usage analysis
@@ -53,7 +53,7 @@ The `*context` functions are used in `libgo/runtime/go-signal.c` and
`__splitstack_makecontext`, `__splitstack_resetcontext`,
`__splitstack_block_signals_context` are to be provided by libgcc. However, in
said libgo runtime files, they're used only `#ifdef USING_SPLIT_STACK`.
-[[I|ŧschwinge]] would assume that before we can enable split stacks, first
+[[I|tschwinge]] would assume that before we can enable split stacks, first
[[open_issues/glibc/t/tls-threadvar]] needs to be fixed.
In `libgo/runtime/proc.c`:`runtime_gogo`, `setcontext` is used to *switch
diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn
index eddc2fdc..67a38e96 100644
--- a/open_issues/gdb.mdwn
+++ b/open_issues/gdb.mdwn
@@ -33,8 +33,8 @@ git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefi
-->
-Last reviewed up to the [[Git mirror's 6330ab576e18fb97912839fc116c7babb5fd8c70
-(2013-04-28) sources|source_repositories/gdb]].
+Last reviewed up to the [[Git mirror's 9799ab54486adf49a50e5aadd9f5e6bc03db6123
+(2013-06-13) sources|source_repositories/gdb]].
* Globally
@@ -71,11 +71,11 @@ Last reviewed up to the [[Git mirror's 6330ab576e18fb97912839fc116c7babb5fd8c70
Here's a log of a GDB build run; this is from our [[Git
repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch,
-commit 6330ab576e18fb97912839fc116c7babb5fd8c70 (2013-04-28), run on
+commit 9799ab54486adf49a50e5aadd9f5e6bc03db6123 (2013-06-13), run on
kepler.SCHWINGE and coulomb.SCHWINGE.
$ export LC_ALL=C
- $ ../Ferry_Tagscherer/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.7 CXX=g++-4.7 --disable-werror 2>&1 | tee log_build
+ $ ../Ferry_Tagscherer/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.8 CXX=g++-4.8 --disable-werror 2>&1 | tee log_build
[...]
$ make 2>&1 | tee log_build_
[...]
@@ -87,7 +87,7 @@ There are several occurences of *error: dereferencing type-punned pointer will
break strict-aliasing rules* in the MIG-generated stub files; thus no `-Werror`
until that is resolved ([[strict_aliasing]]).
-This takes up around 210 MiB and needs roughly 9 min on kepler.SCHWINGE and 25
+This takes up around 230 MiB and needs roughly 8 min on kepler.SCHWINGE and 28
min on coulomb.SCHWINGE.
<!--
@@ -168,11 +168,6 @@ formats and more emulation vectors.
exc_request_S.c:157:24: warning: no previous prototype for 'exc_server' []
exc_request_S.c:193:28: warning: no previous prototype for 'exc_server_routine' []
- * `dlopen`/`-ldl`
-
- -checking for library containing dlopen... none required
- +checking for library containing dlopen... -ldl
-
* `O_NOFOLLOW`
First seen in
@@ -183,8 +178,6 @@ formats and more emulation vectors.
[[!taglink open_issue_glibc]]?
- * Why does GNU/Linux have an additional `-ldl -rdynamic` when linking `gdb`?
-
* 00e1c4298d2b6fe040a9a970e98349602b12ddbf..6b25dae901ddedb3f330803542d3eac73cdcae4b:
+../../Ferry_Tagscherer/gdb/gnu-nat.c: In function 'info_port_rights':
@@ -194,12 +187,6 @@ formats and more emulation vectors.
+ from ../../Ferry_Tagscherer/gdb/gnu-nat.c:56:
+../../Ferry_Tagscherer/gdb/value.h:729:22: note: expected 'const char **' but argument is of type 'char **'
- * 6b25dae901ddedb3f330803542d3eac73cdcae4b..6330ab576e18fb97912839fc116c7babb5fd8c70:
-
- gcc-4.7 -c -DHAVE_CONFIG_H -g -O2 -I. -I../../Ferry_Tagscherer/libiberty/../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic ../../Ferry_Tagscherer/libiberty/hashtab.c -o hashtab.o
- +../../Ferry_Tagscherer/libiberty/hashtab.c: In function 'hash_pointer':
- +../../Ferry_Tagscherer/libiberty/hashtab.c:1001:7: warning: right shift count >= width of type [enabled by default]
-
# Install
@@ -235,6 +222,12 @@ GNU/Hurd, these generally are `gdb.multi/watchpoint-multi`, and an unknown
## Analysis
+The testsuite uses the system's default `gcc` (and similar) compilers, not
+those specified on the `configure` line ([[!taglink open_issue_gdb]]?), see
+`find_gcc` (and similar) usage in the testsuite and DejaGnu. Maybe something
+like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting
+`CC_FOR_TARGET` (and similar) per `gdb/testsuite/lib/future.exp`?
+
$ toolchain/logs/process gdb test
* `gdb.base/attach-pie-misread.exp`
@@ -295,6 +288,15 @@ GNU/Hurd, these generally are `gdb.multi/watchpoint-multi`, and an unknown
At this point, the system hangs; no new processes can be spawned, so
perhaps an issue with the exec server.
+ * `gdb.threads/manythreads.exp`
+
+ [[!taglink open_issue_libpthread]]. Perhaps fails due to pthread
+ attributes usage? Doesn't execute properly:
+
+ $ gdb/testsuite/gdb.threads/manythreads
+ manythreads: ../libpthread/sysdeps/mach/pt-thread-halt.c:51: __pthread_thread_halt: Unexpected error: (ipc/rcv) invalid name.
+ Killed
+
* Linux syscall usage, `<asm/unistd.h>`
* `UNSUPPORTED: gdb.threads/ia64-sigill.exp: Couldn't compile ../../../master/gdb/testsuite/gdb.threads/ia64-sigill.c: unrecognized error`
@@ -369,15 +371,172 @@ GNU/Hurd, these generally are `gdb.multi/watchpoint-multi`, and an unknown
*stopped,reason="signal-received",signal-name="SIGSEGV",signal-meaning="Segmentation fault",frame={addr="0x00014add",func="??",args=[],from="/lib/ld.so"},thread-id="4",stopped-threads="all"
- * `gdb.arch/i386-float.exp: info float`
-
- Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.arch/i386-float.exp ...
- PASS: gdb.arch/i386-float.exp: first stepi
- FAIL: gdb.arch/i386-float.exp: info float
- PASS: gdb.arch/i386-float.exp: second stepi
- PASS: gdb.arch/i386-float.exp: info float
-
- Only fails for GNU/Hurd: the floating point stack initially is not
- all-zeroes, which is expected, and which it is on GNU/Linux.
+ * `gdb.base/call-signal-resume.exp`
+
+ $ gdb -q gdb/testsuite/gdb.base/call-signals
+ (gdb) break stop_one
+ (gdb) r
+ (gdb) call gen_signal()
+ (gdb) bt
+ (gdb) frame [<function called from gdb>]
+ (gdb) return
+ (gdb) break handle_signal
+ (gdb) c
+ (gdb) c
+
+ kepler.SCHWINGE:
+
+ Breakpoint 2, handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28
+ 28 }
+ (gdb) bt
+ #0 handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28
+ #1 <signal handler called>
+ #2 0xb7fde416 in __kernel_vsyscall ()
+ #3 0xb7dffd96 in kill () at ../sysdeps/unix/syscall-template.S:81
+ #4 0x0804859c in gen_signal () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:35
+ #5 0x08048610 in main () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:81
+
+ coulomb.SCHWINGE:
+
+ Breakpoint 2, handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28
+ 28 }
+ (gdb) bt
+ #0 handle_signal (sig=6) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:28
+ #1 0x010baac2 in trampoline () from /lib/i386-gnu/libc.so.0.3
+ #2 0x00000006 in ?? ()
+ #3 0x00000000 in ?? ()
+
+ kepler.SCHWINGE:
+
+ (gdb) c
+ Continuing.
+ no signal
+ [Inferior 1 (process 10401) exited normally]
+
+ coulomb.SCHWINGE:
+
+ (gdb) c
+ Continuing.
+ no signal
+
+ Program received signal SIGSEGV, Segmentation fault.
+ 0x00000000 in ?? ()
+ (gdb) bt
+ #0 0x00000000 in ?? ()
+ #1 0x01116c28 in _IO_acquire_lock_fct (p=<synthetic pointer>) at libioP.h:905
+ #2 _IO_puts (str=0x80487e0 "no signal") at ioputs.c:45
+ #3 0x080486d8 in gen_signal () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:38
+ #4 0x0804873d in main () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/call-signals.c:81
+
+ This is apparently new with the glibc 2.17 upgrade. If not doing the
+ manual `gen_signal` call, it works fine. TODO.
+
+ * `gdb.base/relativedebug.exp`
+
+ (gdb) PASS: gdb.base/relativedebug.exp: continue
+ bt
+ #0 0x010a1afc in ?? () from /lib/i386-gnu/libc.so.0.3
+ #1 0x010a23be in mach_msg () from /lib/i386-gnu/libc.so.0.3
+ #2 0x0126cd98 in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3
+ #3 0x010e2141 in ?? () from /lib/i386-gnu/libc.so.0.3
+ #4 0x010e23ed in kill () from /lib/i386-gnu/libc.so.0.3
+ #5 0x010e17f4 in raise () from /lib/i386-gnu/libc.so.0.3
+ #6 0x010e5b7c in abort () from /lib/i386-gnu/libc.so.0.3
+ #7 0x08048607 in handler (signo=14) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/relativedebug.c:25
+ #8 0x010bdac2 in ?? () from /lib/i386-gnu/libc.so.0.3
+ Backtrace stopped: previous frame inner to this frame (corrupt stack?)
+ (gdb) FAIL: gdb.base/relativedebug.exp: pause found in backtrace
+
+ This is apparently new with the glibc 2.17 upgrade. Previously it said:
+
+ (gdb) PASS: gdb.base/relativedebug.exp: continue
+ bt
+ #0 0x0107c85c in ?? () from /lib/i386-gnu/libc.so.0.3
+ #1 0x0107d069 in mach_msg () from /lib/i386-gnu/libc.so.0.3
+ #2 0x01220d4f in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3
+ #3 0x010bb683 in ?? () from /lib/i386-gnu/libc.so.0.3
+ #4 0x010bb8f6 in kill () from /lib/i386-gnu/libc.so.0.3
+ #5 0x010bad76 in raise () from /lib/i386-gnu/libc.so.0.3
+ #6 0x010bf029 in abort () from /lib/i386-gnu/libc.so.0.3
+ #7 0x08048597 in handler (signo=14) at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/relativedebug.c:25
+ #8 0x01098282 in ?? () from /lib/i386-gnu/libc.so.0.3
+ #9 0x010bbe5a in sigsuspend () from /lib/i386-gnu/libc.so.0.3
+ #10 0x0112fee1 in pause () from /lib/i386-gnu/libc.so.0.3
+ #11 0x080485c5 in main () at ../../../Ferry_Tagscherer/gdb/testsuite/gdb.base/relativedebug.c:32
+ (gdb) PASS: gdb.base/relativedebug.exp: pause found in backtrace
+
+ TODO.
+
+ * `gdb.gdb/selftest.exp`
+
+ (gdb) PASS: gdb.gdb/selftest.exp: send SIGINT signal to child process
+ backtrace
+ #0 0x0146fafc in ?? () from /lib/i386-gnu/libc.so.0.3
+ #1 0x014703be in mach_msg () from /lib/i386-gnu/libc.so.0.3
+ #2 0x0163bd98 in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3
+ #3 0x014b0141 in ?? () from /lib/i386-gnu/libc.so.0.3
+ #4 0x014b03ed in kill () from /lib/i386-gnu/libc.so.0.3
+ #5 0x082cf471 in _rl_handle_signal (sig=2) at ../../Ferry_Tagscherer/readline/signals.c:221
+ #6 0x0148bac2 in ?? () from /lib/i386-gnu/libc.so.0.3
+ Backtrace stopped: previous frame inner to this frame (corrupt stack?)
+ (gdb) FAIL: gdb.gdb/selftest.exp: backtrace through signal handler
+
+ This is apparently new with the glibc 2.17 upgrade. Previously it said:
+
+ (gdb) PASS: gdb.gdb/selftest.exp: send SIGINT signal to child process
+ backtrace
+ #0 0x0144885c in ?? () from /lib/i386-gnu/libc.so.0.3
+ #1 0x01449069 in mach_msg () from /lib/i386-gnu/libc.so.0.3
+ #2 0x015ecd4f in msg_sig_post () from /lib/i386-gnu/libhurduser.so.0.3
+ #3 0x01487683 in ?? () from /lib/i386-gnu/libc.so.0.3
+ #4 0x014878f6 in kill () from /lib/i386-gnu/libc.so.0.3
+ #5 0x082cf401 in _rl_handle_signal (sig=2) at ../../Ferry_Tagscherer/readline/signals.c:221
+ #6 0x01464282 in ?? () from /lib/i386-gnu/libc.so.0.3
+ #7 0x0144fce3 in ?? () from /lib/i386-gnu/libc.so.0.3
+ #8 0x0153975b in poll () from /lib/i386-gnu/libc.so.0.3
+ #9 0x081c91c2 in gdb_wait_for_event (block=1) at ../../Ferry_Tagscherer/gdb/event-loop.c:804
+ #10 0x081c998f in gdb_do_one_event () at ../../Ferry_Tagscherer/gdb/event-loop.c:402
+ #11 0x081c9b07 in start_event_loop () at ../../Ferry_Tagscherer/gdb/event-loop.c:431
+ #12 0x081c2f42 in captured_command_loop (data=data@entry=0x0) at ../../Ferry_Tagscherer/gdb/main.c:260
+ #13 0x081c0e57 in catch_errors (func=func@entry=0x81c2f30 <captured_command_loop>, func_args=func_args@entry=0x0, errstring=errstring@entry=0x83
+ 5b81b "", mask=mask@entry=6) at ../../Ferry_Tagscherer/gdb/exceptions.c:546
+ #14 0x081c388c in captured_main (data=data@entry=0x19ff150) at ../../Ferry_Tagscherer/gdb/main.c:1055
+ #15 0x081c0e57 in catch_errors (func=func@entry=0x81c3130 <captured_main>, func_args=func_args@entry=0x19ff150, errstring=errstring@entry=0x835b
+ 81b "", mask=mask@entry=6) at ../../Ferry_Tagscherer/gdb/exceptions.c:546
+ #16 0x081c43c0 in gdb_main (args=0x19ff150) at ../../Ferry_Tagscherer/gdb/main.c:1064
+ #17 0x08099533 in main (argc=5, argv=0x19ff1e8) at ../../Ferry_Tagscherer/gdb/gdb.c:34
+ (gdb) PASS: gdb.gdb/selftest.exp: backtrace through signal handler
+
+ TODO.
+
+ * `gdb.python/python.exp`
+
+ >PASS: gdb.python/python.exp: post event insertion - gdb.post_event(Foo())
+ end
+ ERROR: Process no longer exists
+ UNRESOLVED: gdb.python/python.exp: post event insertion - end
+
+ This is apparently new with the glibc 2.17 upgrade. Previously it said:
+
+ >PASS: gdb.python/python.exp: post event insertion - gdb.post_event(Foo())
+ end
+ (gdb) PASS: gdb.python/python.exp: post event insertion - end
+ [More PASSes.]
+
+ TODO.
+
+ * `gdb.base/restore.exp`, `gdb.base/store.exp`
+
+ Several FAILs, starting with GCC 4.8 usage:
+
+ (gdb) PASS: gdb.base/restore.exp: caller3 calls callee1; return callee now
+ print l1
+ $16 = <optimized out>
+ (gdb) FAIL: gdb.base/restore.exp: caller3 calls callee1; return restored l1 to 32492
+
+ [[!GCC_PR 55056]], [[!message-id
+ "20130126202645.GA4888@host2.jankratochvil.net"]], and maybe [[!message-id
+ "CAO2gOZXvCLdaKE2=ZKpjGVGq8A0wQ94-AUo7eKvvWHWncrU_yg@mail.gmail.com"]] look
+ related.
TODO.
diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn
index b06b4f9f..31437744 100644
--- a/open_issues/glibc.mdwn
+++ b/open_issues/glibc.mdwn
@@ -30,14 +30,14 @@ Here's what's to be done for maintaining glibc.
<!--
git checkout reviewed
-git log --reverse --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..sourceware/master
+git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..sourceware/master
-i
-/^commit |^Merge:|^---$|hurd|linux|gs:|__ASSUME
+/^commit |^merge:|^---$|mach[^i]|hurd|linux|gs:|__assume
-->
-Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8
-(2012-11-03) sources|source_repositories/glibc]].
+Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8
+(2013-05-24) sources|source_repositories/glibc]].
* `t/hurdsig-fixes`
@@ -221,9 +221,9 @@ Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8
b1b2aaf8eb9eed301ea8f65b96844568ca017f8b),
`RLIMIT_RTTIME`, `SEEK_DATA` (`unistd.h`), `SEEK_HOLE` (`unistd.h`)
`clock_adjtime`, `fallocate`, `fallocate64`, `name_to_handle_at`,
- `open_by_handle_at`, `process_vm_readv`, `process_vm_writev`, `sendmmsg`,
+ `open_by_handle_at`, `process_vm_readv`, `process_vm_writev`,
`setns`, `sync_file_range`, [[`mremap`|mremap]] and [[several
- `MAP_*`|glibc/mmap]]
+ `MAP_*`|glibc/mmap]], `PTR_MANGLE`/`PTR_DEMANGLE` (`t/ptrmangle`)
Check also the content of `gnu/stubs.h`, which lists all the functions
marked as stub which only return `ENOSYS`.
@@ -259,7 +259,7 @@ Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8
<youpi> so I'd say ignore the error for now, we'll add the
declaration
- * [[`getcontext`/`setcontext`|t/tls-threadvar]]
+ * [[t/tls-threadvar]]
* `futimesat`
@@ -297,7 +297,8 @@ Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8
* `sys/timerfd.h`
- * `timespec_get` (74033a2507841cf077e31221de2481ff30b43d51)
+ * `timespec_get` (74033a2507841cf077e31221de2481ff30b43d51,
+ 87f51853ce3671f4ba9a9953de1fff952c5f7e52)
* `waitflags.h` (`WEXITED`, `WNOWAIT`, `WSTOPPED`, `WCONTINUED`)
@@ -373,6 +374,33 @@ Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8
<braunr> no, linux is more permissive
<braunr> (at least, on this matter)
+ * `getcontext`/`makecontext`/`setcontext`/`swapcontext`
+
+ Support for these functions within the Hurd threadvar environment has
+ been added, but for multi-threaded applications ([[libpthread]]), it is
+ a bit clunky: as a practical requirement, a thread's stack size always
+ has to be equal to `PTHREAD_STACK_DEFAULT`, 2 MiB, and also has to be
+ naturally aligned. The idea is still to [[get rid of Hurd threadvars
+ and replace them with TLS|t/tls-threadvar]].
+
+ Aside from [[gccgo]], the following packages might make use of these
+ functions, searching on <http://codesearch.debian.net/> for
+ `\b(get|set|make|swap)context\s*\(` on 2013-05-18: boost1.49,
+ chromium-browser, gtk-vnc, guile-1.8, iceape, icedove, iceweasel,
+ libgc, libsigsegv, luatex, mono, nspr, pth, ruby1.8, texlive-bin, uim,
+ and more.
+
+ * `recvmmsg`/`sendmmsg` (`t/sendmmsg`)
+
+ From [[!message-id "20120625233206.C000A2C06F@topped-with-meat.com"]],
+ Roland McGrath: *They are generally useful interfaces and there is
+ nothing intrinsically Linuxoid about them. At least when not given a
+ timeout, they could be implemented in terms of sendmsg/recvmsg. So
+ perhaps we ought to have a sysdeps/posix implementation that the Hurd
+ would use instead of stubs (and folks can consider adding new RPCs).
+ Then perhaps the Linux fallback case should be that instead of stubs,
+ too.*
+
For specific packages:
* [[octave]]
@@ -1090,6 +1118,63 @@ Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8
ea4d37b3169908615b7c17c9c506c6a6c16b3a26, especially since mach's
sleep.c is buggy (not considers interruption, extra time() (= RPC)
call)«.
+ * ba384f6ed9275f3966505f2375b56d169e3dc588,
+ 0409959c86f6840510851a851a1588677a2e537b,
+ e57b0c6100e63bfd816ae59339452eafc81f1d3a `C++11 thread_local
+ destructors support`. Anything needed to be done in our [[libpthread]]
+ and configured for us in [[GCC]]? Probably need to replicate the
+ `nptl/pthread_create.c` change, and fix
+ `stdlib/Makefile`:`LDFLAGS-tst-tls-atexit`.
+
+ +++ include/link.h
+ @@ -302,6 +302,9 @@ struct link_map
+ + /* Number of thread_local objects constructed by this DSO. */
+ + size_t l_tls_dtor_count;
+
+ +++ include/stdlib.h
+ @@ -100,6 +100,11 @@ extern int __cxa_atexit (void (*func) (void *), void *arg, void *d);
+ +extern int __cxa_thread_atexit_impl (void (*func) (void *), void *arg,
+ + void *d);
+ +extern void __call_tls_dtors (void);
+ +libc_hidden_proto (__call_tls_dtors);
+
+ +++ nptl/pthread_create.c
+ @@ -311,6 +311,9 @@ start_thread (void *arg)
+ [after the thread function returns]
+ + /* Call destructors for the thread_local TLS variables. */
+ + __call_tls_dtors ();
+
+ +++ stdlib/Makefile
+ +LDFLAGS-tst-tls-atexit = $(common-objpfx)nptl/libpthread.so \
+ + $(common-objpfx)dlfcn/libdl.so
+
+ +++ stdlib/cxa_thread_atexit_impl.c
+
+ +++ stdlib/exit.c
+ __run_exit_handlers (int status, struct exit_function_list **listp,
+ bool run_list_atexit)
+ {
+ + /* First, call the TLS destructors. */
+ + __call_tls_dtors ();
+
+ +gcc-4.7 tst-tls-atexit.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wno-parenth
+ +gcc-4.7 -nostdlib -nostartfiles -o [...]/tschwinge/Roger_Whittaker.build/stdlib/tst-tls-atexit [...]/tschwinge/Roger_Whittaker.build/nptl/lib
+ +gcc-4.7: error: [...]/tschwinge/Roger_Whittaker.build/nptl/libpthread.so: No such file or directory
+ +make[2]: *** [[...]/tschwinge/Roger_Whittaker.build/stdlib/tst-tls-atexit] Error 1
+ +gcc-4.7 tst-tls-atexit-lib.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wno-par
+ +tst-tls-atexit-lib.c: In function 'do_foo':
+ +tst-tls-atexit-lib.c:35:3: warning: implicit declaration of function '__cxa_thread_atexit_impl' [-Wimplicit-function-declaration]
+
+ * a600e5cef53e10147932d910cdb2fdfc62afae4e `Consolidate Linux and POSIX
+ libc_fatal code.` -- is `backtrace_and_maps` specific to Linux?
+ * 288f7d79fe2dcc8e62c539f57b25d7662a2cd5ff `Use __ehdr_start, if
+ available, as fallback for AT_PHDR.` -- once we require Binutils 2.23,
+ can we simplify [[glibc's process startup|glibc/process]]
+ (initialization of `_dl_phdr` and `_dl_phnum`)? As these are only used
+ for `[!SHARED]`, can we completely remove them (that is, the `phdr` and
+ `phdrsz` members) from `hurd_startup_data`, and simplify
+ [[hurd/interface/exec_startup_get_info]], or do we still require these
+ for the `[SHARED]` case?
## Update
@@ -1102,8 +1187,14 @@ Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8
# Build
Here's a log of a glibc build run; this is from our [[Git repository's
-60f4d2f33666d77ac018cb9956675dcad04bb996 (2013-02-12;
-fbeafedeea37e0af1984a6511018d159f5ceed6a (2012-11-03))
+83fed41a9ed81db6ca517185aefb296f74868c2f (2013-05-26;
+0323d08657f111267efa47bd448fbf6cd76befe8 (2013-05-24))
+plus 2b66ef5d55325b2957d6c62908ca065228e56814,
+ec9dd97cecafba5ddf5c3ec683db7ad5b4421923,
+07b4c13d0be4814ef10bbfbfd68db604978aa0e5,
+528c24058fb100fb27fe5c211b92be84c67a6659, `t/elfosabi_gnu` reverted,
+ec9dd97cecafba5ddf5c3ec683db7ad5b4421923 (again...),
+`id:"87bo7xo1ay.fsf@kepler.schwinge.homeip.net"`
sources|source_repositories/glibc]], run on coulomb.SCHWINGE.
$ export LC_ALL=C
@@ -1224,7 +1315,7 @@ TODO.
$ make install_root="$PWD".install install 2>&1 | tee log_install
[...]
-This takes up around 100 MiB, and needs roughly X min on kepler.SCHWINGE and 16
+This takes up around 100 MiB, and needs roughly X min on kepler.SCHWINGE and 14
min on coulomb.SCHWINGE.
@@ -1240,11 +1331,12 @@ TODO.
$ make -k install_root=/INVALID check fast-check=yes 2>&1 | tee log_test
[...]
-This needs roughly X min on kepler.SCHWINGE and 60 min on coulomb.SCHWINGE.
+This needs roughly X min on kepler.SCHWINGE and 145 min on coulomb.SCHWINGE.
Specifying `fast-check=yes` disables the `conformtest` which takes 1.75 h (out
of 2.75 h total) on coulomb.SCHWINGE, doesn't pass anyway, and clearly isn't
our most critical issue to solve.
+`elf/tst-xmmymm.out` is another candidate to disable: needs 90 min to run.
## Analysis
@@ -1270,16 +1362,6 @@ Failures, mostly in order of appearance:
SIGSEGV. Or SIGILL.
- * `stdlib/bug-getcontext.out`
-
- getcontext failed, errno: 1073741902.
-
- [[Not implemented|t/tls-threadvar]].
- In 8958805c11c741d9211e20612c86271d906c9a0b
- testing, `stdlib/bug-getcontext.out` now says: *Skipping test; no support
- for FP exceptions.*, in cba1c83ad62a11347684a9daf349e659237a1741 testing,
- it's back to the previous failure.
-
* `stdlib/tst-secure-getenv.out`
open (/proc/self/exe): No such file or directory
@@ -1299,6 +1381,8 @@ Failures, mostly in order of appearance:
* `libio/tst-atime.out`, `dirent/tst-fdopendir.out`
+ [[!message-id "201305102256.56636.toscano.pino@tiscali.it"]].
+
`libio/tst-atime.out`:
atime has not changed
@@ -1389,6 +1473,8 @@ Failures, mostly in order of appearance:
* `posix/bug-glob2.out`
+ Intermittent.
+
Timed out: killed the child process
* `posix/annexc.out`
@@ -1460,6 +1546,10 @@ Failures, mostly in order of appearance:
Perhps because we implement `vfork` in terms of `fork` (`posix/vfork.c`)?
+ * `posix/tst-pathconf.out`
+
+ pathconf on directory failed: (os/kern) successful
+
* `io/test-lfs.out`
/home/thomas/tmp/glibc/tschwinge/Roger_Whittaker.build/io/test-lfs: cannot write test string to large file: Invalid argument
@@ -1471,17 +1561,6 @@ Failures, mostly in order of appearance:
`futimesat` is a stub.
- * `resource/bug-ulimit1.out`
-
- Result of ulimit (UL_SETFSIZE, 10000): 0
- Result of ulimit(UL_GETFSIZE): 10000
-
- Buggy sysdeps/unix/bsd/ulimit.c return values.
-
- [[!message-id "201211182342.51619.toscano.pino@tiscali.it"]]
-
- Fixed in glibc >= 2.18.
-
* `misc/tst-pselect.o`
tst-pselect.c: In function 'do_test':
@@ -1610,7 +1689,7 @@ Failures, mostly in order of appearance:
SIGSEGV.
- * `elf/tst-audit1.out`, `elf/tst-audit2.out`
+ * `elf/tst-audit1.out`, `elf/tst-audit2.out`, `elf/tst-audit8.out`
SIGKILL.
@@ -1631,6 +1710,11 @@ Failures, mostly in order of appearance:
A lot. Including `/usr/include/device/*.h`, `/usr/include/mach/*.h`,
`/usr/include/hurd/*.h`.
+ * `debug/tst-longjmp_chk2.out`, `debug/tst-longjmp_chk3.out`,
+ `debug/tst-longjmp_chk4.out`, `debug/tst-longjmp_chk5.out`
+
+ All say: `Obtained backtrace with 0 functions`.
+
Earlier failures; no longer seen:
* `test-assert-perr.out`
@@ -1681,6 +1765,21 @@ Earlier failures; no longer seen:
As of 8958805c11c741d9211e20612c86271d906c9a0b, this test now passes --
correct?
+ * `stdlib/bug-getcontext.out`
+
+ getcontext failed, errno: 1073741902.
+
+ Fixed, implemented in `t/context_functions`.
+
+ * `resource/bug-ulimit1.out`
+
+ Result of ulimit (UL_SETFSIZE, 10000): 0
+ Result of ulimit(UL_GETFSIZE): 10000
+
+ Buggy `sysdeps/unix/bsd/ulimit.c` return values.
+
+ Fixed, [[!message-id "201211182342.51619.toscano.pino@tiscali.it"]].
+
Compared to Debian:
$ bash ~/tmp/glibc/debian/eglibc-2.13/debian/testsuite-checking/convertlog.sh log_test > log_test.filtered
diff --git a/open_issues/glibc/t/tls-threadvar.mdwn b/open_issues/glibc/t/tls-threadvar.mdwn
index 5f1345c6..105a07c7 100644
--- a/open_issues/glibc/t/tls-threadvar.mdwn
+++ b/open_issues/glibc/t/tls-threadvar.mdwn
@@ -64,59 +64,3 @@ dropped altogether, and `__thread` directly be used in glibc.
<youpi> I saw the mails, but didn't investigate at all
[[!message-id "878vdyqht3.fsf@kepler.schwinge.homeip.net"]].
-
-
-# `getcontext`/`setcontext`
-
-Needed for [[gccgo]].
-
-Instead of adding support for `getcontext`/`setcontext` within the Hurd
-threadvar context, which might become a bit ugly, the idea is to get rid of
-Hurd threadvars and replace them with TLS (as we want to, anyway).
-
-
-## IRC, freenode, #hurd, 2012-04-19
-
- <gnu_srs> How much work/knowledge is needed to implement
- getcontext/setcontext?
- <gnu_srs> Any already implemented alternatives available?
- <youpi> x86 registers knowledge, as well as unix signal masks
- <youpi> there's the linux implementation that can be taken as an
- exxample, but the signal part has to be rewritten
- <gnu_srs> Well, it's a pity they are not implemented. That's the
- remaining hurdle to get gccgo working :-(
- <youpi> uh :/
- <gnu_srs> Everything builds, but the testsuite fails due to these
- missing functions.
- <gnu_srs> Regarding getcontext/setcontext they seem to be written
- in assembly for linux but the code is not very long.
- <gnu_srs> How much effort would it be to write something similar
- for Hurd? Anybody fluent in asm?
- <gnu_srs> And registers and signals.
- <tschwinge> gnu_srs: Signals is the key thing -- everything else we
- can probably just copy. I have never/not yet looked at it,
- though.
- <gnu_srs> For kfreebsd it is written in C: kern_context.c, 3/4 in
- one file: getcontext, setcontext, swapcontext, not makecontext.
- <gnu_srs> Dunno how much assembly calls used though.
- <gnu_srs> Hi, any preferences about implementing get/setcontext in
- C or Asm?
- <tschwinge> gnu_srs: I think these will have to be implemented in
- assembly. Based on the Linux x86 variants.
-
-
-### IRC, freenode, #hurd, 2012-04-20
-
- <tschwinge> youpi: Your understanding of that is better than mine
- -- the *context stuff can't be very useful at the moment, because
- when the user changes uc_stack.ss_sp (which the glibc tests are
- doing), we're losing access to the _hurd_threadvars. Correct?
- <tschwinge> At least the getcontext test works, the other get a
- SIGILL.
- <tschwinge> others
- <tschwinge> _hurd_threadvars issue is just guessing.
- <youpi> tschwinge: yes, threadvars are on the stack
- <youpi> threadvars is not much code, it should just work, but care
- has to be taken on the libpthread/libthread side, which does some
- initialization
- <tschwinge> OK, that at least matches my understanding.
diff --git a/open_issues/libpthread.mdwn b/open_issues/libpthread.mdwn
index 28532320..e2fda122 100644
--- a/open_issues/libpthread.mdwn
+++ b/open_issues/libpthread.mdwn
@@ -601,6 +601,9 @@ Most of the issues raised on this page has been resolved, a few remain.
<tschwinge> Mhm, I see.
<braunr> so for now, i'm using this approach as a hack only
<tschwinge> I'm working on phasing out threadvars, but we're not there yet.
+
+[[glibc/t/tls-threadvar]].
+
<tschwinge> Yes, that's fine for the moment.
<braunr> tschwinge: a simple definition wouldn't work
<braunr> tschwinge: i resorted to a weak symbol, and see how it goes
diff --git a/open_issues/llvm.mdwn b/open_issues/llvm.mdwn
index 2a4b4ed5..30b18edf 100644
--- a/open_issues/llvm.mdwn
+++ b/open_issues/llvm.mdwn
@@ -97,6 +97,10 @@ a06fe9183fbffb78798a444da9bc3040fdd444aa (2013-03-23), test-suite
2012 Debian project,
<http://wiki.debian.org/SummerOfCode2012/StudentApplications/AndrejBelym>.
+ * [[sanitizers|_san]]
+
+ A lot of Linux-specific things.
+
# Build
diff --git a/toolchain/elfosabi_gnu.mdwn b/toolchain/elfosabi_gnu.mdwn
index 16b7d342..686b9141 100644
--- a/toolchain/elfosabi_gnu.mdwn
+++ b/toolchain/elfosabi_gnu.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2011, 2013 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -18,23 +18,13 @@ This is shared with GNU/Linux.
The [[/glibc]] patch is currently to be found in [[Savannah
glibc|source_repositories/glibc]] TopGit branch `t/elfosabi_gnu`.
+Updated at [[!message-id "87bo7xo1ay.fsf@kepler.schwinge.homeip.net"]].
# History
* [[!debbug 630180]], [[!debbug 632686]]
- * [sourceware bug
- 12913](http://sourceware.org/bugzilla/show_bug.cgi?id=12913)
- * [libc-alpha
- thread](http://sourceware.org/ml/libc-alpha/2011-06/threads.html#00087)
- ([continues](http://sourceware.org/ml/libc-alpha/2011-07/threads.html#00031))
- * [bug-hurd
- thread](http://lists.gnu.org/archive/html/bug-hurd/2011-06/threads.html#00060)
- ([continues](http://lists.gnu.org/archive/html/bug-hurd/2011-07/threads.html#00020))
- * [generic-abi
- thread](http://groups.google.com/group/generic-abi/browse_frm/thread/194697b94a189063)
- * [binutils
- thread](http://sourceware.org/ml/binutils/2011-06/threads.html#00218)
- ([continues](http://sourceware.org/ml/binutils/2011-07/threads.html#00033))
- * [GDB thread](http://sourceware.org/ml/gdb-patches/2011-07/msg00088.html)
- * [GCC thread](http://gcc.gnu.org/ml/gcc-patches/2011-07/threads.html#00252)
+ * [[!sourceware_PR 12913]]
+ * [[!message-id "20110619130724.GV6349@const.famille.thibault.fr"]]
+ * [[!message-id "20110619201952.GS27884@const.famille.thibault.fr"]]
+ * [[!message-id "20110619203224.GT27884@const.famille.thibault.fr"]]
diff --git a/toolchain/logs b/toolchain/logs
-Subproject a264dc206a1ebd541f01d3f3c496a80b3b8d978
+Subproject 47b01111b73c44c557248591705f86fc3d66a28