This patch to libgo defines more TIOC constants, constants that are non-trivial constants on GNU/Linux systems. Boostrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline and 4.9 branch.
Ian
diff -r bbf6c7c22954 libgo/mksysinfo.sh --- a/libgo/mksysinfo.sh Wed May 07 14:42:39 2014 -0700 +++ b/libgo/mksysinfo.sh Wed May 07 14:58:48 2014 -0700 @@ -180,6 +180,18 @@ #ifdef TIOCSCTTY TIOCSCTTY_val = TIOCSCTTY, #endif +#ifdef TIOCGPTN + TIOCGPTN_val = TIOCGPTN, +#endif +#ifdef TIOCSPTLCK + TIOCSPTLCK_val = TIOCSPTLCK, +#endif +#ifdef TIOCGDEV + TIOCGDEV_val = TIOCGDEV, +#endif +#ifdef TIOCSIG + TIOCSIG_val = TIOCSIG, +#endif }; EOF @@ -778,6 +790,26 @@ echo 'const TIOCSCTTY = _TIOCSCTTY_val' >> ${OUT} fi fi +if ! grep '^const TIOCGPTN' ${OUT} >/dev/null 2>&1; then + if grep '^const _TIOCGPTN_val' ${OUT} >/dev/null 2>&1; then + echo 'const TIOCGPTN = _TIOCGPTN_val' >> ${OUT} + fi +fi +if ! grep '^const TIOCSPTLCK' ${OUT} >/dev/null 2>&1; then + if grep '^const _TIOCSPTLCK_val' ${OUT} >/dev/null 2>&1; then + echo 'const TIOCSPTLCK = _TIOCSPTLCK_val' >> ${OUT} + fi +fi +if ! grep '^const TIOCGDEV' ${OUT} >/dev/null 2>&1; then + if grep '^const _TIOCGDEV_val' ${OUT} >/dev/null 2>&1; then + echo 'const TIOCGDEV = _TIOCGDEV_val' >> ${OUT} + fi +fi +if ! grep '^const TIOCSIG' ${OUT} >/dev/null 2>&1; then + if grep '^const _TIOCSIG_val' ${OUT} >/dev/null 2>&1; then + echo 'const TIOCSIG = _TIOCSIG_val' >> ${OUT} + fi +fi # The ioctl flags for terminal control grep '^const _TC[GS]ET' gen-sysinfo.go | \