From 908d6b7054fbe793636d75d50d4af73ad9627c3b Mon Sep 17 00:00:00 2001
From: Denis Vlasenko <vda.linux@googlemail.com>
Date: Mon, 18 Dec 2006 23:07:42 +0000
Subject: mount: add getmntent_r stub for dietlibc

---
 util-linux/mount.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/util-linux/mount.c b/util-linux/mount.c
index f8ae1df19..35665a2b5 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -31,6 +31,20 @@
 #include <rpc/pmap_clnt.h>
 
 
+#if defined(__dietlibc__)
+/* 16.12.2006, Sampo Kellomaki (sampo@iki.fi)
+ * dietlibc-0.30 does not have implementation of getmntent_r() */
+/* OTOH: why we use getmntent_r instead of getmntent? TODO... */
+struct mntent *getmntent_r(FILE* stream, struct mntent* result, char* buffer, int bufsize)
+{
+	/* *** XXX FIXME WARNING: This hack is NOT thread safe. --Sampo */
+	struct mntent* ment = getmntent(stream);
+	memcpy(result, ment, sizeof(struct mntent));
+	return result;
+}
+#endif
+
+
 // Not real flags, but we want to be able to check for this.
 enum {
 	MOUNT_USERS  = (1<<28)*ENABLE_DESKTOP,
@@ -1564,7 +1578,8 @@ int mount_main(int argc, char **argv)
 								sizeof(bb_common_bufsiz1)))
 			{
 				// Don't show rootfs. FIXME: why??
-				if (!strcmp(mtpair->mnt_fsname, "rootfs")) continue;
+				// util-linux 2.12a happily shows rootfs...
+				//if (!strcmp(mtpair->mnt_fsname, "rootfs")) continue;
 
 				if (!fstype || !strcmp(mtpair->mnt_type, fstype))
 					printf("%s on %s type %s (%s)\n", mtpair->mnt_fsname,
-- 
cgit v1.2.3