ports/185636: [PATCH] devel/gmake: implicit gmake re-executions miss MAKEFLAGS with make-3.82

Julien Charbon jcharbon at verisign.com
Fri Jan 10 11:50:01 UTC 2014


>Number:         185636
>Category:       ports
>Synopsis:       [PATCH] devel/gmake: implicit gmake re-executions miss MAKEFLAGS with make-3.82
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jan 10 11:50:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     Julien Charbon
>Release:        8.4
>Organization:
Verisign
>Environment:
FreeBSD host 8.4-RELEASE-p4 FreeBSD 8.4-RELEASE-p4 #0 r+b89309b: Tue Sep 24 09:41:33 UTC 2013     root at host:/usr/src/freebsd/sys/GENERIC  amd64
>Description:
A bug introduced in gmake 3.82 (and not present in gmake 3.81) drives this unexpected behaviour:

When gmake automatically restarts itself because one of its includes is updated, the "MAKEFLAGS" environment variable is no more honoured.

This issue is described here:

http://savannah.gnu.org/bugs/?30723

And it is fixed in various Linux distros that use gmake 3.82:

ArchLinux:

https://projects.archlinux.org/svntogit/packages.git/tree/trunk/make-3.82-bug30723.patch?h=packages/make&id=a8335b891e635b8173e37155af2554ec345f181f

Fedora:

http://pkgs.fedoraproject.org/cgit/make.git/tree/make-3.82-bugfixes.patch#n39
>How-To-Repeat:

>Fix:
Apply the joined patch to devel/gmake port

Patch attached with submission follows:

diff --git a/devel/gmake/files/patch-main.c b/devel/gmake/files/patch-main.c
new file mode 100644
index 0000000..9935ca7
--- /dev/null
+++ b/devel/gmake/files/patch-main.c
@@ -0,0 +1,17 @@
+When gmake automatically restart itself because one of its includes is updated,
+the "MAKEFLAGS" environment variable is no more honoured.
+
+http://savannah.gnu.org/bugs/?30723
+
+diff -rU3 -N make-3.82.orig/main.c make-3.82/main.c
+--- main.c.orig	2010-07-19 07:10:53.000000000 +0000
++++ main.c	2014-01-10 10:55:32.000000000 +0000
+@@ -2093,7 +2093,7 @@
+             const char *pv = define_makeflags (1, 1);
+             char *p = alloca (sizeof ("MAKEFLAGS=") + strlen (pv) + 1);
+             sprintf (p, "MAKEFLAGS=%s", pv);
+-            putenv (p);
++            putenv (allocated_variable_expand (p));
+           }
+ 
+ 	  if (ISDB (DB_BASIC))


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-ports-bugs mailing list