Apply two patches proposed upstream
This commit is contained in:
parent
3fa94216f6
commit
e8bdb89472
111
make-3.82-trace.patch
Normal file
111
make-3.82-trace.patch
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
|
||||||
|
This patch add the support for --debug=c and --debug=e to make
|
||||||
|
this option when activated will trace in stdout the activity of $(call and $(eval in the Makefile
|
||||||
|
|
||||||
|
The trace use the format:
|
||||||
|
### xxx -->
|
||||||
|
### xxx <--
|
||||||
|
the number of space before ### is at least 1 and increase with the nesting of eval/call
|
||||||
|
|
||||||
|
usage: make --debug=c,e
|
||||||
|
|
||||||
|
diff -r -u make-3.82/debug.h make-3.82-lo_trace/debug.h
|
||||||
|
--- make-3.82/debug.h 2010-07-12 20:20:38.000000000 -0500
|
||||||
|
+++ make-3.82-lo_trace/debug.h 2011-06-22 12:06:37.000000000 -0500
|
||||||
|
@@ -21,6 +21,8 @@
|
||||||
|
#define DB_JOBS (0x004)
|
||||||
|
#define DB_IMPLICIT (0x008)
|
||||||
|
#define DB_MAKEFILES (0x100)
|
||||||
|
+#define DB_CALL (0x01000)
|
||||||
|
+#define DB_EVAL (0x02000)
|
||||||
|
|
||||||
|
#define DB_ALL (0xfff)
|
||||||
|
|
||||||
|
diff -r -u make-3.82/function.c make-3.82-lo_trace/function.c
|
||||||
|
--- make-3.82/function.c 2011-06-23 01:01:35.000000000 -0500
|
||||||
|
+++ make-3.82-lo_trace/function.c 2011-06-23 01:40:05.000000000 -0500
|
||||||
|
@@ -28,6 +28,8 @@
|
||||||
|
#include "amiga.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+static int depth = 0;
|
||||||
|
+
|
||||||
|
|
||||||
|
struct function_table_entry
|
||||||
|
{
|
||||||
|
@@ -1371,7 +1373,12 @@
|
||||||
|
|
||||||
|
install_variable_buffer (&buf, &len);
|
||||||
|
|
||||||
|
+ depth += 1;
|
||||||
|
+ DBS( DB_EVAL, ("### eval -->\n"));
|
||||||
|
+ DB( DB_EVAL, ("%s\n", argv[0]));
|
||||||
|
eval_buffer (argv[0]);
|
||||||
|
+ DBS( DB_EVAL, ("### eval <--\n"));
|
||||||
|
+ depth -= 1;
|
||||||
|
|
||||||
|
restore_variable_buffer (buf, len);
|
||||||
|
|
||||||
|
@@ -2338,6 +2345,7 @@
|
||||||
|
if (v == 0 || *v->value == '\0')
|
||||||
|
return o;
|
||||||
|
|
||||||
|
+ depth += 1;
|
||||||
|
body = alloca (flen + 4);
|
||||||
|
body[0] = '$';
|
||||||
|
body[1] = '(';
|
||||||
|
@@ -2345,6 +2353,7 @@
|
||||||
|
body[flen+2] = ')';
|
||||||
|
body[flen+3] = '\0';
|
||||||
|
|
||||||
|
+ DBS(DB_CALL, ("### call %s -->\n", body));
|
||||||
|
/* Set up arguments $(1) .. $(N). $(0) is the function name. */
|
||||||
|
|
||||||
|
push_new_variable_scope ();
|
||||||
|
@@ -2354,6 +2363,7 @@
|
||||||
|
char num[11];
|
||||||
|
|
||||||
|
sprintf (num, "%d", i);
|
||||||
|
+ DBS(DB_CALL, ("### arg %i for call %s is '%s'\n", i, body, *argv));
|
||||||
|
define_variable (num, strlen (num), *argv, o_automatic, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2367,6 +2377,7 @@
|
||||||
|
char num[11];
|
||||||
|
|
||||||
|
sprintf (num, "%d", i);
|
||||||
|
+ DBS(DB_CALL, ("### arg %i for call %s is implicit\n", i, body));
|
||||||
|
define_variable (num, strlen (num), "", o_automatic, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2377,7 +2388,14 @@
|
||||||
|
|
||||||
|
saved_args = max_args;
|
||||||
|
max_args = i;
|
||||||
|
+
|
||||||
|
o = variable_expand_string (o, body, flen+3);
|
||||||
|
+ DBS(DB_CALL, ("### call to %s expended into\n", body));
|
||||||
|
+ DB(DB_CALL, ("%s\n", o));
|
||||||
|
+ DBS(DB_CALL, ("### call %s <--\n", body));
|
||||||
|
+
|
||||||
|
+ depth -= 1;
|
||||||
|
+
|
||||||
|
max_args = saved_args;
|
||||||
|
|
||||||
|
v->exp_count = 0;
|
||||||
|
diff -r -u make-3.82/main.c make-3.82-lo_trace/main.c
|
||||||
|
--- make-3.82/main.c 2010-07-19 02:10:53.000000000 -0500
|
||||||
|
+++ make-3.82-lo_trace/main.c 2011-06-22 11:46:39.000000000 -0500
|
||||||
|
@@ -634,6 +634,12 @@
|
||||||
|
case 'b':
|
||||||
|
db_level |= DB_BASIC;
|
||||||
|
break;
|
||||||
|
+ case 'c':
|
||||||
|
+ db_level |= DB_CALL;
|
||||||
|
+ break;
|
||||||
|
+ case 'e':
|
||||||
|
+ db_level |= DB_EVAL;
|
||||||
|
+ break;
|
||||||
|
case 'i':
|
||||||
|
db_level |= DB_BASIC | DB_IMPLICIT;
|
||||||
|
break;
|
84
make-3.82-warn_undefined_function.patch
Normal file
84
make-3.82-warn_undefined_function.patch
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
diff --git a/make-3.82-gbuild/function.c b/make-3.82-gbuild/function.c
|
||||||
|
index e2f6c8c..ff0527f 100644
|
||||||
|
--- a/make-3.82/function.c
|
||||||
|
+++ b/make-3.82/function.c
|
||||||
|
@@ -2333,8 +2333,10 @@ func_call (char *o, char **argv, const char *funcname UNUSED)
|
||||||
|
v = lookup_variable (fname, flen);
|
||||||
|
|
||||||
|
if (v == 0)
|
||||||
|
- warn_undefined (fname, flen);
|
||||||
|
-
|
||||||
|
+ {
|
||||||
|
+ warn_undefined (fname, flen);
|
||||||
|
+ warn_undefined_function (fname, flen);
|
||||||
|
+ }
|
||||||
|
if (v == 0 || *v->value == '\0')
|
||||||
|
return o;
|
||||||
|
|
||||||
|
diff --git a/make-3.82-gbuild/main.c b/make-3.82-gbuild/main.c
|
||||||
|
index c6989e3..2f545a7 100644
|
||||||
|
--- a/make-3.82/main.c
|
||||||
|
+++ b/make-3.82/main.c
|
||||||
|
@@ -275,6 +275,11 @@ static int print_usage_flag = 0;
|
||||||
|
|
||||||
|
int warn_undefined_variables_flag;
|
||||||
|
|
||||||
|
+/* If nonzero, we should print a warning message
|
||||||
|
+ for each attemtp to call an undefined user function. */
|
||||||
|
+
|
||||||
|
+int warn_undefined_functions_flag;
|
||||||
|
+
|
||||||
|
/* If nonzero, always build all targets, regardless of whether
|
||||||
|
they appear out of date or not. */
|
||||||
|
|
||||||
|
@@ -368,6 +373,8 @@ static const char *const usage[] =
|
||||||
|
Consider FILE to be infinitely new.\n"),
|
||||||
|
N_("\
|
||||||
|
--warn-undefined-variables Warn when an undefined variable is referenced.\n"),
|
||||||
|
+ N_("\
|
||||||
|
+ --warn-undefined-functions Warn when an undefined user function is called.\n"),
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -424,6 +431,8 @@ static const struct command_switch switches[] =
|
||||||
|
{ CHAR_MAX+5, flag, &warn_undefined_variables_flag, 1, 1, 0, 0, 0,
|
||||||
|
"warn-undefined-variables" },
|
||||||
|
{ CHAR_MAX+6, string, &eval_strings, 1, 0, 0, 0, 0, "eval" },
|
||||||
|
+ { CHAR_MAX+7, flag, &warn_undefined_functions_flag, 1, 1, 0, 0, 0,
|
||||||
|
+ "warn-undefined-functions" },
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
diff --git a/make-3.82-gbuild/make.h b/make-3.82-gbuild/make.h
|
||||||
|
index 60ade4c..f2ebb56 100644
|
||||||
|
--- a/make-3.82/make.h
|
||||||
|
+++ b/make-3.82/make.h
|
||||||
|
@@ -513,7 +513,7 @@ extern int env_overrides, no_builtin_rules_flag, no_builtin_variables_flag;
|
||||||
|
extern int print_version_flag, print_directory_flag, check_symlink_flag;
|
||||||
|
extern int warn_undefined_variables_flag, posix_pedantic, not_parallel;
|
||||||
|
extern int second_expansion, clock_skew_detected, rebuilding_makefiles;
|
||||||
|
-extern int one_shell;
|
||||||
|
+extern int one_shell, warn_undefined_functions_flag;
|
||||||
|
|
||||||
|
/* can we run commands via 'sh -c xxx' or must we use batch files? */
|
||||||
|
extern int batch_mode_shell;
|
||||||
|
diff --git a/make-3.82-gbuild/variable.h b/make-3.82-gbuild/variable.h
|
||||||
|
index c215867..02713c1 100644
|
||||||
|
--- a/make-3.82/variable.h
|
||||||
|
+++ b/make-3.82/variable.h
|
||||||
|
@@ -220,6 +220,13 @@ void undefine_variable_in_set (const char *name, unsigned int length,
|
||||||
|
(int)(l), (n)); \
|
||||||
|
}while(0)
|
||||||
|
|
||||||
|
+#define warn_undefined_function(n,l) do{\
|
||||||
|
+ if (warn_undefined_functions_flag) \
|
||||||
|
+ error (reading_file, \
|
||||||
|
+ _("warning: undefined function `%.*s'"), \
|
||||||
|
+ (int)(l), (n)); \
|
||||||
|
+ }while(0)
|
||||||
|
+
|
||||||
|
char **target_environment (struct file *file);
|
||||||
|
|
||||||
|
struct pattern_var *create_pattern_var (const char *target,
|
||||||
|
--
|
||||||
|
cgit v0.9.0.2-2-gbebe
|
18
make.spec
18
make.spec
@ -3,11 +3,12 @@ Summary: A GNU tool which simplifies the build process for users
|
|||||||
Name: make
|
Name: make
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 3.82
|
Version: 3.82
|
||||||
Release: 9%{?dist}
|
Release: 10%{?dist}
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
URL: http://www.gnu.org/software/make/
|
URL: http://www.gnu.org/software/make/
|
||||||
Source: ftp://ftp.gnu.org/gnu/make/make-%{version}.tar.bz2
|
Source: ftp://ftp.gnu.org/gnu/make/make-%{version}.tar.bz2
|
||||||
|
|
||||||
Patch1: make-3.82-noclock_gettime.patch
|
Patch1: make-3.82-noclock_gettime.patch
|
||||||
Patch2: make-3.82-j8k.patch
|
Patch2: make-3.82-j8k.patch
|
||||||
Patch3: make-3.82-getcwd.patch
|
Patch3: make-3.82-getcwd.patch
|
||||||
@ -19,8 +20,16 @@ Patch8: make-3.82-jobserver.patch
|
|||||||
Patch9: make-3.82-bugfixes.patch
|
Patch9: make-3.82-bugfixes.patch
|
||||||
Patch10: make-3.82-sort-blank.patch
|
Patch10: make-3.82-sort-blank.patch
|
||||||
Patch11: make-3.82-copy-on-expand.patch
|
Patch11: make-3.82-copy-on-expand.patch
|
||||||
|
|
||||||
# Uptream fix of https://savannah.gnu.org/bugs/?33873
|
# Uptream fix of https://savannah.gnu.org/bugs/?33873
|
||||||
Patch12: make-3.82-parallel-remake.patch
|
Patch12: make-3.82-parallel-remake.patch
|
||||||
|
|
||||||
|
# http://savannah.gnu.org/bugs/?34335
|
||||||
|
Patch13: make-3.82-warn_undefined_function.patch
|
||||||
|
|
||||||
|
# http://lists.gnu.org/archive/html/bug-make/2011-06/msg00032.html
|
||||||
|
Patch14: make-3.82-trace.patch
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
Requires(post): /sbin/install-info
|
Requires(post): /sbin/install-info
|
||||||
Requires(preun): /sbin/install-info
|
Requires(preun): /sbin/install-info
|
||||||
@ -48,6 +57,8 @@ makefile.
|
|||||||
%patch10 -p1
|
%patch10 -p1
|
||||||
%patch11 -p1
|
%patch11 -p1
|
||||||
%patch12 -p0
|
%patch12 -p0
|
||||||
|
%patch13 -p2
|
||||||
|
%patch14 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure
|
%configure
|
||||||
@ -90,6 +101,11 @@ fi
|
|||||||
%{_infodir}/*.info*
|
%{_infodir}/*.info*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Mar 12 2012 Petr Machata <pmachata@redhat.com> - 1:3.82-10
|
||||||
|
- Apply the following patches, proposed upstream by Norbert Thiebaud:
|
||||||
|
- A patch for warning on call of undefined function
|
||||||
|
- A patch for tracing calls to "eval" and "call"
|
||||||
|
|
||||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.82-9
|
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.82-9
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user