Don't use fork() on noMMU platforms

[Gustavo: update patch for 1.0.28]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Index: alsa-lib-1.0.26/configure.ac
===================================================================
--- alsa-lib-1.0.26.orig/configure.ac	2012-09-06 10:55:14.000000000 +0200
+++ alsa-lib-1.0.26/configure.ac	2013-03-09 16:22:08.000000000 +0100
@@ -66,6 +66,8 @@
 AM_CONDITIONAL(ALSA_HSEARCH_R, [test "x$HAVE_HSEARCH_R" != xyes])
 AC_CHECK_FUNCS([uselocale])
 
+AC_CHECK_FUNC([fork])
+
 SAVE_LIBRARY_VERSION
 AC_SUBST(LIBTOOL_VERSION_INFO)
 
Index: alsa-lib-1.0.26/src/pcm/pcm_direct.c
===================================================================
--- alsa-lib-1.0.26.orig/src/pcm/pcm_direct.c	2012-09-06 10:55:14.000000000 +0200
+++ alsa-lib-1.0.26/src/pcm/pcm_direct.c	2013-03-09 16:22:51.000000000 +0100
@@ -424,13 +424,21 @@
 		close(dmix->server_fd);
 		return ret;
 	}
-	
+
+#ifdef HAVE_FORK
 	ret = fork();
+#else
+	ret = vfork();
+#endif
 	if (ret < 0) {
 		close(dmix->server_fd);
 		return ret;
 	} else if (ret == 0) {
+#ifdef HAVE_FORK
 		ret = fork();
+#else
+		ret = vfork();
+#endif
 		if (ret == 0)
 			server_job(dmix);
 		_exit(EXIT_SUCCESS);
