mirror of
https://git.yoctoproject.org/poky
synced 2026-04-18 03:32:13 +02:00
diffutils: update 3.7 -> 3.8
Drop patch as issue fixed upstream. (From OE-Core rev: 51ce88191ff3161935b23a4df9805338e4553c5b) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
3570e4040c
commit
7b69036180
@@ -1,84 +0,0 @@
|
||||
From 87b3a8f9ceb2cf0a5c8b72e460465fb9ff2d62d9 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 30 Apr 2021 17:40:36 -0700
|
||||
Subject: [PATCH] c-stack: stop using SIGSTKSZ
|
||||
|
||||
This patch is required with glibc 2.34+
|
||||
based on gnulib [1]
|
||||
|
||||
[1] https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=f9e2b20a12a230efa30f1d479563ae07d276a94b
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
lib/c-stack.c | 22 +++++++++++++---------
|
||||
1 file changed, 13 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/lib/c-stack.c b/lib/c-stack.c
|
||||
index 9bbe6fe..e0874c9 100644
|
||||
--- a/lib/c-stack.c
|
||||
+++ b/lib/c-stack.c
|
||||
@@ -51,13 +51,14 @@
|
||||
typedef struct sigaltstack stack_t;
|
||||
#endif
|
||||
#ifndef SIGSTKSZ
|
||||
-# define SIGSTKSZ 16384
|
||||
-#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
|
||||
+#define get_sigstksz() (16384)
|
||||
+#elif HAVE_LIBSIGSEGV
|
||||
/* libsigsegv 2.6 through 2.8 have a bug where some architectures use
|
||||
more than the Linux default of an 8k alternate stack when deciding
|
||||
if a fault was caused by stack overflow. */
|
||||
-# undef SIGSTKSZ
|
||||
-# define SIGSTKSZ 16384
|
||||
+#define get_sigstksz() ((SIGSTKSZ) < 16384 ? 16384 : (SIGSTKSZ))
|
||||
+#else
|
||||
+#define get_sigstksz() ((SIGSTKSZ))
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
@@ -136,7 +137,8 @@ die (int signo)
|
||||
/* Storage for the alternate signal stack. */
|
||||
static union
|
||||
{
|
||||
- char buffer[SIGSTKSZ];
|
||||
+ /* allocate buffer with size from get_sigstksz() */
|
||||
+ char *buffer;
|
||||
|
||||
/* These other members are for proper alignment. There's no
|
||||
standard way to guarantee stack alignment, but this seems enough
|
||||
@@ -208,10 +210,11 @@ c_stack_action (void (*action) (int))
|
||||
program_error_message = _("program error");
|
||||
stack_overflow_message = _("stack overflow");
|
||||
|
||||
+ alternate_signal_stack.buffer = malloc(get_sigstksz());
|
||||
/* Always install the overflow handler. */
|
||||
if (stackoverflow_install_handler (overflow_handler,
|
||||
alternate_signal_stack.buffer,
|
||||
- sizeof alternate_signal_stack.buffer))
|
||||
+ get_sigstksz()))
|
||||
{
|
||||
errno = ENOTSUP;
|
||||
return -1;
|
||||
@@ -284,14 +287,15 @@ c_stack_action (void (*action) (int))
|
||||
stack_t st;
|
||||
struct sigaction act;
|
||||
st.ss_flags = 0;
|
||||
+ alternate_signal_stack.buffer = malloc(get_sigstksz());
|
||||
# if SIGALTSTACK_SS_REVERSED
|
||||
/* Irix mistakenly treats ss_sp as the upper bound, rather than
|
||||
lower bound, of the alternate stack. */
|
||||
- st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ - sizeof (void *);
|
||||
- st.ss_size = sizeof alternate_signal_stack.buffer - sizeof (void *);
|
||||
+ st.ss_sp = alternate_signal_stack.buffer + get_sigstksz() - sizeof (void *);
|
||||
+ st.ss_size = get_sigstksz() - sizeof (void *);
|
||||
# else
|
||||
st.ss_sp = alternate_signal_stack.buffer;
|
||||
- st.ss_size = sizeof alternate_signal_stack.buffer;
|
||||
+ st.ss_size = get_sigstksz();
|
||||
# endif
|
||||
r = sigaltstack (&st, NULL);
|
||||
if (r != 0)
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@@ -6,14 +6,15 @@ require diffutils.inc
|
||||
SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.xz \
|
||||
file://run-ptest \
|
||||
file://0001-Skip-strip-trailing-cr-test-case.patch \
|
||||
file://0001-c-stack-stop-using-SIGSTKSZ.patch \
|
||||
"
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "4824adc0e95dbbf11dfbdfaad6a1e461"
|
||||
SRC_URI[sha256sum] = "b3a7a6221c3dc916085f0d205abf6b8e1ba443d4dd965118da364a1dc1cb3a26"
|
||||
SRC_URI[sha256sum] = "a6bdd7d1b31266d11c4f4de6c1b748d4607ab0231af5188fc2533d0ae2438fec"
|
||||
|
||||
EXTRA_OECONF += "ac_cv_path_PR_PROGRAM=${bindir}/pr --without-libsigsegv-prefix"
|
||||
|
||||
# latest gnulib is no longer able to handle this - I dare not try to fix that maze of abstractions and generators
|
||||
CFLAGS:mingw32 = " -DSA_RESTART=0"
|
||||
|
||||
# Fix "Argument list too long" error when len(TMPDIR) = 410
|
||||
acpaths = "-I ./m4"
|
||||
|
||||
Reference in New Issue
Block a user