summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--glibc/process.mdwn34
-rw-r--r--hurd/interface/exec_startup_get_info.mdwn23
-rw-r--r--open_issues/binutils.mdwn2
-rw-r--r--open_issues/gcc.mdwn4
-rw-r--r--open_issues/glibc.mdwn34
-rw-r--r--toolchain/elfosabi_gnu.mdwn22
m---------toolchain/logs17
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