summary refs log tree commit diff
diff options
context:
space:
mode:
-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.
 +