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