From 071d73d67e7cea60e7334f6ae96c1e8f8050a662 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Mon, 18 May 2009 17:21:34 +0000 Subject: [PATCH] termios.h contains the winsize structure we need to determine the width of a terminal. Don't try to get the width of a terminal if we don't have this header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72018 91177308-0d34-0410-b5e6-96231b3b80d8 --- autoconf/configure.ac | 4 ++-- cmake/config-ix.cmake | 1 + configure | 5 +++-- include/llvm/Config/config.h.cmake | 3 +++ include/llvm/Config/config.h.in | 3 +++ lib/System/Unix/Process.inc | 5 ++++- 6 files changed, 16 insertions(+), 5 deletions(-) diff --git a/autoconf/configure.ac b/autoconf/configure.ac index 1e04b8c246c..cb217a5143b 100644 --- a/autoconf/configure.ac +++ b/autoconf/configure.ac @@ -823,8 +823,8 @@ AC_HEADER_SYS_WAIT AC_HEADER_TIME AC_CHECK_HEADERS([dlfcn.h execinfo.h fcntl.h inttypes.h limits.h link.h]) -AC_CHECK_HEADERS([malloc.h setjmp.h signal.h stdint.h unistd.h utime.h]) -AC_CHECK_HEADERS([windows.h]) +AC_CHECK_HEADERS([malloc.h setjmp.h signal.h stdint.h termios.h unistd.h]) +AC_CHECK_HEADERS([utime.h windows.h]) AC_CHECK_HEADERS([sys/mman.h sys/param.h sys/resource.h sys/time.h]) AC_CHECK_HEADERS([sys/types.h sys/ioctl.h malloc/malloc.h mach/mach.h]) if test "$ENABLE_THREADS" -eq 1 ; then diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index 7e4016fb34c..adebb1b38f5 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -34,6 +34,7 @@ check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H) check_include_file(sys/stat.h HAVE_SYS_STAT_H) check_include_file(sys/time.h HAVE_SYS_TIME_H) check_include_file(sys/types.h HAVE_SYS_TYPES_H) +check_include_file(termios.h HAVE_TERMIOS_H) check_include_file(unistd.h HAVE_UNISTD_H) check_include_file(utime.h HAVE_UTIME_H) check_include_file(windows.h HAVE_WINDOWS_H) diff --git a/configure b/configure index 2229b358d0b..3a352775197 100755 --- a/configure +++ b/configure @@ -28963,7 +28963,7 @@ done -for ac_header in malloc.h setjmp.h signal.h stdint.h unistd.h utime.h +for ac_header in malloc.h setjmp.h signal.h stdint.h termios.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then @@ -29132,7 +29132,8 @@ fi done -for ac_header in windows.h + +for ac_header in utime.h windows.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then diff --git a/include/llvm/Config/config.h.cmake b/include/llvm/Config/config.h.cmake index 443afb17873..caabf0779ab 100644 --- a/include/llvm/Config/config.h.cmake +++ b/include/llvm/Config/config.h.cmake @@ -419,6 +419,9 @@ /* Define to 1 if the system has the type `uint64_t'. */ #undef HAVE_UINT64_T +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_TERMIOS_H ${HAVE_TERMIOS_H} + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_UNISTD_H ${HAVE_UNISTD_H} diff --git a/include/llvm/Config/config.h.in b/include/llvm/Config/config.h.in index f0522e51f1a..8ab67a4f63a 100644 --- a/include/llvm/Config/config.h.in +++ b/include/llvm/Config/config.h.in @@ -419,6 +419,9 @@ /* Define to 1 if you have that is POSIX.1 compatible. */ #undef HAVE_SYS_WAIT_H +/* Define to 1 if you have the header file. */ +#undef HAVE_TERMIOS_H + /* Define to 1 if the system has the type `uint64_t'. */ #undef HAVE_UINT64_T diff --git a/lib/System/Unix/Process.inc b/lib/System/Unix/Process.inc index b1286b7bfcd..e4f37a1ff59 100644 --- a/lib/System/Unix/Process.inc +++ b/lib/System/Unix/Process.inc @@ -27,6 +27,9 @@ #ifdef HAVE_SYS_IOCTL_H # include #endif +#ifdef HAVE_TERMIOS_H +# include +#endif //===----------------------------------------------------------------------===// //=== WARNING: Implementation here must contain only generic UNIX code that @@ -204,7 +207,7 @@ static unsigned getColumns(int FileID) { unsigned Columns = 0; -#ifdef HAVE_SYS_IOCTL_H +#if defined(HAVE_SYS_IOCTL_H) && defined(HAVE_TERMIOS_H) // Try to determine the width of the terminal. struct winsize ws; if (ioctl(FileID, TIOCGWINSZ, &ws) == 0)