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
|
||||
Epoch: 1
|
||||
Version: 3.82
|
||||
Release: 9%{?dist}
|
||||
Release: 10%{?dist}
|
||||
License: GPLv2+
|
||||
Group: Development/Tools
|
||||
URL: http://www.gnu.org/software/make/
|
||||
Source: ftp://ftp.gnu.org/gnu/make/make-%{version}.tar.bz2
|
||||
|
||||
Patch1: make-3.82-noclock_gettime.patch
|
||||
Patch2: make-3.82-j8k.patch
|
||||
Patch3: make-3.82-getcwd.patch
|
||||
@ -19,8 +20,16 @@ Patch8: make-3.82-jobserver.patch
|
||||
Patch9: make-3.82-bugfixes.patch
|
||||
Patch10: make-3.82-sort-blank.patch
|
||||
Patch11: make-3.82-copy-on-expand.patch
|
||||
|
||||
# Uptream fix of https://savannah.gnu.org/bugs/?33873
|
||||
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)
|
||||
Requires(post): /sbin/install-info
|
||||
Requires(preun): /sbin/install-info
|
||||
@ -48,6 +57,8 @@ makefile.
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p0
|
||||
%patch13 -p2
|
||||
%patch14 -p1
|
||||
|
||||
%build
|
||||
%configure
|
||||
@ -90,6 +101,11 @@ fi
|
||||
%{_infodir}/*.info*
|
||||
|
||||
%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
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user