  		/* avoid splitting a message in the middle */
  		setvbuf(stderr, NULL, _IOFBF, 4096);
  
-diff -ruw source/fast-import.c source-new/fast-import.c
---- source/fast-import.c	2017-06-04 19:08:11.000000000 -0600
-+++ source-new/fast-import.c	2018-12-26 18:46:02.396322633 -0700
-@@ -531,6 +531,7 @@
- 
- static void set_checkpoint_signal(void)
- {
-+#if !defined(__redox__)
- 	struct sigaction sa;
- 
- 	memset(&sa, 0, sizeof(sa));
-@@ -538,6 +539,7 @@
- 	sigemptyset(&sa.sa_mask);
- 	sa.sa_flags = SA_RESTART;
- 	sigaction(SIGUSR1, &sa, NULL);
-+#endif
- }
- 
- #endif
 diff -ruw source/git-compat-util.h source-new/git-compat-util.h
 --- source/git-compat-util.h	2017-06-04 19:08:11.000000000 -0600
-+++ source-new/git-compat-util.h	2018-12-26 19:11:00.598201504 -0700
++++ source-new/git-compat-util.h	2019-03-13 15:56:28.419769725 -0600
 @@ -179,7 +179,9 @@
  #include <assert.h>
  #include <regex.h>

 
 		strbuf_reset(&buf);
 
@@ -622,6 +622,7 @@
 	struct async *async = data;
 	intptr_t ret;
 
+#if !defined(__redox__)
 	if (async->isolate_sigpipe) {
 		sigset_t mask;
 		sigemptyset(&mask);
@@ -631,6 +632,7 @@
 			return (void *)ret;
 		}
 	}
+#endif
 
 	pthread_setspecific(async_key, async);
 	ret = async->proc(async->proc_in, async->proc_out, async->data);
diff -ruw source/setup.c source-new/setup.c
--- source/setup.c	2017-06-04 19:08:11.000000000 -0600
+++ source-new/setup.c	2018-12-26 18:52:50.070479933 -0700
@@ -1146,11 +1146,11 @@
 /* if any standard file descriptor is missing open it to /dev/null */
 void sanitize_stdfds(void)

 #ifndef NO_SYS_POLL_H
 #include <sys/poll.h>
 #else
@@ -320,8 +322,20 @@
 #endif
 
 #ifndef PATH_SEP
