--- a/newfs_hfs.tproj/makehfs.c
+++ b/newfs_hfs.tproj/makehfs.c
@@ -37,7 +37,9 @@
 #endif
 #include <sys/errno.h>
 #include <sys/stat.h>
+#ifdef __GLIBC__
 #include <sys/sysctl.h>
+#endif
 #if !LINUX
 #include <sys/vmmeter.h>
 #endif
@@ -2039,6 +2041,7 @@ getencodinghint(unsigned char *name)
         if (getvfsbyname("hfs", &vfc) < 0)
 		goto error;
 
+#ifdef __GLIBC__
         mib[0] = CTL_VFS;
         mib[1] = vfc.vfc_typenum;
         mib[2] = HFS_ENCODINGHINT;
@@ -2046,6 +2049,7 @@ getencodinghint(unsigned char *name)
 	if (sysctl(mib, 3, &hint, &buflen, name, strlen((char *)name) + 1) < 0)
  		goto error;
 	return (hint);
+#endif
 error:
 	hint = GetDefaultEncoding();
 	return (0);
@@ -2062,7 +2066,7 @@ void GenerateVolumeUUID(VolumeUUID *newV
 	clock_t uptime;
 	size_t datalen;
 	double sysloadavg[3];
-#if !LINUX
+#if !LINUX && defined(__GLIBC__)
 	int sysdata;
 	int mib[2];
 	char sysctlstring[128];
@@ -2080,7 +2084,7 @@ void GenerateVolumeUUID(VolumeUUID *newV
 		SHA1_Update(&context, &uptime, sizeof(uptime));
 		
 		/* The kernel's boot time: */
-#if !LINUX
+#if !LINUX && defined(__GLIBC__)
 		mib[0] = CTL_KERN;
 		mib[1] = KERN_BOOTTIME;
 		datalen = sizeof(sysdata);
@@ -2088,7 +2092,7 @@ void GenerateVolumeUUID(VolumeUUID *newV
 		SHA1_Update(&context, &sysdata, datalen);
 #endif
 		/* The system's host id: */
-#if !LINUX
+#if !LINUX && defined(__GLIBC__)
 		mib[0] = CTL_KERN;
 		mib[1] = KERN_HOSTID;
 		datalen = sizeof(sysdata);
@@ -2096,7 +2100,7 @@ void GenerateVolumeUUID(VolumeUUID *newV
 		SHA1_Update(&context, &sysdata, datalen);
 #endif
 		/* The system's host name: */
-#if !LINUX
+#if !LINUX && defined(__GLIBC__)
 		mib[0] = CTL_KERN;
 		mib[1] = KERN_HOSTNAME;
 		datalen = sizeof(sysctlstring);
@@ -2104,7 +2108,7 @@ void GenerateVolumeUUID(VolumeUUID *newV
 		SHA1_Update(&context, sysctlstring, datalen);
 #endif
 		/* The running kernel's OS release string: */
-#if !LINUX
+#if !LINUX && defined(__GLIBC__)
 		mib[0] = CTL_KERN;
 		mib[1] = KERN_OSRELEASE;
 		datalen = sizeof(sysctlstring);
@@ -2112,7 +2116,7 @@ void GenerateVolumeUUID(VolumeUUID *newV
 		SHA1_Update(&context, sysctlstring, datalen);
 #endif
 		/* The running kernel's version string: */
-#if !LINUX
+#if !LINUX && defined(__GLIBC__)
 		mib[0] = CTL_KERN;
 		mib[1] = KERN_VERSION;
 		datalen = sizeof(sysctlstring);
@@ -2127,7 +2131,7 @@ void GenerateVolumeUUID(VolumeUUID *newV
 #endif
 
 		/* The system's VM statistics: */
-#if !LINUX
+#if !LINUX && defined(__GLIBC__)
 		mib[0] = CTL_VM;
 		mib[1] = VM_METER;
 		datalen = sizeof(sysvmtotal);