diff options
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | configure.ac | 13 |
2 files changed, 14 insertions, 4 deletions
| @@ -1,3 +1,8 @@ | |||
| 1 | 2012-08-17 Jan Beich <jbeich@tormail.org> (tiny change) | ||
| 2 | |||
| 3 | * configure.ac (PTY_OPEN): Try posix_openpt on gnu-linux, | ||
| 4 | gnu-kfreebsd, freebsd, and netbsd. (Bug#12040) | ||
| 5 | |||
| 1 | 2012-08-14 Paul Eggert <eggert@cs.ucla.edu> | 6 | 2012-08-14 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 7 | ||
| 3 | Merge from gnulib, incorporating: | 8 | Merge from gnulib, incorporating: |
diff --git a/configure.ac b/configure.ac index 92fb5f8413b..30bfb95e1dc 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -2773,7 +2773,7 @@ AC_FUNC_GETPGRP | |||
| 2773 | AC_CHECK_FUNCS(grantpt) | 2773 | AC_CHECK_FUNCS(grantpt) |
| 2774 | 2774 | ||
| 2775 | # PTY-related GNU extensions. | 2775 | # PTY-related GNU extensions. |
| 2776 | AC_CHECK_FUNCS(getpt) | 2776 | AC_CHECK_FUNCS(getpt posix_openpt) |
| 2777 | 2777 | ||
| 2778 | # Check this now, so that we will NOT find the above functions in ncurses. | 2778 | # Check this now, so that we will NOT find the above functions in ncurses. |
| 2779 | # That is because we have not set up to link ncurses in lib-src. | 2779 | # That is because we have not set up to link ncurses in lib-src. |
| @@ -3397,6 +3397,7 @@ case $opsys in | |||
| 3397 | AC_DEFINE(PTY_TTY_NAME_SPRINTF, []) | 3397 | AC_DEFINE(PTY_TTY_NAME_SPRINTF, []) |
| 3398 | ;; | 3398 | ;; |
| 3399 | 3399 | ||
| 3400 | dnl FIXME? Maybe use same as freebsd - see bug#12040. | ||
| 3400 | darwin ) | 3401 | darwin ) |
| 3401 | AC_DEFINE(PTY_ITERATION, [int i; for (i = 0; i < 1; i++)]) | 3402 | AC_DEFINE(PTY_ITERATION, [int i; for (i = 0; i < 1; i++)]) |
| 3402 | dnl Not used, because PTY_ITERATION is defined. | 3403 | dnl Not used, because PTY_ITERATION is defined. |
| @@ -3409,11 +3410,11 @@ case $opsys in | |||
| 3409 | AC_DEFINE(PTY_TTY_NAME_SPRINTF, []) | 3410 | AC_DEFINE(PTY_TTY_NAME_SPRINTF, []) |
| 3410 | ;; | 3411 | ;; |
| 3411 | 3412 | ||
| 3412 | gnu | freebsd | netbsd | openbsd ) | 3413 | gnu | openbsd ) |
| 3413 | AC_DEFINE(FIRST_PTY_LETTER, ['p']) | 3414 | AC_DEFINE(FIRST_PTY_LETTER, ['p']) |
| 3414 | ;; | 3415 | ;; |
| 3415 | 3416 | ||
| 3416 | gnu-linux | gnu-kfreebsd ) | 3417 | gnu-linux | gnu-kfreebsd | freebsd | netbsd ) |
| 3417 | dnl if HAVE_GRANTPT | 3418 | dnl if HAVE_GRANTPT |
| 3418 | if test "x$ac_cv_func_grantpt" = xyes; then | 3419 | if test "x$ac_cv_func_grantpt" = xyes; then |
| 3419 | AC_DEFINE(UNIX98_PTYS, 1, [Define if the system has Unix98 PTYs.]) | 3420 | AC_DEFINE(UNIX98_PTYS, 1, [Define if the system has Unix98 PTYs.]) |
| @@ -3421,8 +3422,12 @@ case $opsys in | |||
| 3421 | dnl Note that grantpt and unlockpt may fork. We must block SIGCHLD | 3422 | dnl Note that grantpt and unlockpt may fork. We must block SIGCHLD |
| 3422 | dnl to prevent sigchld_handler from intercepting the child's death. | 3423 | dnl to prevent sigchld_handler from intercepting the child's death. |
| 3423 | AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptyname; sigblock (sigmask (SIGCHLD)); if (grantpt (fd) == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname(fd))) { sigunblock (sigmask (SIGCHLD)); close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); sigunblock (sigmask (SIGCHLD)); }]) | 3424 | AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptyname; sigblock (sigmask (SIGCHLD)); if (grantpt (fd) == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname(fd))) { sigunblock (sigmask (SIGCHLD)); close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); sigunblock (sigmask (SIGCHLD)); }]) |
| 3425 | dnl if HAVE_POSIX_OPENPT | ||
| 3426 | if test "x$ac_cv_func_posix_openpt" = xyes; then | ||
| 3427 | AC_DEFINE(PTY_OPEN, [fd = posix_openpt (O_RDWR | O_NOCTTY)]) | ||
| 3428 | AC_DEFINE(PTY_NAME_SPRINTF, [] ) | ||
| 3424 | dnl if HAVE_GETPT | 3429 | dnl if HAVE_GETPT |
| 3425 | if test "x$ac_cv_func_getpt" = xyes; then | 3430 | elif test "x$ac_cv_func_getpt" = xyes; then |
| 3426 | AC_DEFINE(PTY_OPEN, [fd = getpt ()]) | 3431 | AC_DEFINE(PTY_OPEN, [fd = getpt ()]) |
| 3427 | AC_DEFINE(PTY_NAME_SPRINTF, []) | 3432 | AC_DEFINE(PTY_NAME_SPRINTF, []) |
| 3428 | else | 3433 | else |