diff --git a/sys-apps/diffutils/patches/diffutils-3.7.patchset b/sys-apps/diffutils/patches/diffutils-3.7.patchset index 04dc40911..e0c3e76cd 100644 --- a/sys-apps/diffutils/patches/diffutils-3.7.patchset +++ b/sys-apps/diffutils/patches/diffutils-3.7.patchset @@ -1,4 +1,4 @@ -From 1b48015e64b818b631d3a283f66c998f4397ca42 Mon Sep 17 00:00:00 2001 +From 264b60b3ba542c7fafcc64397252a847e8034a60 Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Tue, 9 Aug 2016 18:34:58 +0300 Subject: gcc2 fixes @@ -82,7 +82,7 @@ index 4f4d9bb..cddec11 100644 2.19.1 -From 6d10bf20e1007b091648dac23409e98319b242ca Mon Sep 17 00:00:00 2001 +From dc949e176ac2be4716680d799141a327a594fded Mon Sep 17 00:00:00 2001 From: fbrosson Date: Sun, 21 Aug 2016 05:35:54 +0000 Subject: additional gcc2 patch for diffutils-3.5. @@ -112,7 +112,7 @@ index ec414a9..59eebcd 100644 2.19.1 -From 774ce1f5cc45b6ba07d907d6e447a5a14d00ac8e Mon Sep 17 00:00:00 2001 +From e42bf41db1daa4ea086e121e48557c46ff4f0858 Mon Sep 17 00:00:00 2001 From: fbrosson Date: Sun, 21 Aug 2016 05:35:54 +0000 Subject: replace /usr/bin/perl by /bin/perl in man/help2man. @@ -131,3 +131,173 @@ index 304985c..b6ed40b 100755 -- 2.19.1 + +From 7f7d8250c31613f5f11533685290d7ac93e45e95 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +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 9244729..c54b54c 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 f50ecc1..fc2741c 100644 +--- a/lib/filenamecat-lgpl.c ++++ b/lib/filenamecat-lgpl.c +@@ -46,6 +46,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; +@@ -67,8 +69,7 @@ mfile_name_concat (char const *dir, char const *base, char **base_in_result) + sep = '.'; + } + +- char *p_concat = malloc (dirlen + (sep != '\0') + baselen + 1); +- char *p; ++ 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 9c3fb20..a344bb4 100644 +--- a/lib/mktime.c ++++ b/lib/mktime.c +@@ -271,6 +271,9 @@ static struct tm * + ranged_convert (struct tm *(*convert) (const time_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); +@@ -282,9 +285,9 @@ ranged_convert (struct tm *(*convert) (const time_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 +@@ -366,6 +369,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) + { +@@ -381,18 +386,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; + +@@ -524,13 +530,15 @@ __mktime_internal (struct tm *tp, + time_t + mktime (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, __localtime_r, &localtime_offset); + # else + # undef mktime +diff --git a/lib/regexec.c b/lib/regexec.c +index c7d099c..00d171f 100644 +--- a/lib/regexec.c ++++ b/lib/regexec.c +@@ -3346,12 +3346,13 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) + goto out_free; + + /* Avoid arithmetic overflow in size calculation. */ ++ { + size_t ndests_max + = ((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX) + / (3 * sizeof (re_dfastate_t *))); + if (__glibc_unlikely (ndests_max < ndests)) + goto out_free; +- ++ } + if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX + + ndests * 3 * sizeof (re_dfastate_t *))) + dest_states = (re_dfastate_t **) +diff --git a/src/io.c b/src/io.c +index 5705101..fe49ee4 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.19.1 +