runtime: fix build after CL 9164 on Linux

There is an assumption that the function executed in child thread
created by runtime.close should not return. And different systems
enforce that differently: some exit that thread, some exit the
whole process.

The test TestNewOSProc0 introduced in CL 9161 breaks that assumption,
so we need to adjust the code to only exit the thread should the
called function return.

Change-Id: Id631cb2f02ec6fbd765508377a79f3f96c6a2ed6
Reviewed-on: https://go-review.googlesource.com/9246
Reviewed-by: Dave Cheney <dave@cheney.net>
diff --git a/src/runtime/sys_linux_amd64.s b/src/runtime/sys_linux_amd64.s
index 3a0c47f..fa7fa16 100644
--- a/src/runtime/sys_linux_amd64.s
+++ b/src/runtime/sys_linux_amd64.s
@@ -350,7 +350,7 @@
 	// Call fn
 	CALL	R12
 
-	// It shouldn't return.  If it does, exit
+	// It shouldn't return.  If it does, exit that thread.
 	MOVL	$111, DI
 	MOVL	$60, AX
 	SYSCALL
diff --git a/src/runtime/sys_linux_arm.s b/src/runtime/sys_linux_arm.s
index 9d21eae..d0c6d22 100644
--- a/src/runtime/sys_linux_arm.s
+++ b/src/runtime/sys_linux_arm.s
@@ -307,7 +307,7 @@
 	MOVW	$16(R13), R13
 	BL	(R0)
 
-	// It shouldn't return
+	// It shouldn't return.  If it does, exit that thread.
 	MOVW	$0, R0
 	MOVW	R0, 4(R13)
 	BL	runtime·exit1(SB)
diff --git a/src/runtime/sys_linux_arm64.s b/src/runtime/sys_linux_arm64.s
index ea8520c..389fea0 100644
--- a/src/runtime/sys_linux_arm64.s
+++ b/src/runtime/sys_linux_arm64.s
@@ -361,10 +361,10 @@
 	MOVD	R12, R0
 	BL	(R0)
 
-	// It shouldn't return.	 If it does, exit
+	// It shouldn't return.	 If it does, exit that thread.
 	MOVW	$111, R0
 again:
-	MOVD	$SYS_exit_group, R8
+	MOVD	$SYS_exit, R8
 	SVC
 	B	again	// keep exiting
 
diff --git a/src/runtime/sys_linux_ppc64x.s b/src/runtime/sys_linux_ppc64x.s
index ff397f0..44a22c9 100644
--- a/src/runtime/sys_linux_ppc64x.s
+++ b/src/runtime/sys_linux_ppc64x.s
@@ -346,9 +346,9 @@
 	MOVD	R12, CTR
 	BL	(CTR)
 
-	// It shouldn't return.  If it does, exit
+	// It shouldn't return.	 If it does, exit that thread.
 	MOVW	$111, R3
-	SYSCALL $SYS_exit_group
+	SYSCALL	$SYS_exit
 	BR	-2(PC)	// keep exiting
 
 TEXT runtime·sigaltstack(SB),NOSPLIT,$-8