summaryrefslogtreecommitdiff
path: root/open_issues
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2015-11-01 19:09:24 +0100
committerThomas Schwinge <thomas@codesourcery.com>2015-11-01 19:09:24 +0100
commit4ae03876c9a2c509bd187e6605706ab8c3ed4fe7 (patch)
tree734190ad969b6611f9f8405267ddc2ab9fb344ca /open_issues
parent309b203c54f2521bed72311554779f3c2e143425 (diff)
parenteee40e0494f8fed4a5db166b3d15b54c0e89a186 (diff)
Merge commit 'eee40e0494f8fed4a5db166b3d15b54c0e89a186'
Diffstat (limited to 'open_issues')
-rw-r--r--open_issues/binutils.mdwn150
-rw-r--r--open_issues/boehm_gc.mdwn151
-rw-r--r--open_issues/code_analysis.mdwn11
-rw-r--r--open_issues/gcc.mdwn329
-rw-r--r--open_issues/gcc/libmudflap.mdwn74
-rw-r--r--open_issues/glibc.mdwn90
-rw-r--r--open_issues/gnumach_memory_management_2.mdwn31
-rw-r--r--open_issues/libpager_deadlock.mdwn6
-rw-r--r--open_issues/nptl.mdwn16
-rw-r--r--open_issues/translate_fd_or_port_to_file_name.mdwn7
10 files changed, 574 insertions, 291 deletions
diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn
index 15ddcc7b..7a887d52 100644
--- a/open_issues/binutils.mdwn
+++ b/open_issues/binutils.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013, 2014 Free
-Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013, 2014, 2015
+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
@@ -47,8 +47,8 @@ git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefi
-->
-Last reviewed up to Git commit 05db5edd7923711a20c6225ea8e15f36e819d140
-(2014-09-16).
+Last reviewed up to Git commit 110f91128cf3e047eb1e04d346c27d71cc33fb9c
+(2015-04-19).
* Globally
@@ -96,6 +96,16 @@ Last reviewed up to Git commit 05db5edd7923711a20c6225ea8e15f36e819d140
* `gas/`
+ * `config/tc-i386.c`
+
+ #ifdef TE_LINUX
+ /* Default to compress debug sections for Linux. */
+ int flag_compress_debug = 1;
+ #endif
+
+ This has received quite some criticism, but it has not yet been
+ corrected.
+
* `config/te-gnu.h`
C.f. `te-linux.h`; search tree for `TE_LINUX` vs. `TE_GNU` usage.
@@ -192,6 +202,26 @@ Last reviewed up to Git commit 05db5edd7923711a20c6225ea8e15f36e819d140
* `dr_status_mirror` is not really used anywhere. Get rid of it; or,
update it everytime the real value is read from the kernel?
+ * TODO
+
+ {+set_gdbarch_vsyscall_range (gdbarch, linux_vsyscall_range);+}
+ {+ set_gdbarch_infcall_mmap (gdbarch, linux_infcall_mmap);+}
+
+ * TODO
+
+ diff --git ./gdb/doc/gdb.texinfo ./gdb/doc/gdb.texinfo
+ @@ -17340,6 +17433,24 @@ Access to those variables will generate a compiler error which @value{GDBN}
+ will print to the console.
+ @end table
+
+ {+@subsection Compiler search for the @code{compile} command+}
+ {+[...]+}
+ {+Specifically @code{PATH} is searched for binaries matching regular expression+}
+ {+@code{@var{arch}(-[^-]*)?-@var{os}-gcc} [...]. @var{os} is currently supported only for+}
+ {+pattern @code{linux(-gnu)?}.+}
+
+ * Check testsuite with check-read1 / READ1=t [./gdb/testsuite/README]
+
* `libdecnumber/`
Should/can probably align to GNU/Linux.
@@ -212,6 +242,27 @@ Last reviewed up to Git commit 05db5edd7923711a20c6225ea8e15f36e819d140
Compare to `i[3-7]86-*-linux-*`, but don't need a.out (`i386linux`)
and 64 bit support.
+ * Linuxism
+
+ diff --git ./ld/testsuite/ld-i386/i386.exp ./ld/testsuite/ld-i386/i386.exp
+ @@ -263,3 +263,93 @@ run_dump_test "pr12627"
+ {+# Must be Linux native with the C compiler+}
+ {+if { [isnative]+}
+ {+ && [istarget "i?86-*-linux*"]+}
+ +[...]
+
+ {+ PASS: ld-i386/pr17935-1+}
+ {+ PASS: ld-i386/pr17935-2+}
+ {+-PASS: Build plt-lib.so+}
+ {+-PASS: Build libplt-main1.a+}
+ {+-PASS: Build libplt-main2.a+}
+ {+-PASS: Build libplt-main3.a+}
+ {+-PASS: Build libplt-main4.a+}
+ {+-PASS: Build plt-main+}
+ {+-PASS: Build plt-main with PIE+}
+ {+-PASS: Run plt-main+}
+ {+-PASS: Run plt-main with PIE+}
+
* `__ehdr_start symbol`, c84ed8d89d0b8bf5a2968d465f77ac24bcfc40c2 -- can this
be helpful in the exec server, glibc, or elsewhere? Used in GDB (BFD)
commit bdbd9758806ed855af89244870fdc52cf3ff09bc.
@@ -259,12 +310,13 @@ 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 1.3 GiB, and runs for [[22 min|performance#measure]] on
-kepler.SCHWINGE and [[21 min|performance#measure]] on laplace.SCHWINGE.
+This takes up around 1.4 GiB, and runs for [[22 min|performance#measure]] on
+kepler.SCHWINGE and [[16 min|performance#measure]] on laplace.SCHWINGE.
<!--
$ (make && touch .go-install) 2>&1 | tee log_build_ && test -f .go-install && (make install && touch .go-test) 2>&1 | tee log_install && test -f .go-test && make -k check 2>&1 | tee log_test
+ $ (make && touch .go-install) 2>&1 | tee log_build_ && test -f .go-install && (make install && touch .go-test) 2>&1 | tee log_install && test -f .go-test && LD_PRELOAD=$HOME/fopen,unlink-NULL-wrapper.so make -k check 2>&1 | tee log_test
-->
@@ -323,6 +375,16 @@ formats, and more emulation vectors.
check takes a rather long time to determine the result,
`int,int,long,long`.
+ * Something's wrong with Hurd's [[!tag open_issue_glibc]]`rename`?
+
+ -checking whether rename honors trailing slash on destination... yes
+ -checking whether rename honors trailing slash on source... yes
+ +checking whether rename honors trailing slash on destination... no
+ +checking whether rename honors trailing slash on source... no
+
+ - -e 's|@''REPLACE_RENAME''@|0|g' \
+ + -e 's|@''REPLACE_RENAME''@|1|g' \
+
# Install
@@ -345,7 +407,7 @@ kepler.SCHWINGE and [[1 min|performance#measure]] on laplace.SCHWINGE.
$ make -k check 2>&1 | tee log_test
[...]
-This runs for [[26 min|performance#measure]] on kepler.SCHWINGE and [[63
+This runs for [[34 min|performance#measure]] on kepler.SCHWINGE and [[45
min|performance#measure]] on laplace.SCHWINGE.
When running `make -k check 2>&1 | tee log_test`, at the end of the testsuite
@@ -353,8 +415,65 @@ the `tee` process does not terminate if there are still stray leftover
processes that [have their stdout/stderr
open](http://sourceware.org/ml/gdb-patches/2012-10/msg00489.html). `kill`ing
these (`SIGKILL` may be needed), makes the `tee` process terminate, too. On
-GNU/Hurd, these generally are `gdb.base/sigaltstack`, `gdb.base/siginfo`,
-`gdb.multi/watchpoint-multi`, `gdb.threads/watchthreads`.
+GNU/Hurd, these generally are `gdb.base/sigaltstack`, `gdb.base/siginfo`, and
+`gdb.threads/watchthreads`.
+
+On laplace.SCHWINGE, running with
+`LD_PRELOAD=$HOME/fopen,unlink-NULL-wrapper.so` to get past [[!message-id
+"87a907b5f3.fsf@kepler.schwinge.homeip.net"]].
+
+ COLLECT_GCC=gcc-4.9 COLLECT_LTO_WRAPPER=/usr/lib/gcc/i586-linux-gnu/4.9/lto-wrapper COMPILER_PATH=gcctestdir/:/usr/lib/gcc/i586-linux-gnu/4.9/:/usr/lib/gcc/i586-linux-gnu/4.9/:/usr/lib/gcc/i586-linux-gnu/:/usr/lib/gcc/i586-linux-gnu/4.9/:/usr/lib/gcc/i586-linux-gnu/ LIBRARY_PATH=gcctestdir/:/usr/lib/gcc/i586-linux-gnu/4.9/:/usr/lib/gcc/i586-linux-gnu/4.9/../../../i386-linux-gnu/:/usr/lib/gcc/i586-linux-gnu/4.9/../../../../lib/:/lib/i386-linux-gnu/:/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/i586-linux-gnu/4.9/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-Wextra -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -D _LARGEFILE_SOURCE -D _FILE_OFFSET_BITS=64 -fmerge-constants -g -O2 -fno-use-linker-plugin -o incremental_test -B gcctestdir/ -v -mtune=generic -march=i586' gdb -q --args /usr/lib/gcc/i586-linux-gnu/4.9/collect2 --sysroot=/ --build-id --eh-frame-hdr -m elf_i386 --hash-style=gnu -dynamic-linker /lib/ld-linux.so.2 -o incremental_test /usr/lib/gcc/i586-linux-gnu/4.9/../../../i386-linux-gnu/crt1.o /usr/lib/gcc/i586-linux-gnu/4.9/../../../i386-linux-gnu/crti.o /usr/lib/gcc/i586-linux-gnu/4.9/crtbegin.o -Lgcctestdir -L/usr/lib/gcc/i586-linux-gnu/4.9 -L/usr/lib/gcc/i586-linux-gnu/4.9/../../../i386-linux-gnu -L/usr/lib/gcc/i586-linux-gnu/4.9/../../../../lib -L/lib/i386-linux-gnu -L/lib/../lib -L/usr/lib/i386-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/i586-linux-gnu/4.9/../../.. --incremental-full incremental_test_1.o incremental_test_2.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i586-linux-gnu/4.9/crtend.o /usr/lib/gcc/i586-linux-gnu/4.9/../../../i386-linux-gnu/crtn.o -debug
+ break __fopen_internal
+ r
+ (possibly) c
+ Breakpoint 1, __fopen_internal (filename=filename@entry=0x0, mode=mode@entry=0x809b4a7 "r", is32=is32@entry=0) at iofopen.c:65
+ 65 in iofopen.c
+ (gdb) bt
+ #0 __fopen_internal (filename=filename@entry=0x0, mode=mode@entry=0x809b4a7 "r", is32=is32@entry=0) at iofopen.c:65
+ #1 0xb7e38c1b in _IO_fopen64 (filename=0x0, mode=0x809b4a7 "r") at iofopen64.c:39
+ #2 0x0804c289 in ?? ()
+ #3 0x0804e670 in ?? ()
+ #4 0x0804aa8d in ?? ()
+ #5 0xb7deba73 in __libc_start_main (main=0x804a080, argc=38, argv=0xbfffe6a4, init=0x8098f90, fini=0x8099000, rtld_fini=0xb7fedc90 <_dl_fini>,
+ stack_end=0xbfffe69c) at libc-start.c:287
+ #6 0x0804b3a2 in ?? ()
+ (and another one after that)
+
+Goes away if `-debug` is removed.
+
+ commit 9a65bef918dd14d722ef2a1fec90f527158eabe0
+ Author: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
+ Date: Tue Jun 11 08:21:22 2013 +0000
+
+ 2013-06-11 Richard Biener <rguenther@suse.de>
+
+ * collect2.c (main): Do not redirect ld stdout/stderr when
+ debugging.
+
+
+ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199936 138bc75d-0d04-0410-961f-82ee72b054a4
+
+ diff --git gcc/collect2.c gcc/collect2.c
+ index 99dd41d..d3119b0 100644
+ --- gcc/collect2.c
+ +++ gcc/collect2.c
+ @@ -1189,8 +1189,11 @@ main (int argc, char **argv)
+ #ifdef COLLECT_EXPORT_LIST
+ export_file = make_temp_file (".x");
+ #endif
+ - ldout = make_temp_file (".ld");
+ - lderrout = make_temp_file (".le");
+ + if (!debug)
+ + {
+ + ldout = make_temp_file (".ld");
+ + lderrout = make_temp_file (".le");
+ + }
+
+ id:"alpine.LNX.2.00.1306101358420.26078@zhemvz.fhfr.qr"
+
+Does this also cause:
+
+ [-FAIL:-]{+PASS:+} justsyms
## Analysis
@@ -584,6 +703,15 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting
(gdb) kill
Kill the program being debugged? (y or n) y
+ * `gdb.base/fileio.exp`
+
+ FAIL: gdb.base/fileio.exp: Stat a NULL pathname returns ENOENT or EFAULT
+ FAIL: gdb.base/fileio.exp: Stat an empty pathname returns ENOENT
+ FAIL: gdb.base/fileio.exp: Stat a nonexistant file returns ENOENT (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: [...] (the program is no longer running)
+
+ Is this actually a correct assumption?
+
* `gdb.base/random-signal.exp`
Several things (suddenly?) seem to go wrong here. It seems we do hit
@@ -1026,10 +1154,6 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting
TODO.
- * GDB: *Memory at address 0 is possibly executable*, and similar others
-
- [[!message-id "878ulqqlrr.fsf@schwinge.name"]].
-
TODO.
diff --git a/open_issues/boehm_gc.mdwn b/open_issues/boehm_gc.mdwn
index 2913eea8..535bed61 100644
--- a/open_issues/boehm_gc.mdwn
+++ b/open_issues/boehm_gc.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2010, 2012, 2013, 2014 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2010, 2012, 2013, 2014, 2015 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
@@ -27,15 +27,15 @@ committed upstream should very like also be made there.
<!--
git checkout reviewed
-git log --reverse --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..upstream/master
+git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefix=./ --word-diff --color --find-renames --ignore-space-change ..upstream/master | awk '/^(\x1b\[[0-9]+m)?diff/ { c = " " $0; } /^(\x1b\[[0-9]+m)?@@/ { print c; } { print; }' | less
-i
-/^commit |^---$|hurd|linux|glibc
+/hurd|linux|glibc
-->
-Last reviewed up to the 5f492b98dd131bdd6c67eb56c31024420c1e7dab (2012-06-08)
-sources, and for `libatomic_ops` to the
-6a0afde033f105c6320f1409162e3765a1395bfd (2012-05-15) sources.
+Last reviewed up to Git commit bf62552626acc7ad8babdc350a6365cb97ec8776
+(2015-01-07), and for `libatomic_ops` to Git commit
+09887cae2790e29ff535cc56f7bd0c4459ef4e2b (2015-01-09).
* `configure.ac`
@@ -280,18 +280,116 @@ sources, and for `libatomic_ops` to the
* Check `include/private/thread_local_alloc.h` re
`USE_COMPILER_TLS`/`USE_PTHREAD_SPECIFIC`.
+ * TODO:
+
+ * `diff --git ./include/private/gcconfig.h ./include/private/gcconfig.h`
+
+ {+#if defined(LINUX) || defined(FREEBSD) || defined(SOLARIS) || defined(IRIX5) \+}
+ {+ || ((defined(USE_MMAP) || defined(USE_MUNMAP)) && !defined(USE_WINALLOC))+}
+ {+# define MMAP_SUPPORTED+}
+ {+#endif+}
+
+ * `diff --git ./include/private/gcconfig.h ./include/private/gcconfig.h`
+
+ #if !defined(CAN_HANDLE_FORK) && !defined(NO_HANDLE_FORK) \
+ && [-((defined(GC_PTHREADS)-]{+!defined(HAVE_NO_FORK) \+}
+ && [-!defined(HURD)-]{+((defined(GC_PTHREADS)+} && !defined(NACL) \
+ &&[-!defined(PLATFORM_ANDROID) &&-] !defined(GC_WIN32_PTHREADS)[-\-] && !defined(USE_WINALLOC)) \
+ || (defined(DARWIN) && defined(MPROTECT_VDB)) || defined(HANDLE_FORK))
+ /* Attempts (where supported and requested) to make GC_malloc work in */
+ /* a child process fork'ed from a multi-threaded parent. */
+ # define CAN_HANDLE_FORK
+ #endif
+
+ {+#if defined(CAN_HANDLE_FORK) && !defined(CAN_CALL_ATFORK) \+}
+ {+ && !defined(HURD) && !defined(PLATFORM_ANDROID)+}
+ {+ /* Have working pthread_atfork(). */+}
+ {+# define CAN_CALL_ATFORK+}
+ {+#endif+}
+
+ * `diff --git ./include/private/gcconfig.h ./include/private/gcconfig.h`
+
+ {+#if (defined(FREEBSD) || (defined(DARWIN) && !defined(_POSIX_C_SOURCE)) \+}
+ {+ || (defined(SOLARIS) && (!defined(_XOPEN_SOURCE) \+}
+ {+ || defined(__EXTENSIONS__))) \+}
+ {+ || defined(LINUX)) && !defined(HAVE_DLADDR)+}
+ {+# define HAVE_DLADDR+}
+ {+#endif+}
+
+ * `diff --git ./os_dep.c ./os_dep.c`
+
+ @@ -3038,9 +3005,11 @@ GC_API GC_push_other_roots_proc GC_CALL GC_get_push_other_roots(void)
+ /* Also old MSWIN32 ACCESS_VIOLATION filter */
+ # if !defined(MSWIN32) && !defined(MSWINCE)
+ STATIC SIG_HNDLR_PTR GC_old_bus_handler = 0;
+ {+# if defined(FREEBSD) || defined(HURD) || defined(HPUX)+}
+ STATIC GC_bool GC_old_bus_handler_used_si = FALSE;
+ {+# endif+}
+ STATIC GC_bool GC_old_segv_handler_used_si = FALSE;
+
+ * `diff --git ./os_dep.c ./os_dep.c`
+
+ @@ -3192,20 +3169,22 @@ GC_API GC_push_other_roots_proc GC_CALL GC_get_push_other_roots(void)
+ # else
+ GC_bool used_si;
+
+ {+# if defined(FREEBSD) || defined(HURD) || defined(HPUX)+}
+ if (sig == [-SIGSEGV) {-]
+ [- old_handler = GC_old_segv_handler;-]
+ [- used_si = GC_old_segv_handler_used_si;-]
+ [- } else-]{+SIGBUS)+} {
+ old_handler = GC_old_bus_handler;
+ used_si = GC_old_bus_handler_used_si;
+ {+} else+}
+ {+# endif+}
+ {+ /* else */ {+}
+ {+ old_handler = GC_old_segv_handler;+}
+ {+ used_si = GC_old_segv_handler_used_si;+}
+ }
+ # endif
+
+ * `diff --git ./os_dep.c ./os_dep.c`
+
+ # if defined(HPUX) || defined(LINUX) || defined(HURD) \
+ || (defined(FREEBSD) && defined(SUNOS5SIGS))
+ sigaction(SIGBUS, &act, &oldact);
+ if [-(oldact.sa_flags-]{+((oldact.sa_flags+} & SA_SIGINFO) {+!= 0)+} {
+ GC_old_bus_handler = oldact.sa_sigaction;
+ {+# if !defined(LINUX)+}
+ GC_old_bus_handler_used_si = TRUE;
+ {+# endif+}
+ } else {
+ GC_old_bus_handler = (SIG_HNDLR_PTR)oldact.sa_handler;
+ {+# if !defined(LINUX)+}
+ GC_old_bus_handler_used_si = FALSE;
+ {+# endif+}
+ }
+ if (GC_old_bus_handler == (SIG_HNDLR_PTR)SIG_IGN) {
+ [-if (GC_print_stats)-]
+ [- GC_err_printf("Previously-]{+WARN("Previously+} ignored bus [-error!?\n");-]{+error!?\n", 0);+}
+ {+# if !defined(LINUX)+}
+ GC_old_bus_handler = (SIG_HNDLR_PTR)SIG_DFL;
+ {+# else+}
+ {+ /* GC_old_bus_handler is not used by GC_write_fault_handler. */+}
+ {+# endif+}
+ } {+else+} if (GC_old_bus_handler != (SIG_HNDLR_PTR)SIG_DFL) {
+ [-if (GC_print_stats == VERBOSE)-]
+ [- GC_log_printf("Replaced-]{+GC_VERBOSE_LOG_PRINTF("Replaced+} other SIGBUS handler\n");
+ }
+ # endif /* HPUX || LINUX || HURD || (FREEBSD && SUNOS5SIGS) */
+
# Build
-Here's a log of a binutils build run; this is from the
-5f492b98dd131bdd6c67eb56c31024420c1e7dab (2012-06-08) sources, and for
-`libatomic_ops` for the 6a0afde033f105c6320f1409162e3765a1395bfd (2012-05-15)
-sources, run on kepler.SCHWINGE and coulomb.SCHWINGE.
+Here's a log of a boehm-gc build run; this is from Git commit
+bf62552626acc7ad8babdc350a6365cb97ec8776 (2015-01-07), and for `libatomic_ops`
+Git commit 09887cae2790e29ff535cc56f7bd0c4459ef4e2b (2015-01-09), run on
+kepler.SCHWINGE and laplace.SCHWINGE.
$ export LC_ALL=C
$ (cd ../master/ && ln -sfn ../libatomic_ops/master libatomic_ops)
$ (cd ../master/ && autoreconf -vfi)
- $ ../master/configure --prefix="$PWD".install SHELL=/bin/bash CC=gcc-4.6 CXX=g++-4.6 --enable-cplusplus --enable-gc-debug --enable-gc-assertions --enable-assertions 2>&1 | tee log_build
+ $ ../master/configure --prefix="$PWD".install SHELL=/bin/bash CC=gcc-4.9 CXX=g++-4.9 --enable-cplusplus --enable-gc-debug --enable-gc-assertions --enable-assertions 2>&1 | tee log_build
[...]
$ make 2>&1 | tee log_build_
[...]
@@ -299,20 +397,16 @@ sources, run on kepler.SCHWINGE and coulomb.SCHWINGE.
Different hosts may default to different shells and compiler versions; thus
harmonized. Using bash instead of dash as otherwise libtool explodes.
-This takes up around X MiB, and needs roughly X min on kepler.SCHWINGE and
-X min on coulomb.SCHWINGE.
-
<!--
- $ (make && touch .go-install) 2>&1 | tee log_build_ && test -f .go-install && (make install && touch .go-check) 2>&1 | tee log_install && test -f .go-check && { make -k check 2>&1 | tee log_check; (cd libatomic_ops/ && make -k check) 2>&1 | tee log_check_; }
+ $ (make && touch .go-install) 2>&1 | tee log_build_ && test -f .go-install && (make install && touch .go-test) 2>&1 | tee log_install && test -f .go-test && { make -k check 2>&1 | tee log_test; (cd libatomic_ops/ && make -k check) 2>&1 | tee log_test_; }
-->
+
## Analysis
- $ ssh kepler.SCHWINGE 'cd tmp/source/boehm-gc/ && cat master.build/log_build* | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/linux/log_build
- $ ssh coulomb.SCHWINGE 'cd tmp/boehm-gc/ && cat master.build/log_build* | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/hurd/log_build
- $ diff -wu <(sed -f toolchain/logs/boehm-gc/linux/log_build.sed < toolchain/logs/boehm-gc/linux/log_build) <(sed -f toolchain/logs/boehm-gc/hurd/log_build.sed < toolchain/logs/boehm-gc/hurd/log_build) > toolchain/logs/boehm-gc/log_build.diff
+ $ toolchain/logs/process boehm-gc build
* only GNU/Linux: `configure: WARNING: "Explicit GC_INIT() calls may be
required."`
@@ -326,32 +420,23 @@ X min on coulomb.SCHWINGE.
$ make install 2>&1 | tee log_install
[...]
-This takes up around X MiB, and needs roughly X min on kepler.SCHWINGE and X
-min on coulomb.SCHWINGE.
-
## Analysis
- $ ssh kepler.SCHWINGE 'cd tmp/source/boehm-gc/ && cat master.build/log_install | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/linux/log_install
- $ ssh coulomb.SCHWINGE 'cd tmp/boehm-gc/ && cat master.build/log_install | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/hurd/log_install
- $ diff -wu toolchain/logs/boehm-gc/linux/log_install toolchain/logs/boehm-gc/hurd/log_install > toolchain/logs/boehm-gc/log_install.diff
+ $ toolchain/logs/process boehm-gc install
# Testsuite
- $ make -k check
+ $ make -k check 2>&1 | tee log_test
[...]
- $ (cd libatomic_ops/ && make -k check)
+ $ (cd libatomic_ops/ && make -k check) 2>&1 | tee log_test_
[...]
-This needs roughly X min on kepler.SCHWINGE and X min on coulomb.SCHWINGE.
-
## Analysis
- $ ssh kepler.SCHWINGE 'cd tmp/source/boehm-gc/ && cat master.build/log_check* | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/linux/log_check
- $ ssh coulomb.SCHWINGE 'cd tmp/boehm-gc/ && cat master.build/log_check* | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/hurd/log_check
- $ diff -wu <(sed -f toolchain/logs/boehm-gc/linux/log_check.sed < toolchain/logs/boehm-gc/linux/log_check) <(sed -f toolchain/logs/boehm-gc/hurd/log_check.sed < toolchain/logs/boehm-gc/hurd/log_check) > toolchain/logs/boehm-gc/log_check.diff
+ $ toolchain/logs/process boehm-gc test
There are different configurations possible, but in general, the testsuite
restults of GNU/Linux and GNU/Hurd look very similar.
@@ -374,6 +459,8 @@ restults of GNU/Linux and GNU/Hurd look very similar.
* <http://www.hpl.hp.com/personal/Hans_Boehm/gc/#users>
+ * [[!wikipedia Boehm_garbage_collector]]
+
## IRC, OFTC, #debian-hurd, 2012-02-05
diff --git a/open_issues/code_analysis.mdwn b/open_issues/code_analysis.mdwn
index 2e10da80..71a6bcff 100644
--- a/open_issues/code_analysis.mdwn
+++ b/open_issues/code_analysis.mdwn
@@ -264,6 +264,17 @@ There is a [[!FF_project 276]][[!tag bounty]] on some of these tasks.
some)](http://www.socallinuxexpo.org/scale11x/presentations/trinity-linux-kernel-fuzz-tester-and-then-some),
Dave Jones, The Eleventh Annual Southern California Linux Expo, 2013.
+ * [American fuzzy lop](https://code.google.com/p/american-fuzzy-lop/), *a
+ practical, instrumentation-driven fuzzer for binary formats*.
+
+ * [Melkor - An ELF File Format
+ Fuzzer](https://www.blackhat.com/us-14/arsenal.html#Hernandez),
+ Alejandro Hernández.
+
+ * Can use this to find bugs in our [[hurd/translator/exec]] server,
+ for example? See also the discussion in [[!message-id
+ "5452389B.502@samsung.com"]].
+
* Mayhem, *an automatic bug finding system*
IRC, freenode, #hurd, 2013-06-29:
diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn
index b46a48cc..8065a789 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 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
+git diff --patience --stat=$COLUMNS,$COLUMNS --patch --src-prefix=./ --dst-prefix=./ --word-diff --color --find-renames --ignore-space-change ..upstream/trunk | awk '/^(\x1b\[[0-9]+m)?diff/ { c = " " $0; } /^(\x1b\[[0-9]+m)?@@/ { print c; } { print; }' | less
-i
-/^---.*/([^.]*|.*\.texi.*|[^/]*gnu[^/]*)$|hurd|linux|nacl|nptl|glibc|gs:
+/^---.*/([^.]*|.*\.texi.*|[^/]*gnu[^/]*|libgo/go/(net/sock_bsd\.go|syscall/exec_bsd\.go|syscall/libcall_posix\.go))$|hurd|linux|nacl|nptl|glibc($|[^x]|x[^x]|x$)|gs:|dg-runtest
-->
-Last reviewed up to the [[Git mirror's 3a930d3fc68785662f5f3f4af02474cb21a62056
-(2013-06-06) sources|source_repositories/gcc]].
+Last reviewed up to the [[Git mirror's c16b7ed55398d2ea55d9ab35519f20cc053b9d0a
+(2015-01-19) sources|source_repositories/gcc]].
<http://gcc.gnu.org/install/configure.html> has documentation for the
`configure` switches.
@@ -61,7 +61,8 @@ Last reviewed up to the [[Git mirror's 3a930d3fc68785662f5f3f4af02474cb21a62056
rename to `gnu-user` to reflect this? TODO.
* `gcc/acinclude.m4`:`gcc_GAS_FLAGS`: always pass `--32` to assembler for
- x86 Linux. (Why?)
+ x86 Linux. Probably we should just do the same, see `*-*-linux*`
+ comment in [[!message-id "87zjrjcasc.fsf@schwinge.name"]].
* `lib-prefix.m4` (present twice in GCC sources) contains one remaining
`linux`-only case.
@@ -277,18 +278,25 @@ Last reviewed up to the [[Git mirror's 3a930d3fc68785662f5f3f4af02474cb21a62056
* `libgcc`
- TODO:
-
* `config/t-linux`
* `config/i386/t-linux`
+
+ TODO, rename to `t-gnu-user`.
+
* `config/i386/linux-unwind.h`
+ TODO, probably needs porting, if we need this.
+ [[!GCC_PR 57851 desc="[patch] unwinding via signal trampoline for
+ kfreebsd*-gnu"]].
+
* `libitm`
TODO:
* `libitm/config/linux`
+ * `liboffloadmic`
+
* `hurd/usr`
`NATIVE_SYSTEM_HEADER_DIR`, `638454a19c1c08f01c10517bc72a114250fc4f33`,
@@ -299,10 +307,33 @@ Last reviewed up to the [[Git mirror's 3a930d3fc68785662f5f3f4af02474cb21a62056
* Eventually: get rid of this special-casing. [[!message-id
"gckk1s$e0b$1@ger.gmane.org"]].
- * [[`libmudflap`|libmudflap]].
-
* [`-fsplit-stack`](http://nickclifton.livejournal.com/6889.html)
+ #define TARGET_CAN_SPLIT_STACK
+ #define TARGET_THREAD_SPLIT_STACK_OFFSET 0x30
+
+ libgcc/config/i386/morestack.S
+ libgcc/config/i386/t-stack-i386
+ libgcc/config/t-stack
+ libgcc/generic-morestack-thread.c
+ libgcc/generic-morestack.c
+ libgcc/generic-morestack.h
+ libgcc/config/i386/morestack.S: cmpl %gs:0x30,%eax # See if we have enough space.
+ libgcc/config/i386/morestack.S: # gcc/config/i386/linux.h.
+ libgcc/config/i386/morestack.S: movl %eax,%gs:0x30 # Save the new stack boundary.
+ libgcc/config/i386/morestack.S: movl %eax,%gs:0x30 # Save the new stack boundary.
+ libgcc/config/i386/morestack.S: movl %ecx,%gs:0x30 # Save new stack boundary.
+ libgcc/config/i386/morestack.S: # gcc/config/i386/linux64.h.
+ libgcc/config/i386/morestack.S: movl %eax,%gs:0x30
+ libgcc/config/i386/morestack.S: movl %gs:0x30,%eax
+ libgcc/config/i386/morestack.S: movl %eax,%gs:0x30
+ libgcc/generic-morestack-thread.c: can build glibc. */
+ libgcc/generic-morestack-thread.c: not be necessary if glibc supports -fsplit-stack directly. */
+ libgcc/generic-morestack.c: can build glibc. */
+ libgcc/generic-morestack.c: since stack splitting only works on GNU/Linux anyhow. */
+ libgcc/generic-morestack.c:#if defined(__GLIBC__) && defined(__linux__)
+ libgcc/generic-morestack.c: /* In glibc, the first two real time signals are used by the NPTL
+
IRC, freenode, #hurd, 2014-01-10:
<gnu_srs1> Hi, I assume gcc -fsplit-stack is not yet supported?
@@ -362,8 +393,7 @@ Last reviewed up to the [[Git mirror's 3a930d3fc68785662f5f3f4af02474cb21a62056
* Might `-fsplit-stack` be useful for us with respect to our
[[multithreaded|multithreading]] libraries?
- * `gcc/ada`, `gcc/testsuite/ada`, `gcc/testsuite/gnat.dg`, `gnattools`,
- `libada` (not reviewed)
+ * `gcc/ada` (not all reviewed)
* [[Ada (GNAT)|GNAT]] support is work in progress.
@@ -416,8 +446,6 @@ Last reviewed up to the [[Git mirror's 3a930d3fc68785662f5f3f4af02474cb21a62056
commit a204f0622242865ffea889bd698bc7c7bd236bd1), commit
05c1aa95e6c37b3b281d749c76c673392941a031.
- * Check before/after Joseph changes. (Should be fine.)
-
* 34618b3190c110b8926cc2b1db4b4eac95451995 »config-list.mk«
What's this used for? (Check ML.) Ask to include i686-pc-gnu (once it is
@@ -599,8 +627,131 @@ Last reviewed up to the [[Git mirror's 3a930d3fc68785662f5f3f4af02474cb21a62056
A lot of Linux-specific things.
+ * 30f690e026ecdf99c68e777a48562b58afe37f43 `TARGET_LIBC_HAS_FUNCTION`. Where
+ is `targetm` set? All TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS gone?
+
+ * `libvtv`
+
+ * Disabled in `configure.tgt`.
+
+ * `libvtv/vtv_rts.cc`: `if (strcmp (info->dlpi_name, "linux-vdso.so.1")
+ == 0)` -- not a problem for us, but...
+
+ * `libvtv/vtv_rts.cc`: `/proc/self/exe` usage, `PATH_MAX`.
+
+ * ./libgomp/testsuite/libgomp.c/affinity-1.c Linux usage
+
* `libcilkrts`
+ Disabled for Hurd.
+
+ libcilkrts/Makefile.am:
+
+ +# If we're building on Linux, use the Linux version script
+ +if LINUX_LINKER_SCRIPT
+ + libcilkrts_la_LDFLAGS += -Wl,--version-script,$(srcdir)/runtime/linux-symbols.ver
+ +endif
+
+ libcilkrts/configure.ac:
+
+ +# We have linker scripts for appropriate operating systems
+ +linux_linker_script=no
+ +case "${host}" in
+ + *-*-linux*)
+ + linux_linker_script=yes
+ + ;;
+ +esac
+ +AM_CONDITIONAL(LINUX_LINKER_SCRIPT, test "$linux_linker_script" = "yes")
+
+ libcilkrts/runtime/cilk_malloc.c:
+
+ +#if defined _WIN32 || defined _WIN64 || defined __linux__
+ +#include <malloc.h>
+ +#define HAS_MEMALIGN 1
+ +#endif
+
+ libcilkrts/runtime/config/x86/cilk-abi-vla.c:
+
+ +#if defined(__x86_64)
+ + // For Intel64 linux & MACH ABI, all the parameters were passed in
+ + // register, so top of the stack frame above the return address
+ + // is just the size of the return address plus
+ + // distance_from_sp_to_alloca_area on the chance that the alloca
+ + // area isn't at the very bottom of the calling functions stack.
+ +#elif defined(__MACH__)
+ + // For ia32 MACH, parameter size is always a mutliple of 16
+ + // bytes to keep the stack 16 byte aligned. So we need to round
+ + // number of parameters up to multiple of 4.
+ + param_size = 8 * sizeof(char *);
+ +#else
+ + // For both windows Intel64 ABI, and the IA32 windows and
+ + // linux ABIs, space is reserved on the stack for all these
+ + // parameters. param_size is 5 * size of a stack slot.
+ + param_size = 5 * sizeof(char *);
+ +#endif
+
+ +#if defined(__x86_64)
+ + // For Intel64 linux & MACH ABI, all the parameters were passed in
+ + // register, so top of the stack frame above the return address
+ + // is just the size of the return address plus
+ + // distance_from_sp_to_alloca_area on the chance that the alloca
+ + // area isn't at the very bottom of the calling functions stack.
+ +#elif defined(__MACH__)
+ + // For ia32 MACH, parameter size is always a mutliple of 16
+ + // bytes to keep the stack 16 byte aligned. So we need to round
+ + // number of parameters up to multiple of 4.
+ + param_size = 8 * sizeof(char *);
+ +#else
+ + // For both windows Intel64 ABI, and the IA32 windows and
+ + // linux ABIs, space is reserved on the stack for all these
+ + // parameters. param_size is 5 * size of a stack slot.
+ + param_size = 6 * sizeof(char *);
+ +#endif
+
+ libcilkrts/runtime/os-unix.c:
+
+ +#ifdef __linux__
+ + // define _GNU_SOURCE before *any* #include.
+ + // Even <stdint.h> will break later #includes if this macro is not
+ + // already defined when it is #included.
+ +# define _GNU_SOURCE
+ +#endif
+
+ +#if defined __linux__
+ +# include <sys/sysinfo.h>
+ +# include <sys/syscall.h>
+
+ Syscall usage outside __linux__?
+
+ Will run into:
+
+ +#else
+ +#error "Unknown architecture"
+
+ libcilkrts/runtime/sysdep-unix.c:
+
+ +#ifdef __linux__
+ + // define _GNU_SOURCE before *any* #include.
+ + // Even <stdint.h> will break later #includes if this macro is not
+ + // already defined when it is #included.
+ +# define _GNU_SOURCE
+ +#endif
+
+ +#ifdef __linux__
+ +# include <sys/resource.h>
+ +# include <sys/sysinfo.h>
+ +#endif
+
+ +#if defined( __linux__) || defined(__VXWORKS__)
+ + pthread_t tid = *(pthread_t *)thread_id;
+ + if (i < 0 || i > g->total_workers)
+ + return 0;
+ + return g->sysdep->threads[i] == tid;
+ +#else
+ + // Needs to be implemented
+ + return 0;
+ +#endif
+
IRC, freenode, #hurd, 2014-01-10:
<youpi> bwaarf, libcilkrts in gcc-4.9
@@ -612,42 +763,22 @@ Last reviewed up to the [[Git mirror's 3a930d3fc68785662f5f3f4af02474cb21a62056
<http://news.gmane.org/find-root.php?message_id=%3C87wqjjo5kx.fsf%40kepler.schwinge.homeip.net%3E>
resolved, actually.
- [[!debbug 734973]].
-
- * `WCONTINUED`
-
- IRC, OFTC, #debian-hurd, 2014-02-25:
-
- <gnu_srs> youpi: some gcc-4.9 packages (and source) are needed for
- gnat-4.9 to build: Is it OK to propose this patch:
- http://paste.debian.net/84079/
- --- a/src/gcc/lto_lto.c.orig 2014-02-14 19:22:14.000000000 +0100
- +++ b/src/gcc/lto/lto.c 2014-02-25 20:50:20.000000000 +0100
- @@ -2476,7 +2476,11 @@
- int status;
- do
- {
- +#ifdef __GNU__
- + int w = waitpid(0, &status, WUNTRACED);
- +#else
- int w = waitpid(0, &status, WUNTRACED | WCONTINUED);
- +#endif
- if (w == -1)
- fatal_error ("waitpid failed");
- <youpi> gnu_srs: rather ifndef WCONTINUED
+ [[!debbug 734973]]. gcc-4.9/debian/patches/libcilkrts-targets.diff
+ * Debian GCC 48594516135e34a726cafe3863a4dc661bbd61a4 `boehm-gc: use
+ anonymous mmap instead of brk also on hurd-*.`. [[!debbug 753791]].
# Build
Here's a log of a GCC build run; this is from our [[Git repository's
-2a3496bebfe9d89f11d0b7a591afac55e11d5263 (2013-06-06;
-3a930d3fc68785662f5f3f4af02474cb21a62056 (2013-06-06))
+91049a6f433bd5b425144d2c71245df9ec99aa8f (2015-01-20;
+c16b7ed55398d2ea55d9ab35519f20cc053b9d0a (2015-01-19))
sources|source_repositories/gcc]], run on kepler.SCHWINGE and laplace.SCHWINGE.
$ export LC_ALL=C
$ (cd ../master/ && contrib/gcc_update --touch)
- $ ../master/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.6 CXX=g++-4.6 --enable-languages=all,ada 2>&1 | tee log_build
+ $ ../master/configure --prefix="$PWD".install SHELL=/bin/dash CC=gcc-4.9 CXX=g++-4.9 --enable-languages=all,ada 2>&1 | tee log_build
[...]
$ make 2>&1 | tee log_build_
[...]
@@ -655,11 +786,8 @@ sources|source_repositories/gcc]], run on kepler.SCHWINGE and laplace.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*/*gnat-4.8*/*gnat-4.9* packages avaible. (Which there now are.)
-
-This takes up around 3.5 GiB, and runs for [[3 h 22 min|performance#measure]]
-on kepler.SCHWINGE and [[3 h 44 min|performance#measure]] on laplace.SCHWINGE.
+This takes up around 4.8 GiB, and runs for [[5 h 57 min|performance#measure]]
+on kepler.SCHWINGE and [[4 h 17 min|performance#measure]] on laplace.SCHWINGE.
<!--
@@ -691,6 +819,8 @@ on kepler.SCHWINGE and [[3 h 44 min|performance#measure]] on laplace.SCHWINGE.
Comes from `gcc/config.gcc`: `i386/t-pmm_malloc` vs. `i386/t-gmm_malloc`
for `i[34567]86-*-linux*` vs. `i[34567]86-*-*`.
+ 2004-08-03, PR target/16570, id:20040802163509.GA18487@lucon.org
+
* `libgomp`
* `libgomp/config/linux`, `libgomp/config/linux/x86`
@@ -812,8 +942,8 @@ on kepler.SCHWINGE and [[3 h 44 min|performance#measure]] on laplace.SCHWINGE.
$ make install 2>&1 | tee log_install
[...]
-This takes up around 1.1 GiB, and runs for [[3 min|performance#measure]] on
-kepler.SCHWINGE and [[12 min|performance#measure]] on laplace.SCHWINGE.
+This takes up around 1.4 GiB, and runs for [[4 min|performance#measure]] on
+kepler.SCHWINGE and [[8 min|performance#measure]] on laplace.SCHWINGE.
## Analysis
@@ -838,8 +968,8 @@ kepler.SCHWINGE and [[12 min|performance#measure]] on laplace.SCHWINGE.
$ make -k check 2>&1 | tee log_test
[...]
-This runs for [[7 h 35 min|performance#measure]] on kepler.SCHWINGE and [[15 h
-46 min|performance#measure]] on laplace.SCHWINGE.
+This runs for [[11 h 37 min|performance#measure]] on kepler.SCHWINGE and [[11 h
+18 min|performance#measure]] on laplace.SCHWINGE.
## Analysis
@@ -990,90 +1120,6 @@ This runs for [[7 h 35 min|performance#measure]] on kepler.SCHWINGE and [[15 h
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
@@ -1188,15 +1234,24 @@ This runs for [[7 h 35 min|performance#measure]] on kepler.SCHWINGE and [[15 h
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?).
+ `gcc/testsuite/lib/timeout.exp:standard_wait` is for?).
* What is `gcc/testsuite/gcc.test-framework/test-framework.exp` and should we
define `CHECK_TEST_FRAMEWORK` to run these tests?
+ * `gcc.c-torture/compile/pr44686.c`, `gcc.dg/20050309-1.c`,
+ `gcc.dg/20050330-2.c`, `gcc.dg/20051201-1.c`, `gcc.dg/aru-2.c`,
+ `gcc.dg/pr44674.c`, `gcc.dg/pr46255.c`, `gcc.dg/pr47793.c`,
+ `gcc.dg/pr58432.c`, `gcc.dg/profile-*.c`, `gcc.dg/gomp/pr27573.c`,
+ `gcc.dg/tree-prof/*.c`, `gcc.misc-tests/bprob-*.c`, `g++.dg/bprob/*.C`,
+ `g++.dg/debug/pr46338.C`, `g++.dg/other/pr55650.C`,
+ `g++.dg/other/profile1.C`, `g++.dg/torture/pr39732.C`,
+ `g++.dg/torture/pr40642.C`, `g++.dg/torture/pr53321.C`,
+ `g++.dg/tree-prof/*.C`, `g++.old-deja/g++.law/profile1.C`,
+ `gfortran.dg/gomp/pr27573.f90`
+
+ Profiling tests no longer being run. The very most of them used to PASS.
+
## Enhancements
diff --git a/open_issues/gcc/libmudflap.mdwn b/open_issues/gcc/libmudflap.mdwn
deleted file mode 100644
index f14ca1bc..00000000
--- a/open_issues/gcc/libmudflap.mdwn
+++ /dev/null
@@ -1,74 +0,0 @@
-[[!meta copyright="Copyright © 2008, 2009 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]]."]]"""]]
-
-[[!tag open_issue_porting open_issue_gcc]]
-
-Single-threaded use appears to work:
-
- $ echo 'int main(void) { int *a; a[10]=0; return a[5]; }' | ↩
- gcc -o a -fmudflap -x c - -lmudflap
- $ ./a
- *******
- mudflap violation 1 (check/write): time=1227208721.922064 ptr=0x1023de0 size=4
- pc=0x1037a33 location=`<stdin>:1:26 (main)'
- /usr/lib/libmudflap.so.0(__mf_check+0x33) [0x1037a33]
- ./a(main+0x7c) [0x80486c4]
- /usr/lib/libmudflap.so.0(__wrap_main+0x49) [0x1037239]
- Nearby object 1: checked region begins 68B before and ends 65B before
- mudflap object 0x80ca268: name=`argv[]'
- bounds=[0x1023e24,0x1023e2b] size=8 area=static check=0r/0w liveness=0
- alloc time=1227208721.922064 pc=0x10371d3
- Nearby object 2: checked region begins 76B before and ends 73B before
- mudflap object 0x80cb448: name=`environ[]'
- bounds=[0x1023e2c,0x1023ed7] size=172 area=static check=0r/0w liveness=0
- alloc time=1227208721.922064 pc=0x10371d3
- number of nearby objects: 2
- *******
- mudflap violation 2 (check/read): time=1227208721.942109 ptr=0x1023dcc size=4
- pc=0x1037a33 location=`<stdin>:1:35 (main)'
- /usr/lib/libmudflap.so.0(__mf_check+0x33) [0x1037a33]
- ./a(main+0xf3) [0x804873b]
- /usr/lib/libmudflap.so.0(__wrap_main+0x49) [0x1037239]
- Nearby object 1: checked region begins 88B before and ends 85B before
- mudflap object 0x80ca268: name=`argv[]'
- Nearby object 2: checked region begins 96B before and ends 93B before
- mudflap object 0x80cb448: name=`environ[]'
- number of nearby objects: 2
-
-Multi-threaded use doesn't:
-
- $ echo 'int main(void) { int *a; a[10]=0; return a[5]; }' | ↩
- gcc -include pthread.h -o a -fmudflapth -x c - -lmudflapth -lpthread
- $ ./a
- Killed
- $ gdb a
- [...]
- Starting program: /media/data/home/tschwinge/a
-
- Program received signal EXC_BAD_ACCESS, Could not access memory.
- 0x01180653 in getenv () from /lib/libc.so.0.3
- (gdb) bt
- #0 0x01180653 in getenv () from /lib/libc.so.0.3
- #1 0x01177a02 in __dcigettext () from /lib/libc.so.0.3
- #2 0x01176a57 in dcgettext () from /lib/libc.so.0.3
- #3 0x011c03b5 in strerror_r () from /lib/libc.so.0.3
- #4 0x01175b57 in __assert_perror_fail () from /lib/libc.so.0.3
- #5 0x0111f1ad in cthread_fork (func=0x114f630 <_hurd_msgport_receive>, arg=0x0)
- at /build/buildd/hurd-20080607/build-tree/hurd/libpthread/pthread/cthreads-compat.c:41
- #6 0x0115713e in _hurdsig_init () from /lib/libc.so.0.3
- #7 0x01140852 in _hurd_proc_init@@GLIBC_2.2.6 () from /lib/libc.so.0.3
- #8 0x01140e86 in _hurd_init () from /lib/libc.so.0.3
- #9 0x011690ce in init1 () from /lib/libc.so.0.3
- #10 0x00001e96 in _dl_start_user () from /lib/ld.so
- #11 0x00000001 in ?? ()
- #12 0x01024000 in ?? ()
- #13 0x00000000 in ?? ()
-
-Also `libmudflap` is pthread-only.
diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn
index 33041e71..9962203e 100644
--- a/open_issues/glibc.mdwn
+++ b/open_issues/glibc.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013, 2014 Free
-Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013, 2014, 2015
+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
@@ -38,8 +38,8 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -b -p -C
-->
-Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852
-(2013-12-19) sources|source_repositories/glibc]].
+Last reviewed up to the [[Git mirror's 9a869d822025be8e43b78234997b10bf0cf9d859
+(2014-02-07) sources|source_repositories/glibc]].
* <a id=t_hurdsig-fixes>`t/hurdsig-fixes`</a>
@@ -1889,6 +1889,10 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852
`timer_create`, `timer_delete`, [[`clock_gettime`|clock_gettime]], and
so on.
+ * `fd_to_filename`
+
+ See [[translate_FD_or_port_to_file_name]].
+
For specific packages:
* <a id=octave>[[octave]]</a>
@@ -2814,9 +2818,26 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852
* [high] 43d5c02c72bdaf59a8e0d4b06f2ae87e42269cbd `Fix build on hurd` --
is that from a topic branch that can then be annihilated? Verify
emails. Verify no further changes in topic branch.
- * 69a17d9d245dc3551792e95e1823cc2d877592f3 `Patch [1/4] async-signal safe
- TLS.` -- do we also need an implementation of this? (Not yet called
- from anywhere?)
+ * 69a17d9d245dc3551792e95e1823cc2d877592f3 `Patch [1/4]
+ async-signal safe TLS.` -- do we also need an implementation of this?
+ (Not yet called from anywhere?) Now used in
+ 7f507ee17aee720fa423fa38502bc3caa0dd03d7 `Async-signal safe TLS`.
+ 7f507ee17aee720fa423fa38502bc3caa0dd03d7 has been reverted in
+ 73d61e4f6c65da714c0f8a3a233725322553ceba.
+ 1f33d36a8a9e78c81bed59b47f260723f56bb7e6,
+ 063b2acbce83549df82ab30f5af573f1b9c4bd19,
+ b627fdd58554bc36bd344dc40a8787c4b7a9cc46,
+ e81c64bba13d2d8b2a4e53254a82cc80f27c8497 have been reverted in
+ dd654bf9ba1848bf9ed250f8ebaa5097c383dcf8.
+ 35e8f7ab94c910659de9d507aa0f3e1f8973d914 has been reverted in
+ 8b6785f0836011cace9a77f3c24e51a7379238a0.
+ 69a17d9d245dc3551792e95e1823cc2d877592f3 has been reverted in
+ bf06bcee84d4c19a99925c0f58026a8cbd87a688.
+ a494421f5268df333c589d71104a39bb6a9cff19 has been reverted in
+ f482dbbec775bf72eb6510b6091fca141893c466.
+ * [low] In various commits, `menual/*.texi` files have been annotated
+ regarding MTASC-safety properties. The focus has not necessarily been
+ on Hurd, though.
* *baseline*
@@ -2830,15 +2851,12 @@ Last reviewed up to the [[Git mirror's 64a17f1adde4715bb6607f64decd73b2df9e6852
# Build
Here's a log of a glibc build run; this is from our [[Git repository's
-f57644d0bdfc1ebe2201a677a33af27e09a5bab6 (2013-12-20;
-64a17f1adde4715bb6607f64decd73b2df9e6852 (2013-12-19))
+f68531785b6d85fb0b405747688f93471b6a964f (2015-01-23;
+9a869d822025be8e43b78234997b10bf0cf9d859 (2014-02-07))
plus 6a97b62a5b4f18aea849d6f4d8de58d1469d2521 reverted,
-`id:"87zjnvn688.fsf@kepler.schwinge.homeip.net"`,
-`id:"87ioujn0eq.fsf@kepler.schwinge.homeip.net"`,
-1226676cd6f6f4451e6e6b75b8fbd9a35c949e8e reverted,
-56798c444bc584c118b69a3506c4050b34edc35f reverted,
-`id:"878uvfmwvs.fsf@kepler.schwinge.homeip.net"`
-sources|source_repositories/glibc]], run on coulomb.SCHWINGE.
+`id:"87a9fvguwq.fsf@schwinge.name"`,
+`_SERVERS_STARTUP` hard-coded to `/servers/startup` in `sysdeps/mach/hurd/reboot.c`
+sources|source_repositories/glibc]], run on laplace.SCHWINGE.
$ export LC_ALL=C
$ ../Roger_Whittaker/configure --prefix=/usr --disable-profile --disable-multi-arch --build=i486-gnu --host=i486-gnu CC=gcc-4.7 CXX=g++-4.7 2>&1 | tee log_build
@@ -2846,8 +2864,8 @@ sources|source_repositories/glibc]], run on coulomb.SCHWINGE.
$ make install_root=/INVALID 2>&1 | tee log_build_
[...]
-This takes up around 600 MiB, and needs roughly X min on kepler.SCHWINGE and
-105 min on coulomb.SCHWINGE.
+This takes up around 600 MiB, and runs for [[TODO min|performance#measure]] on
+kepler.SCHWINGE and [[19 min|performance#measure]] on laplace.SCHWINGE.
<!--
@@ -2858,7 +2876,7 @@ This takes up around 600 MiB, and needs roughly X min on kepler.SCHWINGE and
## Analysis
- $ toolchain/logs/process glibc build fetch coulomb.SCHWINGE
+ $ toolchain/logs/process glibc build fetch laplace.SCHWINGE
TODO.
@@ -2924,13 +2942,13 @@ 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
-min on coulomb.SCHWINGE.
+This takes up around 100 MiB, and runs for [[TODO min|performance#measure]] on
+kepler.SCHWINGE and [[3 min|performance#measure]] on laplace.SCHWINGE.
## Analysis
- $ toolchain/logs/process glibc install fetch coulomb.SCHWINGE
+ $ toolchain/logs/process glibc install fetch laplace.SCHWINGE
TODO.
@@ -2940,9 +2958,10 @@ TODO.
$ make -k install_root=/INVALID check fast-check=yes 2>&1 | tee log_test
[...]
-This needs roughly X min on kepler.SCHWINGE and 130 min on coulomb.SCHWINGE.
+This runs for [[TODO min|performance#measure]] on kepler.SCHWINGE and [[10
+min|performance#measure]] on laplace.SCHWINGE.
-Specifying `fast-check=yes` disables the `conformtest` which takes 1.75 h (out
+Specifying `fast-check=yes` disables the `conformtest` which ran for 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.
@@ -2950,7 +2969,7 @@ our most critical issue to solve.
## Analysis
- $ toolchain/logs/process glibc test fetch coulomb.SCHWINGE
+ $ toolchain/logs/process glibc test fetch laplace.SCHWINGE
Failures, mostly in order of appearance:
@@ -3104,6 +3123,23 @@ Failures, mostly in order of appearance:
`_CS_GNU_LIBPTHREAD_VERSION` is provided by libpthread when compiled as
add-on.
+ * `posix/tst-sysconf.out`
+
+ Fails with:
+
+ sysconf(_SC_BARRIERS) must be 200809L
+ sysconf(_SC_READER_WRITER_LOCKS) must be 200809L
+ sysconf(_SC_SEMAPHORES) must be 200809L
+ sysconf(_SC_SPIN_LOCKS) must be 200809L
+ sysconf(_SC_THREAD_ATTR_STACKADDR) must be 200809L
+ sysconf(_SC_THREAD_ATTR_STACKSIZE) must be 200809L
+ sysconf(_SC_THREADS) must be 200809L
+ sysconf(_SC_TIMEOUTS) must be 200809L
+
+ That, I presume, is in response to our `sysdeps/mach/hurd/bits/posix_opt.h`
+ file, which uses *200112L* values.
+ `nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h` uses *200809L* values.
+
* `posix/tst-vfork3-mem`
+ 0x0804cee0 Alloc 10 duplicate: 0x1095389 $BUILDDIR/libc.so.0.3:[0x1095389]
@@ -3201,7 +3237,7 @@ Failures, mostly in order of appearance:
* `rt/tst-aio2`, `rt/tst-aio3`, `rt/tst-aio9`, `rt/tst-aio10`,
`rt/tst-mqueue3`, `rt/tst-mqueue5.o`, `rt/tst-mqueue6`, `rt/tst-mqueue8`,
- `rt/tst-timer3`, `rt/tst-timer4.o`, `rt/tst-timer5.o`,
+ `rt/tst-timer3`, `rt/tst-timer4.o`, `rt/tst-timer5.o`, `rt/tst-cpuclock2`,
`rt/tst-cputimer1.o`, `rt/tst-cputimer2.o`, `rt/tst-cputimer3.o`,
`elf/tst-thrlock`
@@ -3314,10 +3350,6 @@ Failures, mostly in order of appearance:
SIGSEGV.
- * `elf/tst-dlmopen1.out`
-
- SIGSEGV.
-
* `elf/tst-audit1.out`, `elf/tst-audit2.out`, `elf/tst-audit8.out`
SIGKILL.
diff --git a/open_issues/gnumach_memory_management_2.mdwn b/open_issues/gnumach_memory_management_2.mdwn
index 64aae2a4..4f6a3db3 100644
--- a/open_issues/gnumach_memory_management_2.mdwn
+++ b/open_issues/gnumach_memory_management_2.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2011, 2014 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
@@ -10,7 +10,8 @@ License|/fdl]]."]]"""]]
[[!tag open_issue_gnumach]]
-IRC, freenode, #hurd, 2011-10-16:
+
+# IRC, freenode, #hurd, 2011-10-16
<youpi> braunr: I realize that kmem_alloc_wired maps the allocated pages in
the kernel map
@@ -244,3 +245,29 @@ IRC, freenode, #hurd, 2011-10-16:
<braunr> we don't have code to get rid of this macro
<braunr> but i don't even know how we, as maintainers, are supposed to
guess it
+
+
+# `k0ro/advisory_pageout/master`
+
+[[!GNU_Savannah_Git_hurd_gnumach 666299d037be6ffa83345d6d281fa955431f55fe]].
+
+[[user/Sergio_Lopez]], [[libpager_deadlock]].
+
+
+# Increase the pageout thread priority
+
+ * [[!message-id "1341845097-24763-1-git-send-email-rbraun@sceen.net"]].
+
+ * [[!GNU_Savannah_Git_hurd_gnumach
+ c7cdf5ff96e7c3bb008877893aa194908dca2185]].
+
+
+# Tune VM Parameters
+
+ * [[!message-id
+ "h2k97f2a0d81004181028ycc10c46codc45d6ea33b2b0d5@mail.gmail.com"]].
+
+ * [[!message-id "1341845097-24763-1-git-send-email-rbraun@sceen.net"]].
+
+ * [[!GNU_Savannah_Git_hurd_gnumach
+ 91f0887ca2345c2bd02747e4b437076641d77cd9]].
diff --git a/open_issues/libpager_deadlock.mdwn b/open_issues/libpager_deadlock.mdwn
index 017ecff6..ddcd404d 100644
--- a/open_issues/libpager_deadlock.mdwn
+++ b/open_issues/libpager_deadlock.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2010, 2012 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2010, 2012, 2014 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
@@ -27,6 +28,9 @@ Deadlocks in libpager/periodic sync have been found.
http://www.sceen.net/~rbraun/moving_the_default_memory_manager_out_of_the_mach_kernel.pdf
<braunr> we should more seriously consider sergio's advisory pageout branch
some day
+
+[[user/Sergio_Lopez]], [[gnumach_memory_management_2]].
+
<braunr> i'll try to get in touch with him about that before he completely
looses interest
<braunr> i'll include it in my "make that page cache as decent as possible"
diff --git a/open_issues/nptl.mdwn b/open_issues/nptl.mdwn
index be0270df..2aa337d0 100644
--- a/open_issues/nptl.mdwn
+++ b/open_issues/nptl.mdwn
@@ -34,10 +34,15 @@ License|/fdl]]."]]"""]]
<tschwinge> We'd need to evaluate which benefits NPTL would bring.
-# IRC, freenode, #hurd, 2013-08-05
+# Debian GNU/kFreeBSD: FBTL
+
+## IRC, freenode, #hurd, 2013-08-05
<gnu_srs> Hi, looks like kfreebsd are now using an NPTL-based pthread
library: FBTL, http://lists.debian.org/debian-bsd/2013/07/msg00060.html
+
+[[!message-id "alpine.LNX.2.00.1307102021050.4232@contest.felk.cvut.cz"]].
+
<gnu_srs> Anything of interest for porting to Hurd? See also
http://lists.debian.org/debian-hurd/2013/08/msg00000.html
<azeem> Petr could've been more verbose in his announcements
@@ -48,6 +53,15 @@ License|/fdl]]."]]"""]]
<azeem> and http://lists.debian.org/debian-bsd/2013/07/msg00138.html
+## [[!message-id "alpine.LNX.2.00.1308021035160.5570@contest.felk.cvut.cz"]]
+
+
+## [[!message-id "alpine.LNX.2.00.1405082034530.8707@contest.felk.cvut.cz"]]
+
+
+## [[!message-id "87wqdv1314.fsf@kepler.schwinge.homeip.net"]]
+
+
# IRC, freenode, #hurd, 2013-12-26
<nalaginrut> hm? has NPTL already supported for Hurd?
diff --git a/open_issues/translate_fd_or_port_to_file_name.mdwn b/open_issues/translate_fd_or_port_to_file_name.mdwn
index 252bc049..01ab3a78 100644
--- a/open_issues/translate_fd_or_port_to_file_name.mdwn
+++ b/open_issues/translate_fd_or_port_to_file_name.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2010, 2011, 2013, 2014 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2010, 2011, 2013, 2014, 2015 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
@@ -14,6 +14,9 @@ License|/fdl]]."]]"""]]
[[!toc]]
+# [[glibc]]'s `fd_to_filename`
+
+
# IRC, freenode, #hurd, June (?) 2010
<pochu> is there a way (POSIX or Hurdish) to get the corresponding file