diff -ru src.orig//libxfs/xfs_ialloc.c src/libxfs/xfs_ialloc.c
--- src.orig//libxfs/xfs_ialloc.c	2014-02-07 19:00:14.510707014 +0100
+++ src/libxfs/xfs_ialloc.c	2014-02-07 19:00:40.962698333 +0100
@@ -18,7 +18,7 @@
 
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <sys/unistd.h>
+#include <unistd.h>
 #include <xfs.h>
 
 
diff -ru src.orig//include/linux.h src/include/linux.h
--- src.orig//include/linux.h	2014-02-07 19:00:14.506707015 +0100
+++ src/include/linux.h	2014-02-07 19:29:52.018123695 +0100
@@ -27,16 +27,18 @@
 #include <malloc.h>
 #include <getopt.h>
 #include <endian.h>
+#include <errno.h>
+#include <stdint.h>
 
 #ifndef __GLIBC__
-typedef __s8 __int8_t;
-typedef __u8 __uint8_t;
-typedef __s16 __int16_t;
-typedef __u16 __uint16_t;
-typedef __s32 __int32_t;
-typedef __u32 __uint32_t;
-typedef __s64 __int64_t;
-typedef __u64 __uint64_t;
+typedef int8_t __int8_t;
+typedef uint8_t __uint8_t;
+typedef int16_t __int16_t;
+typedef uint16_t __uint16_t;
+typedef int32_t __int32_t;
+typedef uint32_t __uint32_t;
+typedef int64_t __int64_t;
+typedef uint64_t __uint64_t;
 #endif
 
 static __inline__ int xfsctl(const char *path, int fd, int cmd, void *p)
diff -ru src.orig//libdisk/evms.c src/libdisk/evms.c
--- src.orig//libdisk/evms.c	2014-02-07 19:00:14.510707014 +0100
+++ src/libdisk/evms.c	2014-02-07 19:31:30.654091326 +0100
@@ -21,6 +21,7 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
+#include <sys/stat.h>
 #include <sys/sysmacros.h>
 #include <disk/volume.h>
 #include "evms.h"
diff -ru src.orig//libdisk/evms.h src/libdisk/evms.h
--- src.orig//libdisk/evms.h	2014-02-07 19:00:14.510707014 +0100
+++ src/libdisk/evms.h	2014-02-07 19:25:31.746209108 +0100
@@ -16,6 +16,8 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+#include <sys/types.h>
+
 #define EVMS_MAJOR			117
 #define EVMS_GET_VOL_STRIPE_INFO	\
 		_IOR(EVMS_MAJOR, 0xF0, struct evms_vol_stripe_info_s)
diff -ru src.orig//libdisk/fstype.h src/libdisk/fstype.h
--- src.orig//libdisk/fstype.h	2014-02-07 19:00:14.510707014 +0100
+++ src/libdisk/fstype.h	2014-02-07 19:33:53.482044455 +0100
@@ -192,7 +192,7 @@
 	char    s_dummy2[62];
 	char    s_checksum[1];
 };
-#define adfsblksize(s)	((uint) s.s_blksize[0])
+#define adfsblksize(s)	((unsigned int) s.s_blksize[0])
 
 /* found in first 4 bytes of block 1 */
 struct vxfs_super_block {
diff -ru src.orig//libdisk/xvm.h src/libdisk/xvm.h
--- src.orig//libdisk/xvm.h	2014-02-07 19:00:14.510707014 +0100
+++ src/libdisk/xvm.h	2014-02-07 19:27:55.798161835 +0100
@@ -16,6 +16,8 @@
  * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#include "linux.h"
+
 #define _DIOC_(x)        (('d'<<8) | x)
 #define DIOCGETVOLDEV    _DIOC_(36) /* subvolume devices */
 #define DIOCGETVOLSTRIPE _DIOC_(47) /* subvolume stripe info */
diff -ru src.orig//libxfs/linux.c src/libxfs/linux.c
--- src.orig//libxfs/linux.c	2014-02-07 19:00:14.510707014 +0100
+++ src/libxfs/linux.c	2014-02-07 19:18:48.398341473 +0100
@@ -21,7 +21,9 @@
 #include <mntent.h>
 #include <sys/stat.h>
 #undef ustat
+#ifdef __GLIBC__
 #include <sys/ustat.h>
+#endif
 #include <sys/mount.h>
 #include <sys/ioctl.h>
 #include <sys/sysinfo.h>
@@ -49,8 +51,16 @@
 int
 platform_check_ismounted(char *name, char *block, struct stat64 *s, int verbose)
 {
+#ifdef __GLIBC__
 	/* Pad ust; pre-2.6.28 linux copies out too much in 32bit compat mode */
 	struct ustat	ust[2];
+#else
+	int		sts = 0;
+	FILE		*f;
+	struct stat64	mst;
+	struct mntent	*mnt;
+	char		mounts[MAXPATHLEN];
+#endif
 	struct stat64	st;
 
 	if (!s) {
@@ -61,6 +71,7 @@
 		s = &st;
 	}
 
+#ifdef __GLIBC__
 	if (ustat(s->st_rdev, ust) >= 0) {
 		if (verbose)
 			fprintf(stderr,
@@ -69,6 +80,23 @@
 		return 1;
 	}
 	return 0;
+#else
+	strcpy(mounts, (!access(PROC_MOUNTED, R_OK)) ? PROC_MOUNTED : MOUNTED);
+	if ((f = setmntent(mounts, "r")) == NULL)
+		return 0;
+	while ((mnt = getmntent(f)) != NULL) {
+		if (stat64(mnt->mnt_fsname, &mst) < 0)
+			continue;
+		if ((mst.st_mode & S_IFMT) != S_IFBLK)
+			continue;
+		if (mst.st_rdev == s->st_rdev)
+			break;
+	}
+	if (mnt != NULL)
+		sts = 1;
+	endmntent(f);
+	return sts;
+#endif
 }
 
 int
