~ruther/guix-local

7e96eb1a0803d8e4efb7d4147a446ed78a429206 — Ludovic Courtès 10 years ago 7c0a910
gnu: guile-static: Add 'umount' procedure.

* gnu/packages/patches/guile-linux-syscalls.patch: Add 'umount' subr.
1 files changed, 27 insertions(+), 1 deletions(-)

M gnu/packages/patches/guile-linux-syscalls.patch
M gnu/packages/patches/guile-linux-syscalls.patch => gnu/packages/patches/guile-linux-syscalls.patch +27 -1
@@ 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.
+