From: Ian Lance Taylor Date: Fri, 13 Jan 2012 23:17:20 +0000 (+0000) Subject: mksysinfo: Pick up TIOCGWINSZ even if expression is too complex. X-Git-Tag: releases/gcc-4.7.0~1001 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dd1628807a800c86b45495218cb19260bae8a846;p=thirdparty%2Fgcc.git mksysinfo: Pick up TIOCGWINSZ even if expression is too complex. From-SVN: r183169 --- diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh index f3897955fbde..2d3aa8f62055 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 | \