*: stop using atexit in non-debug build: saves ~260 in bss with musl

"builtin" below is atexit's 32-element global array of functions to call.

function                                             old     new   delta
top_main                                             879     889     +10
launch_helper                                        185     193      +8
powertop_main                                       1555    1559      +4
sed_main                                             651     650      -1
slot                                                   4       -      -4
call                                                   4       -      -4
atexit                                                23       -     -23
kill_helper                                           31       -     -31
__funcs_on_exit                                      120       -    -120
__cxa_atexit                                         168       -    -168
builtin                                              260       -    -260
------------------------------------------------------------------------------
(add/remove: 0/8 grow/shrink: 3/1 up/down: 22/-611)          Total: -589 bytes
   text	   data	    bss	    dec	    hex	filename
 912364	    563	   6132	 919059	  e0613	busybox_old
 912035	    563	   5844	 918442	  e03aa	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/mailutils/mail.c b/mailutils/mail.c
index a7e43c0..eceb890 100644
--- a/mailutils/mail.c
+++ b/mailutils/mail.c
@@ -6,23 +6,15 @@
  *
  * Licensed under GPLv2, see file LICENSE in this source tree.
  */
+#include <sys/prctl.h>
 #include "libbb.h"
 #include "mail.h"
 
-static void kill_helper(void)
-{
-	if (G.helper_pid > 0) {
-		kill(G.helper_pid, SIGTERM);
-		G.helper_pid = 0;
-	}
-}
-
 // generic signal handler
 static void signal_handler(int signo)
 {
 #define err signo
 	if (SIGALRM == signo) {
-		kill_helper();
 		bb_error_msg_and_die("timed out");
 	}
 
@@ -66,16 +58,15 @@
 	// child stdout [1] -> parent stdin [0]
 
 	if (!G.helper_pid) {
-		// child: try to execute connection helper
+		// child
+		// if parent dies, get SIGTERM
+		prctl(PR_SET_PDEATHSIG, SIGTERM, 0, 0, 0);
+		// try to execute connection helper
 		// NB: SIGCHLD & SIGALRM revert to SIG_DFL on exec
 		BB_EXECVP_or_die((char**)argv);
 	}
 
-	// parent
-	// check whether child is alive
-	//redundant:signal_handler(SIGCHLD);
-	// child seems OK -> parent goes on
-	atexit(kill_helper);
+	// parent goes on
 }
 
 char* FAST_FUNC send_mail_command(const char *fmt, const char *param)