151 lines
3.7 KiB
Diff
151 lines
3.7 KiB
Diff
diff -Paur --no-dereference -- make.upstream/src/dir.c make/src/dir.c
|
|
--- make.upstream/src/dir.c
|
|
+++ make/src/dir.c
|
|
@@ -20,6 +20,8 @@
|
|
#include "dep.h"
|
|
#include "debug.h"
|
|
|
|
+#include <stddef.h>
|
|
+
|
|
#ifdef HAVE_DIRENT_H
|
|
# include <dirent.h>
|
|
# define NAMLEN(dirent) strlen((dirent)->d_name)
|
|
@@ -1253,7 +1255,7 @@
|
|
/* The glob interface wants a 'struct dirent', so mock one up. */
|
|
struct dirent *d;
|
|
size_t len = df->length + 1;
|
|
- size_t sz = sizeof (*d) - sizeof (d->d_name) + len;
|
|
+ size_t sz = offsetof(struct dirent, d_name) + len;
|
|
if (sz > bufsz)
|
|
{
|
|
bufsz *= 2;
|
|
diff -Paur --no-dereference -- make.upstream/src/function.c make/src/function.c
|
|
--- make.upstream/src/function.c
|
|
+++ make/src/function.c
|
|
@@ -2279,36 +2279,23 @@
|
|
char *rp;
|
|
struct stat st;
|
|
PATH_VAR (in);
|
|
- PATH_VAR (out);
|
|
|
|
strncpy (in, path, len);
|
|
in[len] = '\0';
|
|
|
|
-#ifdef HAVE_REALPATH
|
|
- ENULLLOOP (rp, realpath (in, out));
|
|
-# if defined _AIX
|
|
- /* AIX realpath() doesn't remove trailing slashes correctly. */
|
|
- if (rp)
|
|
- {
|
|
- char *ep = rp + strlen (rp) - 1;
|
|
- while (ep > rp && ep[0] == '/')
|
|
- *(ep--) = '\0';
|
|
- }
|
|
-# endif
|
|
-#else
|
|
- rp = abspath (in, out);
|
|
-#endif
|
|
+ ENULLLOOP (rp, realpath (in, NULL));
|
|
|
|
if (rp)
|
|
{
|
|
int r;
|
|
- EINTRLOOP (r, stat (out, &st));
|
|
+ EINTRLOOP (r, stat (rp, &st));
|
|
if (r == 0)
|
|
{
|
|
- o = variable_buffer_output (o, out, strlen (out));
|
|
+ o = variable_buffer_output (o, rp, strlen (rp));
|
|
o = variable_buffer_output (o, " ", 1);
|
|
doneany = 1;
|
|
}
|
|
+ free (rp);
|
|
}
|
|
}
|
|
}
|
|
diff -Paur --no-dereference -- make.upstream/src/job.c make/src/job.c
|
|
--- make.upstream/src/job.c
|
|
+++ make/src/job.c
|
|
@@ -74,6 +74,11 @@
|
|
# define VMS_POSIX_EXIT_MASK (C_FACILITY_NO | 0xA000)
|
|
#endif
|
|
|
|
+#elif defined (__sortix__)
|
|
+
|
|
+char const *default_shell = "sh";
|
|
+int batch_mode_shell = 0;
|
|
+
|
|
#else
|
|
|
|
const char *default_shell = "/bin/sh";
|
|
diff -Paur --no-dereference -- make.upstream/src/main.c make/src/main.c
|
|
--- make.upstream/src/main.c
|
|
+++ make/src/main.c
|
|
@@ -2768,9 +2768,9 @@
|
|
if (restarts)
|
|
{
|
|
char *b = alloca (40);
|
|
- sprintf (b, "MAKE_RESTARTS=%s%u",
|
|
+ sprintf (b, "%s%u",
|
|
OUTPUT_IS_TRACED () ? "-" : "", restarts);
|
|
- putenv (b);
|
|
+ setenv ("MAKE_RESTARTS", b, 1);
|
|
}
|
|
|
|
fflush (stdout);
|
|
diff -Paur --no-dereference -- make.upstream/src/misc.c make/src/misc.c
|
|
--- make.upstream/src/misc.c
|
|
+++ make/src/misc.c
|
|
@@ -877,6 +877,9 @@
|
|
unsigned int
|
|
get_path_max (void)
|
|
{
|
|
+#if defined(__sortix__)
|
|
+ return 32768;
|
|
+#else
|
|
static unsigned int value;
|
|
|
|
if (value == 0)
|
|
@@ -889,6 +892,7 @@
|
|
}
|
|
|
|
return value;
|
|
+#endif
|
|
}
|
|
#endif
|
|
|
|
diff -Paur --no-dereference -- make.upstream/src/posixos.c make/src/posixos.c
|
|
--- make.upstream/src/posixos.c
|
|
+++ make/src/posixos.c
|
|
@@ -722,6 +722,7 @@
|
|
{
|
|
if (osync_enabled())
|
|
{
|
|
+#ifdef F_SETLKW
|
|
struct flock fl;
|
|
|
|
fl.l_type = F_WRLCK;
|
|
@@ -734,6 +735,7 @@
|
|
perror ("fcntl()");
|
|
return 0;
|
|
}
|
|
+#endif
|
|
}
|
|
|
|
return 1;
|
|
@@ -744,6 +746,7 @@
|
|
{
|
|
if (osync_enabled())
|
|
{
|
|
+#ifdef F_SETLKW
|
|
struct flock fl;
|
|
|
|
fl.l_type = F_UNLCK;
|
|
@@ -753,6 +756,7 @@
|
|
/* We don't want to keep waiting on EINTR. */
|
|
if (fcntl (osync_handle, F_SETLKW, &fl) == -1)
|
|
perror ("fcntl()");
|
|
+#endif
|
|
}
|
|
}
|
|
|