diff options
-rw-r--r-- | glibc/process.mdwn | 34 | ||||
-rw-r--r-- | hurd/interface/exec_startup_get_info.mdwn | 23 | ||||
-rw-r--r-- | open_issues/binutils.mdwn | 2 | ||||
-rw-r--r-- | open_issues/gcc.mdwn | 4 | ||||
-rw-r--r-- | open_issues/glibc.mdwn | 34 | ||||
-rw-r--r-- | toolchain/elfosabi_gnu.mdwn | 22 | ||||
m--------- | toolchain/logs | 17 |
7 files changed, 104 insertions, 32 deletions
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/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/open_issues/binutils.mdwn b/open_issues/binutils.mdwn index 5d36d3d1..5b44de76 100644 --- a/open_issues/binutils.mdwn +++ b/open_issues/binutils.mdwn @@ -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. diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn index f86b5345..d4309198 100644 --- a/open_issues/gcc.mdwn +++ b/open_issues/gcc.mdwn @@ -87,6 +87,10 @@ 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? diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn index b7dc1b18..d45f0d14 100644 --- a/open_issues/glibc.mdwn +++ b/open_issues/glibc.mdwn @@ -36,8 +36,8 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --> -Last reviewed up to the [[Git mirror's af15c191766fd413ef6fedc9d54b87962332ca71 -(2013-03-28) sources|source_repositories/glibc]]. +Last reviewed up to the [[Git mirror's 0323d08657f111267efa47bd448fbf6cd76befe8 +(2013-05-24) sources|source_repositories/glibc]]. * `t/hurdsig-fixes` @@ -297,7 +297,8 @@ Last reviewed up to the [[Git mirror's af15c191766fd413ef6fedc9d54b87962332ca71 * `sys/timerfd.h` - * `timespec_get` (74033a2507841cf077e31221de2481ff30b43d51) + * `timespec_get` (74033a2507841cf077e31221de2481ff30b43d51, + 87f51853ce3671f4ba9a9953de1fff952c5f7e52) * `waitflags.h` (`WEXITED`, `WNOWAIT`, `WSTOPPED`, `WCONTINUED`) @@ -1118,7 +1119,8 @@ Last reviewed up to the [[Git mirror's af15c191766fd413ef6fedc9d54b87962332ca71 sleep.c is buggy (not considers interruption, extra time() (= RPC) call)«. * ba384f6ed9275f3966505f2375b56d169e3dc588, - 0409959c86f6840510851a851a1588677a2e537b `C++11 thread_local + 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 @@ -1163,12 +1165,16 @@ Last reviewed up to the [[Git mirror's af15c191766fd413ef6fedc9d54b87962332ca71 +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] - * bc16e260d0e74b36e48d30edc6ea4f1152700c09 `Move _dl_non_dynamic_init, - _dl_aux_init declarations.` -- can remove - `sysdeps/mach/hurd/i386/init-first.c`:`_dl_non_dynamic_init` - 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 @@ -1181,8 +1187,14 @@ Last reviewed up to the [[Git mirror's af15c191766fd413ef6fedc9d54b87962332ca71 # Build Here's a log of a glibc build run; this is from our [[Git repository's -3e1dec8e8cf102ed1e9b8ddf2e8fa40fc259ab00 (2013-05-23; -af15c191766fd413ef6fedc9d54b87962332ca71 (2013-03-28)) +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 @@ -1369,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 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 4942a80ce51d06f8c536c19d7220269aba40c18 +Subproject 71f0408fccfd9851b8e7fc336ff2f6ca1593927 |