+ return p;
+}
+#endif
+
+gchar *
+mono_path_resolve_symlinks (const char *path)
+{
+#if defined(PLATFORM_NO_SYMLINKS)
+ return mono_path_canonicalize (path);
+#else
+ gchar **split = g_strsplit (path, G_DIR_SEPARATOR_S, -1);
+ gchar *p = g_strdup ("");
+ int i;
+
+ for (i = 0; split [i] != NULL; i++) {
+ gchar *tmp = NULL;
+
+ // resolve_symlink of "" goes into canonicalize which resolves to cwd
+ if (strcmp (split [i], "") != 0) {
+ tmp = g_strdup_printf ("%s%s", p, split [i]);
+ g_free (p);
+ p = resolve_symlink (tmp);
+ g_free (tmp);
+ }
+
+ if (split [i+1] != NULL) {
+ tmp = g_strdup_printf ("%s%s", p, G_DIR_SEPARATOR_S);
+ g_free (p);
+ p = tmp;
+ }
+ }
+
+ g_strfreev (split);