gdb: Fix "setpgrp failed in child" error
authorFredrik Fornwall <fredrik@fornwall.net>
Mon, 8 Feb 2016 00:33:15 +0000 (19:33 -0500)
committerFredrik Fornwall <fredrik@fornwall.net>
Mon, 8 Feb 2016 00:33:15 +0000 (19:33 -0500)
This broke e.g. Ctrl+C behaviour when debugging programs under gdb.

Fixes #73.

packages/gdb/build.sh
packages/gdb/gdb-inflow.c.patch [new file with mode: 0644]

index 82023ff..2ec4db6 100755 (executable)
@@ -2,7 +2,7 @@ TERMUX_PKG_HOMEPAGE=https://www.gnu.org/software/gdb/
 TERMUX_PKG_DESCRIPTION="The standard GNU Debugger that runs on many Unix-like systems and works for many programming languages"
 TERMUX_PKG_DEPENDS="liblzma, libexpat, readline"
 TERMUX_PKG_VERSION=7.10.1
-TERMUX_PKG_BUILD_REVISION=1
+TERMUX_PKG_BUILD_REVISION=2
 TERMUX_PKG_SRCURL=http://ftp.gnu.org/gnu/gdb/gdb-${TERMUX_PKG_VERSION}.tar.xz
 # gdb can not build with our normal --disable-static: https://sourceware.org/bugzilla/show_bug.cgi?id=15916
 TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--with-system-readline --with-curses --enable-static ac_cv_func_getpwent=no ac_cv_func_getpwnam=no"
diff --git a/packages/gdb/gdb-inflow.c.patch b/packages/gdb/gdb-inflow.c.patch
new file mode 100644 (file)
index 0000000..4d9d8eb
--- /dev/null
@@ -0,0 +1,18 @@
+diff -u -r ../gdb-7.10.1/gdb/inflow.c ./gdb/inflow.c
+--- ../gdb-7.10.1/gdb/inflow.c 2015-12-05 10:16:45.000000000 -0500
++++ ./gdb/inflow.c     2016-02-07 19:28:38.979181296 -0500
+@@ -862,10 +862,10 @@
+     {
+ #if defined (HAVE_TERMIOS) || defined (TIOCGPGRP)
+ #ifdef HAVE_SETPGID
+-      /* The call setpgid (0, 0) is supposed to work and mean the same
+-         thing as this, but on Ultrix 4.2A it fails with EPERM (and
+-         setpgid (getpid (), getpid ()) succeeds).  */
+-      retval = setpgid (getpid (), getpid ());
++      /* Termux change: setpgid(getpid(), getpid()), which is used upstream
++       for working around Ultrix 4.2A issue, does not work on Android but
++       fails with ESRCH. So revert back to simple setpgid(0,0). */
++      retval = setpgid (0, 0);
+ #else
+ #ifdef HAVE_SETPGRP
+ #ifdef SETPGRP_VOID