* dll_init.cc (dll_list::topsort): Fix early-return condition to

accommodate process with all runtime loaded DLLs already dlclosed
	at fork time.
	* gendef (_sigfe_maybe): Fix code handling early return if we don't
	have a tls, broken on 2013-05-21.
This commit is contained in:
Corinna Vinschen 2013-05-27 19:31:04 +00:00
parent 7e925d9ac1
commit 27a21b38c0
3 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,11 @@
2013-05-27 Corinna Vinschen <corinna@vinschen.de>
* dll_init.cc (dll_list::topsort): Fix early-return condition to
accommodate process with all runtime loaded DLLs already dlclosed
at fork time.
* gendef (_sigfe_maybe): Fix code handling early return if we don't
have a tls, broken on 2013-05-21.
2013-05-24 Corinna Vinschen <corinna@vinschen.de>
* Makefile.in (DEFS): Unused, remove.

View File

@ -299,7 +299,7 @@ void
dll_list::topsort ()
{
/* Anything to do? */
if (!end)
if (!end || end == &start)
return;
/* make sure we have all the deps available */

View File

@ -133,13 +133,13 @@ EOF
_sigfe_maybe: # stack is aligned on entry!
.seh_endprologue
movq %gs:8,%r10 # location of bottom of stack
addq \$$tls::initialized,%r10 # where we will be looking
cmpq %r10,%rsp # stack loc > than tls
ret # yep. we don't have a tls.
subq \$$tls::initialized,%r10 # where we will be looking
leaq $tls::initialized(%r10),%r11 # where we will be looking
cmpq %r11,%rsp # stack loc > than tls
jge 0f # yep. we don't have a tls.
movl $tls::initialized(%r10),%r11d
cmpl \$0xc763173f,%r11d # initialized?
je 1f
0: ret
.seh_endproc
.seh_proc _sigfe