Disable use of vfork()
vfork() is just too weird. For instance, in this build: http://hydra.nixos.org/build/3330487 the value fromHook.writeSide becomes corrupted in the parent, even though the child only reads from it. At -O0 the problem goes away. Probably the child is overriding some spilled temporary variable. If I get bored I may implement using posix_spawn() instead.
This commit is contained in:
		
							parent
							
								
									8541d27fce
								
							
						
					
					
						commit
						f794465ca8
					
				
					 2 changed files with 2 additions and 2 deletions
				
			
		|  | @ -116,7 +116,7 @@ AC_CHECK_HEADERS([sys/mount.h], [], [], | |||
| 
 | ||||
| 
 | ||||
| # Check for vfork. | ||||
| AC_FUNC_FORK() | ||||
| #AC_FUNC_FORK() | ||||
| 
 | ||||
| 
 | ||||
| # Check for lutimes, optionally used for changing the mtime of | ||||
|  |  | |||
|  | @ -355,7 +355,7 @@ void Goal::trace(const format & f) | |||
| 
 | ||||
| 
 | ||||
| /* Common initialisation performed in child processes. */ | ||||
| void commonChildInit(Pipe & logPipe) | ||||
| static void commonChildInit(Pipe & logPipe) | ||||
| { | ||||
|     /* Put the child in a separate session (and thus a separate
 | ||||
|        process group) so that it has no controlling terminal (meaning | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue