summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-05-18 17:21:34 +0000
committerDouglas Gregor <dgregor@apple.com>2009-05-18 17:21:34 +0000
commit071d73d67e7cea60e7334f6ae96c1e8f8050a662 (patch)
treeaa5c6b099874bce274019ec634bca7558acacf4b
parenta537bf83eda87a0eb65c278d673e51f76b0dd98b (diff)
downloadllvm-071d73d67e7cea60e7334f6ae96c1e8f8050a662.tar.gz
llvm-071d73d67e7cea60e7334f6ae96c1e8f8050a662.tar.bz2
llvm-071d73d67e7cea60e7334f6ae96c1e8f8050a662.tar.xz
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
-rw-r--r--autoconf/configure.ac4
-rwxr-xr-xcmake/config-ix.cmake1
-rwxr-xr-xconfigure5
-rw-r--r--include/llvm/Config/config.h.cmake3
-rw-r--r--include/llvm/Config/config.h.in3
-rw-r--r--lib/System/Unix/Process.inc5
6 files changed, 16 insertions, 5 deletions
diff --git a/autoconf/configure.ac b/autoconf/configure.ac
index 1e04b8c246..cb217a5143 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 7e4016fb34..adebb1b38f 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 2229b358d0..3a35277519 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 443afb1787..caabf0779a 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 <termios.h> header file. */
+#cmakedefine HAVE_TERMIOS_H ${HAVE_TERMIOS_H}
+
/* Define to 1 if you have the <unistd.h> 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 f0522e51f1..8ab67a4f63 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 <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H
+/* Define to 1 if you have the <termios.h> 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 b1286b7bfc..e4f37a1ff5 100644
--- a/lib/System/Unix/Process.inc
+++ b/lib/System/Unix/Process.inc
@@ -27,6 +27,9 @@
#ifdef HAVE_SYS_IOCTL_H
# include <sys/ioctl.h>
#endif
+#ifdef HAVE_TERMIOS_H
+# include <termios.h>
+#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)