Index: mono/metadata/assembly.c
--- mono/metadata/assembly.c.orig
+++ mono/metadata/assembly.c
@@ -1053,7 +1053,13 @@ mono_set_rootdir (void)
 	int  s;
 	char *str;
 
-#if defined(HAVE_READLINK)
+#if defined(HAVE_GETEXECPATH)
+	if (getexecpath(buf, sizeof(buf)) != 0) {
+		s = -1;
+	} else {
+		s = strnlen(buf, sizeof(buf));
+	}
+#elif defined(HAVE_READLINK)
 	/* Linux style */
 	s = readlink ("/proc/self/exe", buf, sizeof (buf)-1);
 #else
