diff options
author | Angus Trau <me@angus.ws> | 2021-07-25 14:24:12 +1000 |
---|---|---|
committer | Angus Trau <me@angus.ws> | 2021-07-27 21:32:54 +1000 |
commit | 3656c6a538a9e9dda5c323c2211b5d338090eda0 (patch) | |
tree | 664a70cf3534cdd2c3fd7f0fa3f9f352ec908223 /pkgs/development/tools/misc/xxgdb/xxgdb-pty.patch | |
parent | 2129356a6405cc342e860d87623d3823e8ee3b8c (diff) | |
download | nixpkgs-3656c6a538a9e9dda5c323c2211b5d338090eda0.tar nixpkgs-3656c6a538a9e9dda5c323c2211b5d338090eda0.tar.gz nixpkgs-3656c6a538a9e9dda5c323c2211b5d338090eda0.tar.bz2 nixpkgs-3656c6a538a9e9dda5c323c2211b5d338090eda0.tar.lz nixpkgs-3656c6a538a9e9dda5c323c2211b5d338090eda0.tar.xz nixpkgs-3656c6a538a9e9dda5c323c2211b5d338090eda0.tar.zst nixpkgs-3656c6a538a9e9dda5c323c2211b5d338090eda0.zip |
xxgdb: init at 1.12
Diffstat (limited to 'pkgs/development/tools/misc/xxgdb/xxgdb-pty.patch')
-rw-r--r-- | pkgs/development/tools/misc/xxgdb/xxgdb-pty.patch | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/pkgs/development/tools/misc/xxgdb/xxgdb-pty.patch b/pkgs/development/tools/misc/xxgdb/xxgdb-pty.patch new file mode 100644 index 00000000000..735bb1b0b5f --- /dev/null +++ b/pkgs/development/tools/misc/xxgdb/xxgdb-pty.patch @@ -0,0 +1,84 @@ +--- xxgdb-1.12-org/calldbx.c 2012-10-26 17:17:49.810750909 -0700 ++++ xxgdb-1.12/calldbx.c 2012-10-26 17:53:59.209918816 -0700 +@@ -69,6 +69,12 @@ + * create_io_window(): create an io window for gdb to use + */ + ++#ifdef linux ++#ifndef _GNU_SOURCE ++#define _GNU_SOURCE ++#endif ++#endif ++ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +@@ -126,6 +132,13 @@ + { + int master; + ++#ifdef _POSIX_SOURCE ++ if ((master = posix_openpt (O_RDWR|O_NOCTTY)) < 0) { ++ perror("posix_openpt failed:"); ++ } else { ++ return master; ++ } ++#else + #ifdef SVR4 /* (MJH) Use STREAMS */ + + if((master = open(MASTER_CLONE, O_RDWR)) < 0) +@@ -152,6 +165,7 @@ + } + #endif + #endif /* SVR4 */ ++#endif /* _POSIX_SOURCE */ + + #ifdef GDB + fprintf(stderr, "xxgdb: all ptys in use\n"); +@@ -167,7 +181,28 @@ + { + int slave; + +-#ifdef SVR4 /* (MJH) */ ++#ifdef _POSIX_SOURCE ++ char *slave_name = ptsname (master); ++ if (slave_name == NULL) { ++ perror ("Pseudo-tty slave"); ++ exit (2); ++ } // end if ++ if (grantpt (master) < 0) { ++ perror ("grantpt error"); ++ exit (3); ++ } ++ if (unlockpt (master) < 0) { ++ perror ("unlockpt error"); ++ exit (4); ++ } ++ if ((slave = open (slave_name, O_RDWR)) < 0) { ++ perror (slave_name); ++ exit (5); ++ } // end if ++ return slave; ++#else ++#ifdef SVR4 ++ /* (MJH) */ + char *slave_name = "unknown"; + extern char *ptsname(int master); + void (*handler)(); +@@ -194,6 +229,7 @@ + } + return slave; + #endif /* SVR4 */ ++#endif /* _POSIX_SOURCE */ + } + + #ifdef CREATE_IO_WINDOW +@@ -230,7 +266,7 @@ + { + /* child */ + /* printf("xterm xterm -l -e xxgdbiowin\n");*/ +- if (execlp("xterm", "xterm", "-e", "xxgdbiowin", 0)) ++ if (execlp("xterm", "xterm", "-e", "xxgdbiowin", NULL)) + { + printf("exec of 'xterm -e xxgdbiowin' fails\n"); + unlink("/tmp/iowindowtty"); |