syscalls: 'terminal-columns' swallows ENOSYS.

* guix/build/syscalls.scm (terminal-columns): Catch ENOSYS.
This commit is contained in:
Ludovic Courtès 2017-01-01 23:38:07 +01:00
parent 231eddc88a
commit a6e0ae4046
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 4 additions and 2 deletions

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;;
@ -1474,7 +1474,9 @@ always a positive integer."
;; ENOTTY is what we're after but 2012-and-earlier Linux versions
;; would return EINVAL instead in some cases:
;; <https://bugs.ruby-lang.org/issues/10494>.
(if (or (= errno ENOTTY) (= errno EINVAL))
;; Furthermore, some FUSE file systems like unionfs return ENOSYS for
;; that ioctl.
(if (memv errno (list ENOTTY EINVAL ENOSYS))
(fall-back)
(apply throw args))))))