From dd1628807a800c86b45495218cb19260bae8a846 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 13 Jan 2012 23:17:20 +0000 Subject: mksysinfo: Pick up TIOCGWINSZ even if expression is too complex. From-SVN: r183169 --- libgo/mksysinfo.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'libgo') diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh index f389795..2d3aa8f 100755 --- a/libgo/mksysinfo.sh +++ b/libgo/mksysinfo.sh @@ -89,6 +89,15 @@ cat > sysinfo.c < #endif + +/* Constants that may only be defined as expressions on some systems, + expressions too complex for -fdump-go-spec to handle. These are + handled specially below. */ +enum { +#ifdef TIOCGWINSZ + TIOCGWINSZ_val = TIOCGWINSZ, +#endif +}; EOF ${CC} -fdump-go-spec=gen-sysinfo.go -std=gnu99 -S -o sysinfo.s sysinfo.c @@ -524,7 +533,14 @@ grep '^type _passwd ' gen-sysinfo.go | \ # The ioctl flags for the controlling TTY. grep '^const _TIOC' gen-sysinfo.go | \ + grep -v '_val =' | \ sed -e 's/^\(const \)_\(TIOC[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} +# We need TIOCGWINSZ. +if ! grep '^const TIOCGWINSZ' ${OUT} >/dev/null 2>&1; then + if grep '^const _TIOCGWINSZ_val' ${OUT} >/dev/null 2>&1; then + echo 'const TIOCGWINSZ = TIOCGWINSZ_val' >> ${OUT} + fi +fi # The ioctl flags for terminal control grep '^const _TC[GS]ET' gen-sysinfo.go | \ -- cgit v1.1