dnl GNU Guix --- Functional package management for GNU
-dnl Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+dnl Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
dnl Copyright © 2014 Mark H Weaver <mhw@netris.org>
+dnl Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
dnl
dnl This file is part of GNU Guix.
dnl
# Currently only Linux-based systems are supported, and only on some
# platforms.
case "$guix_system" in
- x86_64-linux|i686-linux|armhf-linux|mips64el-linux)
+ x86_64-linux|i686-linux|armhf-linux|aarch64-linux|mips64el-linux)
;;
*)
if test "x$guix_courageous" = "xyes"; then
done
])
-dnl GUIX_CHECK_SRFI_37
+dnl GUIX_ASSERT_SYNTAX_OBJECT_EQUAL
dnl
-dnl Check whether SRFI-37 suffers from <http://bugs.gnu.org/13176>.
-dnl This bug was fixed in Guile 2.0.9.
-AC_DEFUN([GUIX_CHECK_SRFI_37], [
- AC_CACHE_CHECK([whether (srfi srfi-37) is affected by http://bugs.gnu.org/13176],
- [ac_cv_guix_srfi_37_broken],
- [if "$GUILE" -c "(use-modules (srfi srfi-37)) \
- (sigaction SIGALRM (lambda _ (primitive-exit 1))) \
- (alarm 1) \
- (define opts (list (option '(#\I) #f #t (lambda _ #t)))) \
- (args-fold '(\"-I\") opts (lambda _ (error)) (lambda _ #f) '())"
+dnl Guile 2.2.1 was a brown-paper-bag release where 'equal?' wouldn't work
+dnl for syntax objects, which broke gexps. Unfortunately Fedora 25 provides it.
+dnl Reject it.
+AC_DEFUN([GUIX_ASSERT_SYNTAX_OBJECT_EQUAL], [
+ AC_CACHE_CHECK([whether 'equal?' works for syntax objects],
+ [ac_cv_guix_syntax_object_equal],
+ [if "$GUILE" -c '(exit (equal? (syntax x) (syntax x)))'
then
- ac_cv_guix_srfi_37_broken=no
+ ac_cv_guix_syntax_object_equal=yes
else
- ac_cv_guix_srfi_37_broken=yes
- fi])
-])
-
-dnl GUIX_CHECK_UNBUFFERED_CBIP
-dnl
-dnl Check whether 'setbvuf' works on custom binary input ports (CBIPs), as is
-dnl the case starting with Guile 2.0.10.
-AC_DEFUN([GUIX_CHECK_UNBUFFERED_CBIP], [
- AC_CACHE_CHECK([whether Guile's custom binary input ports support 'setvbuf'],
- [ac_cv_guix_cbips_support_setvbuf],
- [if "$GUILE" -c "(use-modules (rnrs io ports)) \
- (let ((p (make-custom-binary-input-port \"cbip\" pk #f #f #f))) \
- (setvbuf p _IONBF))" >&5 2>&1
- then
- ac_cv_guix_cbips_support_setvbuf=yes
- else
- ac_cv_guix_cbips_support_setvbuf=no
+ ac_cv_guix_syntax_object_equal=no
fi])
+ if test "x$ac_cv_guix_syntax_object_equal" != xyes; then
+ # This bug was present in Guile 2.2.1 only.
+ AC_MSG_ERROR(['equal?' does not work for syntax object; upgrade to Guile 2.2.2 or later.])
+ fi
])
dnl GUIX_CHECK_GUILE_SSH