diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix index b3facd1203b..b3a86a03d97 100644 --- a/pkgs/development/tools/misc/gdb/default.nix +++ b/pkgs/development/tools/misc/gdb/default.nix @@ -30,6 +30,8 @@ stdenv.mkDerivation rec { sha256 = "08vcb97j1b7vxwq6088wb6s3g3bm8iwikd922y0xsgbbxv3d2104"; }; + patches = [ ./edit-signals.patch ]; + # I think python is not a native input, but I leave it # here while I will not need it cross building nativeBuildInputs = [ texinfo python ] diff --git a/pkgs/development/tools/misc/gdb/edit-signals.patch b/pkgs/development/tools/misc/gdb/edit-signals.patch new file mode 100644 index 00000000000..e9da8035ef5 --- /dev/null +++ b/pkgs/development/tools/misc/gdb/edit-signals.patch @@ -0,0 +1,25 @@ +Patch adapted from +https://www.sourceware.org/ml/gdb-patches/2012-08/msg00439.html + +Without it, spawning a terminal 'vim' from gdb 'edit' cmd, makes +all gdb grazy. + +diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c +index 7ea0fec..be5455c 100644 +--- a/gdb/tui/tui-win.c ++++ b/gdb/tui/tui-win.c +@@ -831,11 +831,12 @@ void + tui_initialize_win (void) + { + #ifdef SIGWINCH +-#ifdef HAVE_SIGACTION ++#if defined (HAVE_SIGACTION) && defined (SA_RESTART) + struct sigaction old_winch; + +- memset (&old_winch, 0, sizeof (old_winch)); ++ sigemptyset (&old_winch.sa_mask); + old_winch.sa_handler = &tui_sigwinch_handler; ++ old_winch.sa_flags = SA_RESTART; + sigaction (SIGWINCH, &old_winch, NULL); + #else + signal (SIGWINCH, &tui_sigwinch_handler);