From f7edd6dab1f29779a4d064acee61cce6ce7ecbe9 Mon Sep 17 00:00:00 2001
From: Chris Roberts <cpr420@gmail.com>
Date: Tue, 9 Aug 2016 18:34:58 +0300
Subject: gcc2 fixes


diff --git a/src/dir.c b/src/dir.c
index 01a32ab..523f860 100644
--- a/src/dir.c
+++ b/src/dir.c
@@ -265,6 +265,7 @@ diff_dirs (struct comparison const *cmp,
       /* Loop while files remain in one or both dirs.  */
       while (*names[0] || *names[1])
         {
+	  int v1;
           /* Compare next name in dir 0 with next name in dir 1.
              At the end of a dir,
              pretend the "next name" in that dir is very large.  */
@@ -305,7 +306,7 @@ diff_dirs (struct comparison const *cmp,
                 }
             }
 
-          int v1 = (*handle_file) (cmp,
+	  v1 = (*handle_file) (cmp,
                                    0 < nameorder ? 0 : *names[0]++,
                                    nameorder < 0 ? 0 : *names[1]++);
           if (val < v1)
@@ -363,7 +364,8 @@ find_dir_file_pathname (char const *dir, char const *file)
             match = file; /* longjmp may mess up MATCH.  */
           else
             {
-              for (char const **p = dirdata.names; *p; p++)
+	      char const **p;
+	      for (p = dirdata.names; *p; p++)
                 if (compare_names (*p, file) == 0)
                   {
                     if (file_name_cmp (*p, file) == 0)
diff --git a/src/io.c b/src/io.c
index 1f0e040..91d27c9 100644
--- a/src/io.c
+++ b/src/io.c
@@ -281,6 +281,8 @@ find_and_hash_each_line (struct file_data *current)
             size_t column = 0;
             while ((c = *p++) != '\n')
               {
+	    size_t repetitions = 1;
+
                 if (ig_white_space & IGNORE_TRAILING_SPACE
                     && isspace (c))
                   {
@@ -295,8 +297,6 @@ find_and_hash_each_line (struct file_data *current)
                     while (isspace (c1));
                   }
 
-                size_t repetitions = 1;
-
                 if (ig_white_space & IGNORE_TAB_EXPANSION)
                   switch (c)
                     {
diff --git a/src/util.c b/src/util.c
index 4348757..7772ebc 100644
--- a/src/util.c
+++ b/src/util.c
@@ -580,7 +580,7 @@ parse_diff_color (void)
   int ind_no;			/* Indicator number */
   char label[3];		/* Indicator label */
   struct color_ext_type *ext;	/* Extension we are working on */
-
+  enum parse_state state = PS_START;
   if ((p = color_palette) == NULL || *p == '\0')
     return;
 
@@ -593,7 +593,6 @@ parse_diff_color (void)
      advance.  */
   buf = color_buf = xstrdup (p);
 
-  enum parse_state state = PS_START;
   while (true)
     {
       switch (state)
-- 
2.30.2


From b3d9fbef01fe56c14e5a73045abef9c3cbe07359 Mon Sep 17 00:00:00 2001
From: fbrosson <fbrosson@localhost>
Date: Sun, 21 Aug 2016 05:35:54 +0000
Subject: additional gcc2 patch for diffutils-3.5.


diff --git a/src/diff3.c b/src/diff3.c
index 6be7e3c..7da42e2 100644
--- a/src/diff3.c
+++ b/src/diff3.c
@@ -266,6 +266,7 @@ main (int argc, char **argv)
   char *commonname;
   char **file;
   struct stat statb;
+  char *b0, *b1;
 
   exit_failure = EXIT_TROUBLE;
   initialize_main (&argc, &argv);
@@ -420,7 +421,6 @@ main (int argc, char **argv)
   /* Invoke diff twice on two pairs of input files, combine the two
      diffs, and output them.  */
 
-  char *b0, *b1;
   commonname = file[rev_mapping[FILEC]];
   thread1 = process_diff (file[rev_mapping[FILE1]], commonname, &last_block, &b1);
   thread0 = process_diff (file[rev_mapping[FILE0]], commonname, &last_block, &b0);
-- 
2.30.2


From 851998203df07998ea151c9afcb4fe74c3b199ab Mon Sep 17 00:00:00 2001
From: fbrosson <fbrosson@localhost>
Date: Sun, 21 Aug 2016 05:35:54 +0000
Subject: replace /usr/bin/perl by /bin/perl in man/help2man.


diff --git a/man/help2man b/man/help2man
index 49a76e5..cc42446 100755
--- a/man/help2man
+++ b/man/help2man
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/bin/perl -w
 
 # Generate a short man page from --help and --version output.
 # Copyright (C) 1997-2005, 2009-2011, 2013, 2015-2021 Free Software Foundation,
-- 
2.30.2


From 34606b3643b0dec0654e69f8e682f27fc83316ed Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sat, 23 Mar 2019 17:39:40 +0100
Subject: gcc2 patch for version 3.7.


diff --git a/lib/diffseq.h b/lib/diffseq.h
index 1cac430..bb9ecbe 100644
--- a/lib/diffseq.h
+++ b/lib/diffseq.h
@@ -200,6 +200,7 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal,
   OFFSET c;                     /* Cost. */
   bool odd = (fmid - bmid) & 1; /* True if southeast corner is on an odd
                                    diagonal with respect to the northwest. */
+  bool heuristic;
 
   fd[fmid] = xoff;
   bd[bmid] = xlim;
@@ -279,9 +280,9 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal,
         continue;
 
 #ifdef USE_HEURISTIC
-      bool heuristic = ctxt->heuristic;
+      heuristic = ctxt->heuristic;
 #else
-      bool heuristic = false;
+      heuristic = false;
 #endif
 
       /* Heuristic: check occasionally for a diagonal that has made lots
diff --git a/lib/filenamecat-lgpl.c b/lib/filenamecat-lgpl.c
index d52dc80..c02ff69 100644
--- a/lib/filenamecat-lgpl.c
+++ b/lib/filenamecat-lgpl.c
@@ -47,6 +47,8 @@
 char *
 mfile_name_concat (char const *dir, char const *base, char **base_in_result)
 {
+  char *p_concat;
+  char *p;
   char const *dirbase = last_component (dir);
   size_t dirbaselen = base_len (dirbase);
   size_t dirlen = dirbase - dir + dirbaselen;
@@ -68,7 +70,7 @@ mfile_name_concat (char const *dir, char const *base, char **base_in_result)
       sep = '.';
     }
 
-  char *p_concat = malloc (dirlen + (sep != '\0')  + baselen + 1);
+  p_concat = malloc (dirlen + (sep != '\0')  + baselen + 1);
   if (p_concat == NULL)
     return NULL;
 
diff --git a/lib/mktime.c b/lib/mktime.c
index ae721c7..2c0dd0f 100644
--- a/lib/mktime.c
+++ b/lib/mktime.c
@@ -270,6 +270,9 @@ static struct tm *
 ranged_convert (struct tm *(*convert) (const __time64_t *, struct tm *),
 		long_int *t, struct tm *tp)
 {
+  long_int bad;
+  long_int ok;
+  struct tm oktm;
   long_int t1 = (*t < mktime_min ? mktime_min
 		 : *t <= mktime_max ? *t : mktime_max);
   struct tm *r = convert_time (convert, t1, tp);
@@ -281,9 +284,9 @@ ranged_convert (struct tm *(*convert) (const __time64_t *, struct tm *),
   if (errno != EOVERFLOW)
     return NULL;
 
-  long_int bad = t1;
-  long_int ok = 0;
-  struct tm oktm; oktm.tm_sec = -1;
+  bad = t1;
+  ok = 0;
+  oktm.tm_sec = -1;
 
   /* BAD is a known out-of-range value, and OK is a known in-range one.
      Use binary search to narrow the range between BAD and OK until
@@ -365,6 +368,8 @@ __mktime_internal (struct tm *tp,
   int negative_offset_guess;
 
   int sec_requested = sec;
+  long_int t0;
+  long_int t, t1, t2;
 
   if (LEAP_SECONDS_POSSIBLE)
     {
@@ -380,18 +385,19 @@ __mktime_internal (struct tm *tp,
      time.  */
 
   INT_SUBTRACT_WRAPV (0, off, &negative_offset_guess);
-  long_int t0 = ydhms_diff (year, yday, hour, min, sec,
+  t0 = ydhms_diff (year, yday, hour, min, sec,
 			    EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0,
 			    negative_offset_guess);
-  long_int t = t0, t1 = t0, t2 = t0;
+  t = t0, t1 = t0, t2 = t0;
 
   /* Repeatedly use the error to improve the guess.  */
 
   while (true)
     {
+      long_int dt;
       if (! ranged_convert (convert, &t, &tm))
 	return -1;
-      long_int dt = tm_diff (year, yday, hour, min, sec, &tm);
+      dt = tm_diff (year, yday, hour, min, sec, &tm);
       if (dt == 0)
 	break;
 
@@ -523,13 +529,15 @@ __mktime_internal (struct tm *tp,
 __time64_t
 __mktime64 (struct tm *tp)
 {
+# if defined _LIBC || NEED_MKTIME_WORKING
+  static mktime_offset_t localtime_offset;
+#endif
   /* POSIX.1 8.1.1 requires that whenever mktime() is called, the
      time zone names contained in the external variable 'tzname' shall
      be set as if the tzset() function had been called.  */
   __tzset ();
 
 # if defined _LIBC || NEED_MKTIME_WORKING
-  static mktime_offset_t localtime_offset;
   return __mktime_internal (tp, __localtime64_r, &localtime_offset);
 # else
 #  undef mktime
diff --git a/src/io.c b/src/io.c
index 91d27c9..421f96b 100644
--- a/src/io.c
+++ b/src/io.c
@@ -487,10 +487,11 @@ prepare_text (struct file_data *current)
   if (strip_trailing_cr)
     {
       char *srclim = p + buffered;
-      *srclim = '\r';
       char *dst = rawmemchr (p, '\r');
+      char const *src;
+      *srclim = '\r';
 
-      for (char const *src = dst; src != srclim; src++)
+      for (src = dst; src != srclim; src++)
         {
           src += *src == '\r' && src[1] == '\n';
           *dst++ = *src;
-- 
2.30.2

