aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-03-12 17:35:32 +0100
committerLudovic Courtès <ludo@gnu.org>2017-03-12 17:47:25 +0100
commit334c95306a298803096a0077c892d69473ad0824 (patch)
tree30467a565dd6c49dc996fb2cad64513ac4279b5f
parent239c22663ac928618028c4ec03cefc77de788e9d (diff)
downloadguix-334c95306a298803096a0077c892d69473ad0824.tar.gz
guix-334c95306a298803096a0077c892d69473ad0824.zip
syscalls: Adjust 'define-bits' to macro literal semantics of 2.2.
* guix/build/syscalls.scm (define-bits): Do not define NAMES... as top-level variables since that prevents literal matches in 2.2. Instead, determine constant values at expansion time.
-rw-r--r--guix/build/syscalls.scm8
1 files changed, 4 insertions, 4 deletions
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index b68c48a05a..58c23f2844 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -1346,12 +1346,12 @@ given an integer, returns the list of names of the constants that are or'd."
(begin
(define-syntax constructor
(syntax-rules (names ...)
+ ((_) 0)
((_ names) values) ...
- ((_ several (... ...))
- (logior (constructor several) (... ...)))))
+ ((_ first rest (... ...))
+ (logior (constructor first) rest (... ...)))))
(define (bits->symbols bits)
- (bits->symbols-body bits (names ...) (values ...)))
- (define names values) ...))))
+ (bits->symbols-body bits (names ...) (values ...)))))))
;; 'local-flags' bits from <bits/termios.h>
(define-bits local-flags