summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/guile-linux-syscalls.patch
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-07-24 00:55:08 +0200
committerLudovic Courtès <ludo@gnu.org>2015-07-24 01:19:57 +0200
commit7e96eb1a0803d8e4efb7d4147a446ed78a429206 (patch)
tree7b6f2486d868d5994fc70483301e9232dcc79bb8 /gnu/packages/patches/guile-linux-syscalls.patch
parent7c0a91049b8eb0eaae301af673161d839f03f491 (diff)
gnu: guile-static: Add 'umount' procedure.
* gnu/packages/patches/guile-linux-syscalls.patch: Add 'umount' subr.
Diffstat (limited to 'gnu/packages/patches/guile-linux-syscalls.patch')
-rw-r--r--gnu/packages/patches/guile-linux-syscalls.patch28
1 files changed, 27 insertions, 1 deletions
diff --git a/gnu/packages/patches/guile-linux-syscalls.patch b/gnu/packages/patches/guile-linux-syscalls.patch
index ac74d021d7..69970a3e60 100644
--- a/gnu/packages/patches/guile-linux-syscalls.patch
+++ b/gnu/packages/patches/guile-linux-syscalls.patch
@@ -5,7 +5,7 @@ a statically-linked Guile in an initrd that doesn't have libc.so around.
--- guile-2.0.11/libguile/posix.c.orig 2014-02-28 15:01:27.000000000 -0500
+++ guile-2.0.11/libguile/posix.c 2015-06-21 14:28:23.624251038 -0400
-@@ -2245,6 +2245,269 @@
+@@ -2245,6 +2245,295 @@
}
#endif
@@ -58,6 +58,32 @@ a statically-linked Guile in an initrd that doesn't have libc.so around.
+}
+#undef FUNC_NAME
+
++SCM_DEFINE (scm_umount, "umount", 1, 0, 0,
++ (SCM target),
++ "Unmount the file system on @var{target}.")
++#define FUNC_NAME s_scm_umount
++{
++ int err;
++ char *c_target;
++
++ c_target = scm_to_locale_string (target);
++
++ err = umount (c_target);
++ if (err != 0)
++ err = errno;
++
++ free (c_target);
++
++ if (err != 0)
++ {
++ errno = err;
++ SCM_SYSERROR;
++ }
++
++ return SCM_UNSPECIFIED;
++}
++#undef FUNC_NAME
++
+/* Linux's module installation syscall. See `kernel/module.c' in Linux;
+ the function itself is part of the GNU libc.
+