--- diffutils-3.12/lib/cmpbuf.c 2025-01-12 21:27:47.000000000 +0300 +++ diffutils-3.12-new/lib/cmpbuf.c 2026-07-11 01:26:55.996990194 +0300 @@ -84,8 +84,8 @@ ancient AIX hosts that set errno to EINTR after uncaught SIGCONT. See (1993-04-22). */ - if (! SA_RESTART && errno == EINTR) - continue; + /*if (! SA_RESTART && errno == EINTR) + continue;*/ return -1; } --- diffutils-3.12/lib/getdtablesize.c 2025-01-02 05:33:12.000000000 +0300 +++ diffutils-3.12-new/lib/getdtablesize.c 2026-07-11 01:26:55.997027743 +0300 @@ -109,6 +109,7 @@ int getdtablesize (void) { +#if !defined(__redox__) struct rlimit lim; if (getrlimit (RLIMIT_NOFILE, &lim) == 0 @@ -117,6 +118,7 @@ && lim.rlim_cur != RLIM_SAVED_CUR && lim.rlim_cur != RLIM_SAVED_MAX) return lim.rlim_cur; +#endif return INT_MAX; } --- diffutils-3.12/lib/getprogname.c 2025-01-02 05:33:12.000000000 +0300 +++ diffutils-3.12-new/lib/getprogname.c 2026-07-11 01:26:55.997103089 +0300 @@ -55,6 +55,14 @@ # include #endif +#if defined(__redox__) +# include +# include +# include +# include +# include +#endif + #include "basename-lgpl.h" #ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Solaris >= 11, Cygwin, Android API level >= 21 */ @@ -297,6 +305,17 @@ close (fd); } return "?"; +# elif defined(__redox__) + char filename[PATH_MAX]; + int fd = open ("sys:exe", O_RDONLY); + if (fd > 0) { + int len = read(fd, filename, PATH_MAX-1); + if (len > 0) { + filename[len] = '\x00'; + return strdup(filename); + } + } + return "?"; # else # error "getprogname module not ported to this OS" # endif --- diffutils-3.12/lib/sigprocmask.c 2025-01-02 05:33:12.000000000 +0300 +++ diffutils-3.12-new/lib/sigprocmask.c 2026-07-11 01:26:55.997143937 +0300 @@ -126,6 +126,7 @@ return 0; } +#if !defined(__redox__) int sigemptyset (sigset_t *set) {