* 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:
		| @@ -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. | ||||
|   | ||||
| @@ -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 */ | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user