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