Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/gmake/Makefile,v
retrieving revision 1.63
diff -u -p -r1.63 Makefile
--- Makefile 13 Sep 2019 16:59:34 -0000 1.63
+++ Makefile 30 Jan 2020 21:32:49 -0000
@@ -2,12 +2,11 @@
COMMENT= GNU make
-DISTNAME= make-4.2.1
+DISTNAME= make-4.3
PKGNAME= g${DISTNAME}
-REVISION= 4
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU:=make/}
-EXTRACT_SUFX= .tar.bz2
+EXTRACT_SUFX= .tar.lz
HOMEPAGE= https://www.gnu.org/software/make/
@@ -18,14 +17,18 @@ PERMIT_PACKAGE= Yes
WANTLIB= c iconv intl
+DEBUG_PACKAGES= ${BUILD_PACKAGES}
+
SEPARATE_BUILD= Yes
CONFIGURE_STYLE= gnu
CONFIGURE_ARGS= --program-prefix="g" --without-guile
CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \
LDFLAGS="-L${LOCALBASE}/lib"
-MODGNU_CONFIG_GUESS_DIRS= ${WRKSRC}/config
+MODGNU_CONFIG_GUESS_DIRS= ${WRKSRC}/build-aux
+
+TEST_ENV= SHELL=$$SHELL
-pre-test:
- find ${WRKSRC}/tests/scripts -name \*.orig -delete
+# Known test failures:
+# output-sync can fail due to a race condition in the test itself
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/devel/gmake/distinfo,v
retrieving revision 1.9
diff -u -p -r1.9 distinfo
--- distinfo 25 Jun 2016 19:47:11 -0000 1.9
+++ distinfo 30 Jan 2020 21:32:49 -0000
@@ -1,2 +1,2 @@
-SHA256 (make-4.2.1.tar.bz2) = 1uJivzYBtC0rHk74MQAp4dzyAIPFRGtLeqZwgf3/xYk=
-SIZE (make-4.2.1.tar.bz2) = 1407126
+SHA256 (make-4.3.tar.lz) = 3hpEHE7flSUh2zC/yoC6roag/xrNCgBAKZk0TwTEXoI=
+SIZE (make-4.3.tar.lz) = 1266180
Index: patches/patch-Makefile_in
===================================================================
RCS file: /cvs/ports/devel/gmake/patches/patch-Makefile_in,v
retrieving revision 1.4
diff -u -p -r1.4 patch-Makefile_in
--- patches/patch-Makefile_in 25 Jun 2016 19:47:11 -0000 1.4
+++ patches/patch-Makefile_in 30 Jan 2020 21:32:49 -0000
@@ -1,12 +1,14 @@
-$OpenBSD: patch-Makefile_in,v 1.4 2016/06/25 19:47:11 naddy Exp $
---- Makefile.in.orig Sat Jun 11 01:03:22 2016
-+++ Makefile.in Fri Jun 24 18:19:09 2016
-@@ -481,7 +481,7 @@ EXTRA_make_SOURCES = vmsjobs.c remote-stub.c remote-cs
- noinst_HEADERS = commands.h dep.h filedef.h job.h makeint.h rule.h variable.h
\
- debug.h getopt.h gettext.h hash.h output.h os.h
+$OpenBSD$
+
+Index: Makefile.in
+--- Makefile.in.orig
++++ Makefile.in
+@@ -1039,7 +1039,7 @@ make_SOURCES = $(make_SRCS) $(am__append_1) $(am__appe
+ $(am__append_4) $(am__append_5)
+ EXTRA_make_SOURCES = $(amiga_SRCS) $(vms_SRCS)
+ make_LDADD = $(LIBOBJS) $(GUILE_LIBS) lib/libgnu.a $(GETLOADAVG_LIBS) \
+- @LIBINTL@
++ @LTLIBINTL@
--make_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LIBINTL@ \
-+make_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LTLIBINTL@ \
- $(GUILE_LIBS) $(am__append_1)
- man_MANS = make.1
- AM_CPPFLAGS = $(GLOBINC) $(am__append_2)
+ AM_CPPFLAGS = -Isrc -I$(top_srcdir)/src -Ilib -I$(top_srcdir)/lib \
+ -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(includedir)\" \
Index: patches/patch-doc_make_1
===================================================================
RCS file: patches/patch-doc_make_1
diff -N patches/patch-doc_make_1
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-doc_make_1 30 Jan 2020 21:32:49 -0000
@@ -0,0 +1,197 @@
+$OpenBSD$
+
+Since we install GNU make as gmake replace make with gmake in the
+manpage where it makes sense.
+
+Index: doc/make.1
+--- doc/make.1.orig
++++ doc/make.1
+@@ -1,13 +1,13 @@
+-.TH MAKE 1 "28 February 2016" "GNU" "User Commands"
++.TH GMAKE 1 "28 February 2016" "GNU" "User Commands"
+ .SH NAME
+-make \- GNU make utility to maintain groups of programs
++gmake \- GNU make utility to maintain groups of programs
+ .SH SYNOPSIS
+-.B make
++.B gmake
+ [\fIOPTION\fR]... [\fITARGET\fR]...
+ .SH DESCRIPTION
+ .LP
+ The
+-.I make
++.I gmake
+ utility will determine automatically which pieces of a large program need to
+ be recompiled, and issue the commands to recompile them. The manual describes
+ the GNU implementation of
+@@ -15,15 +15,15 @@ the GNU implementation of
+ which was written by Richard Stallman and Roland McGrath, and is currently
+ maintained by Paul Smith. Our examples show C programs, since they are very
+ common, but you can use
+-.B make
++.B gmake
+ with any programming language whose compiler can be run with a shell command.
+ In fact,
+-.B make
++.B gmake
+ is not limited to programs. You can use it to describe any task where some
+ files must be updated automatically from others whenever the others change.
+ .LP
+ To prepare to use
+-.BR make ,
++.BR gmake ,
+ you must write a file called the
+ .I makefile
+ that describes the relationships among files in your program, and the states
+@@ -35,17 +35,17 @@ Once a suitable makefile exists, each time you change
+ this simple shell command:
+ .sp 1
+ .RS
+-.B make
++.B gmake
+ .RE
+ .sp 1
+ suffices to perform all necessary recompilations.
+ The
+-.B make
++.B gmake
+ program uses the makefile description and the last-modification times of the
+ files to decide which of the files need to be updated. For each of those
+ files, it issues the commands recorded in the makefile.
+ .LP
+-.B make
++.B gmake
+ executes commands in the
+ .I makefile
+ to update one or more target
+@@ -56,7 +56,7 @@ is typically a program.
+ If no
+ .B \-f
+ option is present,
+-.B make
++.B gmake
+ will look for the makefiles
+ .IR GNUmakefile ,
+ .IR makefile ,
+@@ -84,7 +84,7 @@ If
+ .I makefile
+ is '\-', the standard input is read.
+ .LP
+-.B make
++.B gmake
+ updates a target if it depends on prerequisite files
+ that have been modified since the target was last modified,
+ or if the target does not exist.
+@@ -111,7 +111,7 @@ previous one:
+ is equivalent to
+ .BR "\-C " /etc.
+ This is typically used with recursive invocations of
+-.BR make .
++.BR gmake .
+ .TP 0.5i
+ .B \-d
+ Print debugging information in addition to normal processing.
+@@ -119,7 +119,7 @@ The debugging information says which files are being c
+ remaking, which file-times are being compared and with what results,
+ which files actually need to be remade, which implicit rules are
+ considered and which are applied---everything interesting about how
+-.B make
++.B gmake
+ decides what to do.
+ .TP 0.5i
+ .BI \-\-debug "[=FLAGS]"
+@@ -172,7 +172,7 @@ If several
+ options are used to specify several directories, the directories are
+ searched in the order specified.
+ Unlike the arguments to other flags of
+-.BR make ,
++.BR gmake ,
+ directories given with
+ .B \-I
+ flags may come directly after the flag:
+@@ -195,7 +195,7 @@ option, the last one is effective.
+ If the
+ .B \-j
+ option is given without an argument,
+-.BR make
++.BR gmake
+ will not limit the number of jobs that can run simultaneously.
+ .TP 0.5i
+ \fB\-k\fR, \fB\-\-keep\-going\fR
+@@ -256,7 +256,7 @@ This also prints the version information given by the
+ .B \-v
+ switch (see below).
+ To print the data base without trying to remake any files, use
+-.IR "make \-p \-f/dev/null" .
++.IR "gmake \-p \-f/dev/null" .
+ .TP 0.5i
+ \fB\-q\fR, \fB\-\-question\fR
+ ``Question mode''.
+@@ -287,7 +287,7 @@ Touch files (mark them up to date without really chang
+ instead of running their commands.
+ This is used to pretend that the commands were done, in order to fool
+ future invocations of
+-.BR make .
++.BR gmake .
+ .TP 0.5i
+ .B \-\-trace
+ Information about the disposition of each target is printed (why the target is
+@@ -295,7 +295,7 @@ being rebuilt and what commands are run to rebuild it)
+ .TP 0.5i
+ \fB\-v\fR, \fB\-\-version\fR
+ Print the version of the
+-.B make
++.B gmake
+ program plus a copyright, a list of authors and a notice that there
+ is no warranty.
+ .TP 0.5i
+@@ -304,7 +304,7 @@ Print a message containing the working directory
+ before and after other processing.
+ This may be useful for tracking down errors from complicated nests of
+ recursive
+-.B make
++.B gmake
+ commands.
+ .TP 0.5i
+ .B \-\-no\-print\-directory
+@@ -324,33 +324,33 @@ Without
+ it is almost the same as running a
+ .I touch
+ command on the given file before running
+-.BR make ,
++.BR gmake ,
+ except that the modification time is changed only in the imagination of
+-.BR make .
++.BR gmake .
+ .TP 0.5i
+ .B \-\-warn\-undefined\-variables
+ Warn when an undefined variable is referenced.
+ .SH "EXIT STATUS"
+ GNU
+-.B make
++.B gmake
+ exits with a status of zero if all makefiles were successfully parsed
+ and no targets that were built failed. A status of one will be returned
+ if the
+ .B \-q
+ flag was used and
+-.B make
++.B gmake
+ determines that a target needs to be rebuilt. A status of two will be
+ returned if any errors were encountered.
+ .SH "SEE ALSO"
+ The full documentation for
+-.B make
++.B gmake
+ is maintained as a Texinfo manual. If the
+ .B info
+ and
+-.B make
++.B gmake
+ programs are properly installed at your site, the command
+ .IP
+-.B info make
++.B info 'GNU make'
+ .PP
+ should give you access to the complete manual.
+ .SH BUGS
Index: patches/patch-job_c
===================================================================
RCS file: patches/patch-job_c
diff -N patches/patch-job_c
--- patches/patch-job_c 2 Nov 2019 00:33:29 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,114 +0,0 @@
-$OpenBSD: patch-job_c,v 1.3 2019/11/02 00:33:29 jca Exp $
-
-Only unblock fatal signals after child invocation
-http://git.savannah.gnu.org/cgit/make.git/commit/?id=78b5fec6898c26956d00548427cda1101cb80f8a
-
-Index: job.c
---- job.c.orig
-+++ job.c
-@@ -461,6 +461,62 @@ is_bourne_compatible_shell (const char *path)
- return 0;
- }
-
-+#ifdef POSIX
-+extern sigset_t fatal_signal_set;
-+
-+static void
-+block_sigs ()
-+{
-+ sigprocmask (SIG_BLOCK, &fatal_signal_set, (sigset_t *) 0);
-+}
-+
-+static void
-+unblock_sigs ()
-+{
-+ sigprocmask (SIG_UNBLOCK, &fatal_signal_set, (sigset_t *) 0);
-+}
-+
-+void
-+unblock_all_sigs ()
-+{
-+ sigset_t empty;
-+ sigemptyset (&empty);
-+ sigprocmask (SIG_SETMASK, &empty, (sigset_t *) 0);
-+}
-+
-+#elif defined(HAVE_SIGSETMASK)
-+
-+extern int fatal_signal_mask;
-+
-+static void
-+block_sigs ()
-+{
-+ sigblock (fatal_signal_mask);
-+}
-+
-+static void
-+unblock_sigs ()
-+{
-+ sigsetmask (siggetmask (0) & ~fatal_signal_mask);
-+}
-+
-+void
-+unblock_all_sigs ()
-+{
-+ sigsetmask (0);
-+}
-+
-+#else
-+
-+#define block_sigs()
-+#define unblock_sigs()
-+
-+void
-+unblock_all_sigs ()
-+{
-+}
-+
-+#endif
-
- /* Write an error message describing the exit status given in
- EXIT_CODE, EXIT_SIG, and COREDUMP, for the target TARGET_NAME.
-@@ -1031,33 +1087,7 @@ free_child (struct child *child)
- free (child);
- }
-
--#ifdef POSIX
--extern sigset_t fatal_signal_set;
--#endif
-
--void
--block_sigs (void)
--{
--#ifdef POSIX
-- (void) sigprocmask (SIG_BLOCK, &fatal_signal_set, (sigset_t *) 0);
--#else
--# ifdef HAVE_SIGSETMASK
-- (void) sigblock (fatal_signal_mask);
--# endif
--#endif
--}
--
--#ifdef POSIX
--void
--unblock_sigs (void)
--{
-- sigset_t empty;
-- sigemptyset (&empty);
-- sigprocmask (SIG_SETMASK, &empty, (sigset_t *) 0);
--}
--#endif
--
--
- /* Start a job to run the commands specified in CHILD.
- CHILD is updated to reflect the commands and ID of the child process.
-
-@@ -2138,7 +2168,7 @@ child_execute_job (struct output *out, int good_stdin,
- return pid;
-
- /* We are the child. */
-- unblock_sigs ();
-+ unblock_all_sigs ();
-
- #ifdef SET_STACK_SIZE
- /* Reset limits, if necessary. */
Index: patches/patch-job_h
===================================================================
RCS file: patches/patch-job_h
diff -N patches/patch-job_h
--- patches/patch-job_h 13 Sep 2019 16:59:34 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,29 +0,0 @@
-$OpenBSD: patch-job_h,v 1.2 2019/09/13 16:59:34 kurt Exp $
-
-Only unblock fatal signals after child invocation
-http://git.savannah.gnu.org/cgit/make.git/commit/?id=78b5fec6898c26956d00548427cda1101cb80f8a
-
-Index: job.h
---- job.h.orig
-+++ job.h
-@@ -142,18 +142,7 @@ int exec_command (char **argv, char **envp);
- void exec_command (char **argv, char **envp) __attribute__ ((noreturn));
- #endif
-
--extern unsigned int job_slots_used;
-+void unblock_all_sigs (void);
-
--void block_sigs (void);
--#ifdef POSIX
--void unblock_sigs (void);
--#else
--#ifdef HAVE_SIGSETMASK
--extern int fatal_signal_mask;
--#define unblock_sigs() sigsetmask (0)
--#else
--#define unblock_sigs()
--#endif
--#endif
--
-+extern unsigned int job_slots_used;
- extern unsigned int jobserver_tokens;
Index: patches/patch-main_c
===================================================================
RCS file: patches/patch-main_c
diff -N patches/patch-main_c
--- patches/patch-main_c 13 Sep 2019 16:59:34 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
-$OpenBSD: patch-main_c,v 1.5 2019/09/13 16:59:34 kurt Exp $
-
-Only unblock fatal signals after child invocation
-http://git.savannah.gnu.org/cgit/make.git/commit/?id=78b5fec6898c26956d00548427cda1101cb80f8a
-
-Index: main.c
---- main.c.orig
-+++ main.c
-@@ -590,12 +590,10 @@ struct output make_sync;
-
- /* Mask of signals that are being caught with fatal_error_signal. */
-
--#ifdef POSIX
-+#if defined(POSIX)
- sigset_t fatal_signal_set;
--#else
--# ifdef HAVE_SIGSETMASK
-+#elif defined(HAVE_SIGSETMASK)
- int fatal_signal_mask;
--# endif
- #endif
-
- #if !HAVE_DECL_BSD_SIGNAL && !defined bsd_signal
Index: patches/patch-make_1
===================================================================
RCS file: patches/patch-make_1
diff -N patches/patch-make_1
--- patches/patch-make_1 25 Jun 2016 19:47:11 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,202 +0,0 @@
-$OpenBSD: patch-make_1,v 1.3 2016/06/25 19:47:11 naddy Exp $
-
-Since we install GNU make as gmake replace make with gmake in the
-manpage where it makes sense.
-
---- make.1.orig Sun Feb 28 18:51:00 2016
-+++ make.1 Fri Jun 24 18:19:09 2016
-@@ -1,13 +1,13 @@
--.TH MAKE 1 "28 February 2016" "GNU" "User Commands"
-+.TH GMAKE 1 "03 March 2012" "GNU" "User Commands"
- .SH NAME
--make \- GNU make utility to maintain groups of programs
-+gmake \- GNU make utility to maintain groups of programs
- .SH SYNOPSIS
--.B make
-+.B gmake
- [\fIOPTION\fR]... [\fITARGET\fR]...
- .SH DESCRIPTION
- .LP
- The
--.I make
-+.I gmake
- utility will determine automatically which pieces of a large program need to
- be recompiled, and issue the commands to recompile them. The manual describes
- the GNU implementation of
-@@ -15,15 +15,15 @@ the GNU implementation of
- which was written by Richard Stallman and Roland McGrath, and is currently
- maintained by Paul Smith. Our examples show C programs, since they are very
- common, but you can use
--.B make
-+.B gmake
- with any programming language whose compiler can be run with a shell command.
- In fact,
--.B make
-+.B gmake
- is not limited to programs. You can use it to describe any task where some
- files must be updated automatically from others whenever the others change.
- .LP
- To prepare to use
--.BR make ,
-+.BR gmake ,
- you must write a file called the
- .I makefile
- that describes the relationships among files in your program, and the states
-@@ -35,17 +35,17 @@ Once a suitable makefile exists, each time you change
- this simple shell command:
- .sp 1
- .RS
--.B make
-+.B gmake
- .RE
- .sp 1
- suffices to perform all necessary recompilations.
- The
--.B make
-+.B gmake
- program uses the makefile description and the last-modification times of the
- files to decide which of the files need to be updated. For each of those
- files, it issues the commands recorded in the makefile.
- .LP
--.B make
-+.B gmake
- executes commands in the
- .I makefile
- to update one or more target
-@@ -56,7 +56,7 @@ is typically a program.
- If no
- .B \-f
- option is present,
--.B make
-+.B gmake
- will look for the makefiles
- .IR GNUmakefile ,
- .IR makefile ,
-@@ -84,7 +84,7 @@ If
- .I makefile
- is '\-', the standard input is read.
- .LP
--.B make
-+.B gmake
- updates a target if it depends on prerequisite files
- that have been modified since the target was last modified,
- or if the target does not exist.
-@@ -111,7 +111,7 @@ previous one:
- is equivalent to
- .BR "\-C " /etc.
- This is typically used with recursive invocations of
--.BR make .
-+.BR gmake .
- .TP 0.5i
- .B \-d
- Print debugging information in addition to normal processing.
-@@ -119,7 +119,7 @@ The debugging information says which files are being c
- remaking, which file-times are being compared and with what results,
- which files actually need to be remade, which implicit rules are
- considered and which are applied---everything interesting about how
--.B make
-+.B gmake
- decides what to do.
- .TP 0.5i
- .BI \-\-debug "[=FLAGS]"
-@@ -168,7 +168,7 @@ If several
- options are used to specify several directories, the directories are
- searched in the order specified.
- Unlike the arguments to other flags of
--.BR make ,
-+.BR gmake ,
- directories given with
- .B \-I
- flags may come directly after the flag:
-@@ -191,7 +191,7 @@ option, the last one is effective.
- If the
- .B \-j
- option is given without an argument,
--.BR make
-+.BR gmake
- will not limit the number of jobs that can run simultaneously.
- .TP 0.5i
- \fB\-k\fR, \fB\-\-keep\-going\fR
-@@ -252,7 +252,7 @@ This also prints the version information given by the
- .B \-v
- switch (see below).
- To print the data base without trying to remake any files, use
--.IR "make \-p \-f/dev/null" .
-+.IR "gmake \-p \-f/dev/null" .
- .TP 0.5i
- \fB\-q\fR, \fB\-\-question\fR
- ``Question mode''.
-@@ -275,11 +275,11 @@ Cancel the effect of the
- .B \-k
- option.
- This is never necessary except in a recursive
--.B make
-+.B gmake
- where
- .B \-k
- might be inherited from the top-level
--.B make
-+.B gmake
- via MAKEFLAGS or if you set
- .B \-k
- in MAKEFLAGS in your environment.
-@@ -289,7 +289,7 @@ Touch files (mark them up to date without really chang
- instead of running their commands.
- This is used to pretend that the commands were done, in order to fool
- future invocations of
--.BR make .
-+.BR gmake .
- .TP 0.5i
- .B \-\-trace
- Information about the disposition of each target is printed (why the target is
-@@ -297,7 +297,7 @@ being rebuilt and what commands are run to rebuild it)
- .TP 0.5i
- \fB\-v\fR, \fB\-\-version\fR
- Print the version of the
--.B make
-+.B gmake
- program plus a copyright, a list of authors and a notice that there
- is no warranty.
- .TP 0.5i
-@@ -306,7 +306,7 @@ Print a message containing the working directory
- before and after other processing.
- This may be useful for tracking down errors from complicated nests of
- recursive
--.B make
-+.B gmake
- commands.
- .TP 0.5i
- .B \-\-no\-print\-directory
-@@ -326,7 +326,7 @@ Without
- it is almost the same as running a
- .I touch
- command on the given file before running
--.BR make ,
-+.BR gmake ,
- except that the modification time is changed only in the imagination of
- .BR make .
- .TP 0.5i
-@@ -340,19 +340,19 @@ and no targets that were built failed. A status of on
- if the
- .B \-q
- flag was used and
--.B make
-+.B gmake
- determines that a target needs to be rebuilt. A status of two will be
- returned if any errors were encountered.
- .SH "SEE ALSO"
- The full documentation for
--.B make
-+.B gmake
- is maintained as a Texinfo manual. If the
- .B info
- and
--.B make
-+.B gmake
- programs are properly installed at your site, the command
- .IP
--.B info make
-+.B info 'GNU make'
- .PP
- should give you access to the complete manual.
- .SH BUGS
Index: patches/patch-makeint_h
===================================================================
RCS file: patches/patch-makeint_h
diff -N patches/patch-makeint_h
--- patches/patch-makeint_h 2 Nov 2019 00:33:29 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
-$OpenBSD: patch-makeint_h,v 1.3 2019/11/02 00:33:29 jca Exp $
-
-Remove too broad #ifdef so that we also use modern code on arm.
-
-Index: makeint.h
---- makeint.h.orig
-+++ makeint.h
-@@ -114,7 +114,7 @@ extern int errno;
- #endif
-
- /* Some systems define _POSIX_VERSION but are not really POSIX.1. */
--#if (defined (butterfly) || defined (__arm) || (defined (__mips) && defined
(_SYSTYPE_SVR3)) || (defined (sequent) && defined (i386)))
-+#if (defined (butterfly) || (defined (__mips) && defined (_SYSTYPE_SVR3)) || (defined
(sequent) && defined (i386)))
- # undef POSIX
- #endif
-
Index: patches/patch-posixos_c
===================================================================
RCS file: patches/patch-posixos_c
diff -N patches/patch-posixos_c
--- patches/patch-posixos_c 6 Aug 2019 12:19:26 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,156 +0,0 @@
-$OpenBSD: patch-posixos_c,v 1.1 2019/08/06 12:19:26 naddy Exp $
-
-Use a non-blocking read with pselect to avoid hangs.
-https://git.savannah.gnu.org/cgit/make.git/commit/?id=b552b05251980f693c729e251f93f5225b400714
-
-Index: posixos.c
---- posixos.c.orig
-+++ posixos.c
-@@ -59,6 +59,24 @@ make_job_rfd (void)
- #endif
- }
-
-+static void
-+set_blocking (int fd, int blocking)
-+{
-+ // If we're not using pselect() don't change the blocking
-+#ifdef HAVE_PSELECT
-+ int flags;
-+ EINTRLOOP (flags, fcntl (fd, F_GETFL));
-+ if (flags >= 0)
-+ {
-+ int r;
-+ flags = blocking ? (flags & ~O_NONBLOCK) : (flags | O_NONBLOCK);
-+ EINTRLOOP (r, fcntl (fd, F_SETFL, flags));
-+ if (r < 0)
-+ pfatal_with_name ("fcntl(O_NONBLOCK)");
-+ }
-+#endif
-+}
-+
- unsigned int
- jobserver_setup (int slots)
- {
-@@ -78,6 +96,9 @@ jobserver_setup (int slots)
- pfatal_with_name (_("init jobserver pipe"));
- }
-
-+ /* When using pselect() we want the read to be non-blocking. */
-+ set_blocking (job_fds[0], 0);
-+
- return 1;
- }
-
-@@ -113,6 +134,9 @@ jobserver_parse_auth (const char *auth)
- return 0;
- }
-
-+ /* When using pselect() we want the read to be non-blocking. */
-+ set_blocking (job_fds[0], 0);
-+
- return 1;
- }
-
-@@ -161,7 +185,10 @@ jobserver_acquire_all (void)
- {
- unsigned int tokens = 0;
-
-- /* Close the write side, so the read() won't hang. */
-+ /* Use blocking reads to wait for all outstanding jobs. */
-+ set_blocking (job_fds[0], 1);
-+
-+ /* Close the write side, so the read() won't hang forever. */
- close (job_fds[1]);
- job_fds[1] = -1;
-
-@@ -239,18 +266,12 @@ jobserver_pre_acquire (void)
- unsigned int
- jobserver_acquire (int timeout)
- {
-- sigset_t empty;
-- fd_set readfds;
- struct timespec spec;
- struct timespec *specp = NULL;
-- int r;
-- char intake;
-+ sigset_t empty;
-
- sigemptyset (&empty);
-
-- FD_ZERO (&readfds);
-- FD_SET (job_fds[0], &readfds);
--
- if (timeout)
- {
- /* Alarm after one second (is this too granular?) */
-@@ -259,28 +280,52 @@ jobserver_acquire (int timeout)
- specp = &spec;
- }
-
-- r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty);
--
-- if (r == -1)
-+ while (1)
- {
-- /* Better be SIGCHLD. */
-- if (errno != EINTR)
-- pfatal_with_name (_("pselect jobs pipe"));
-- return 0;
-- }
-+ fd_set readfds;
-+ int r;
-+ char intake;
-
-- if (r == 0)
-- /* Timeout. */
-- return 0;
-+ FD_ZERO (&readfds);
-+ FD_SET (job_fds[0], &readfds);
-
-- /* The read FD is ready: read it! */
-- EINTRLOOP (r, read (job_fds[0], &intake, 1));
-- if (r < 0)
-- pfatal_with_name (_("read jobs pipe"));
-+ r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty);
-+ if (r < 0)
-+ switch (errno)
-+ {
-+ case EINTR:
-+ /* SIGCHLD will show up as an EINTR. */
-+ return 0;
-
-- /* What does it mean if read() returns 0? It shouldn't happen because only
-- the master make can reap all the tokens and close the write side...?? */
-- return r > 0;
-+ case EBADF:
-+ /* Someone closed the jobs pipe.
-+ That shouldn't happen but if it does we're done. */
-+ O (fatal, NILF, _("job server shut down"));
-+
-+ default:
-+ pfatal_with_name (_("pselect jobs pipe"));
-+ }
-+
-+ if (r == 0)
-+ /* Timeout. */
-+ return 0;
-+
-+ /* The read FD is ready: read it! This is non-blocking. */
-+ EINTRLOOP (r, read (job_fds[0], &intake, 1));
-+
-+ if (r < 0)
-+ {
-+ /* Someone sniped our token! Try again. */
-+ if (errno == EAGAIN)
-+ continue;
-+
-+ pfatal_with_name (_("read jobs pipe"));
-+ }
-+
-+ /* read() should never return 0: only the master make can reap all the
-+ tokens and close the write side...?? */
-+ return r > 0;
-+ }
- }
-
- #else
Index: patches/patch-read_c
===================================================================
RCS file: patches/patch-read_c
diff -N patches/patch-read_c
--- patches/patch-read_c 5 Jan 2019 22:19:17 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
-$OpenBSD: patch-read_c,v 1.3 2019/01/05 22:19:17 naddy Exp $
-
-Use after free().
-https://git.savannah.gnu.org/cgit/make.git/commit/?id=816a867ff51110cbca1956ad0e625d8251a7531b
-
-Index: read.c
---- read.c.orig
-+++ read.c
-@@ -204,7 +204,7 @@ read_all_makefiles (const char **makefiles)
- {
- if (*p != '\0')
- *p++ = '\0';
-- eval_makefile (name, RM_NO_DEFAULT_GOAL|RM_INCLUDED|RM_DONTCARE);
-+ eval_makefile (strcache_add (name),
RM_NO_DEFAULT_GOAL|RM_INCLUDED|RM_DONTCARE);
- }
-
- free (value);
Index: patches/patch-remote-cstms_c
===================================================================
RCS file: patches/patch-remote-cstms_c
diff -N patches/patch-remote-cstms_c
--- patches/patch-remote-cstms_c 13 Sep 2019 16:59:34 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
-$OpenBSD: patch-remote-cstms_c,v 1.1 2019/09/13 16:59:34 kurt Exp $
-
-Only unblock fatal signals after child invocation
-http://git.savannah.gnu.org/cgit/make.git/commit/?id=78b5fec6898c26956d00548427cda1101cb80f8a
-
-Index: remote-cstms.c
---- remote-cstms.c.orig
-+++ remote-cstms.c
-@@ -246,7 +246,7 @@ start_remote_job (char **argv, char **envp, int stdin_
- (void) dup2 (stdin_fd, 0);
-
- /* Unblock signals in the child. */
-- unblock_sigs ();
-+ unblock_all_sigs ();
-
- /* Run the command. */
- exec_command (new_argv, envp);
Index: patches/patch-src_makeint_h
===================================================================
RCS file: patches/patch-src_makeint_h
diff -N patches/patch-src_makeint_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_makeint_h 30 Jan 2020 21:32:49 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: src/makeint.h
+--- src/makeint.h.orig
++++ src/makeint.h
+@@ -115,7 +115,7 @@ extern int errno;
+ #endif
+
+ /* Some systems define _POSIX_VERSION but are not really POSIX.1. */
+-#if (defined (butterfly) || defined (__arm) || (defined (__mips) && defined
(_SYSTYPE_SVR3)) || (defined (sequent) && defined (i386)))
++#if (defined (butterfly) || (defined (__mips) && defined (_SYSTYPE_SVR3)) || (defined
(sequent) && defined (i386)))
+ # undef POSIX
+ #endif
+
Index: patches/patch-tests_run_make_tests_pl
===================================================================
RCS file: patches/patch-tests_run_make_tests_pl
diff -N patches/patch-tests_run_make_tests_pl
--- patches/patch-tests_run_make_tests_pl 5 Aug 2019 12:14:52 -0000
1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
-$OpenBSD: patch-tests_run_make_tests_pl,v 1.1 2019/08/05 12:14:52 naddy Exp $
-
-Find Perl modules
-https://git.savannah.gnu.org/cgit/make.git/commit/?id=d9d4e06084a4c7da480bd49a3487aadf6ba77b54
-
-Index: tests/run_make_tests.pl
---- tests/run_make_tests.pl.orig
-+++ tests/run_make_tests.pl
-@@ -58,6 +58,9 @@ if ($^O eq 'VMS')
- *CORE::GLOBAL::rmdir = \&vms_rmdir;
- }
-
-+use FindBin;
-+use lib "$FindBin::Bin";
-+
- require "test_driver.pl";
- require "config-flags.pm";
-
Index: patches/patch-tests_scripts_features_archives
===================================================================
RCS file: /cvs/ports/devel/gmake/patches/patch-tests_scripts_features_archives,v
retrieving revision 1.2
diff -u -p -r1.2 patch-tests_scripts_features_archives
--- patches/patch-tests_scripts_features_archives 25 Jun 2016 19:47:11
-0000 1.2
+++ patches/patch-tests_scripts_features_archives 30 Jan 2020 21:32:49
-0000
@@ -1,7 +1,8 @@
$OpenBSD: patch-tests_scripts_features_archives,v 1.2 2016/06/25 19:47:11
naddy Exp $
---- tests/scripts/features/archives.orig Mon Feb 29 07:31:16 2016
-+++ tests/scripts/features/archives Fri Jun 24 18:19:09 2016
-@@ -183,7 +183,7 @@ $mk_string = q!
+Index: tests/scripts/features/archives
+--- tests/scripts/features/archives.orig
++++ tests/scripts/features/archives
+@@ -184,7 +184,7 @@ $mk_string = q!
DIR = artest
vpath % $(DIR)
default: lib(foo)
Index: patches/patch-tests_scripts_misc_close_stdout
===================================================================
RCS file: patches/patch-tests_scripts_misc_close_stdout
diff -N patches/patch-tests_scripts_misc_close_stdout
--- patches/patch-tests_scripts_misc_close_stdout 5 Aug 2019 15:05:09
-0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@
-$OpenBSD: patch-tests_scripts_misc_close_stdout,v 1.1 2019/08/05 15:05:09
naddy Exp $
-
-Don't error out on empty test: "Add test suite support to Windows"
-https://git.savannah.gnu.org/cgit/make.git/commit/?id=fda00f88d3180be1a898c19bfa23b7adba6c2a9e
-
-Index: tests/scripts/misc/close_stdout
---- tests/scripts/misc/close_stdout.orig
-+++ tests/scripts/misc/close_stdout
-@@ -2,8 +2,8 @@
-
- $description = "Make sure make exits with an error if stdout is full.";
-
--if (-e '/dev/full') {
-- run_make_test('', '-v > /dev/full', '/^#MAKE#: write error/', 256);
--}
-+-e '/dev/full' or return -1;
-+
-+run_make_test('', '-v > /dev/full', '/^#MAKE#: write error/', 256);
-
- 1;
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/gmake/pkg/PLIST,v
retrieving revision 1.16
diff -u -p -r1.16 PLIST
--- pkg/PLIST 30 Oct 2013 23:08:56 -0000 1.16
+++ pkg/PLIST 30 Jan 2020 21:32:49 -0000
@@ -4,6 +4,7 @@ include/gnumake.h
@info info/make.info
@man man/man1/gmake.1
share/locale/be/LC_MESSAGES/make.mo
+share/locale/bg/LC_MESSAGES/make.mo
share/locale/cs/LC_MESSAGES/make.mo
share/locale/da/LC_MESSAGES/make.mo
share/locale/de/LC_MESSAGES/make.mo
@@ -23,10 +24,13 @@ share/locale/lt/LC_MESSAGES/
share/locale/lt/LC_MESSAGES/make.mo
share/locale/nl/LC_MESSAGES/make.mo
share/locale/pl/LC_MESSAGES/make.mo
+share/locale/pt/LC_MESSAGES/make.mo
share/locale/pt_BR/LC_MESSAGES/make.mo
share/locale/ru/LC_MESSAGES/make.mo
+share/locale/sr/LC_MESSAGES/make.mo
share/locale/sv/LC_MESSAGES/make.mo
share/locale/tr/LC_MESSAGES/make.mo
share/locale/uk/LC_MESSAGES/make.mo
share/locale/vi/LC_MESSAGES/make.mo
share/locale/zh_CN/LC_MESSAGES/make.mo
+share/locale/zh_TW/LC_MESSAGES/make.mo