[Buildroot] [PATCH] add no-mmu support for libglib-2.36.3
Aaron Wu
aaron.wu at analog.com
Mon Oct 21 17:16:03 UTC 2013
Signed-off-by: Aaron Wu <aaron.wu at analog.com>
add no-mmu support for libglib-2.36.3
---
package/libglib2/glib2.36.3_nommu.patch | 354 +++++++++++++++++++++++++++++++
1 file changed, 354 insertions(+)
create mode 100644 package/libglib2/glib2.36.3_nommu.patch
diff --git a/package/libglib2/glib2.36.3_nommu.patch b/package/libglib2/glib2.36.3_nommu.patch
new file mode 100644
index 0000000..192e8af
--- /dev/null
+++ b/package/libglib2/glib2.36.3_nommu.patch
@@ -0,0 +1,354 @@
+diff -Nur glib-2.36.3/configure.ac glib-2.36.3_new/configure.ac
+--- glib-2.36.3/configure.ac 2013-06-10 06:53:13.000000000 +0800
++++ glib-2.36.3_new/configure.ac 2013-10-21 19:25:28.806513398 +0800
+@@ -580,7 +580,7 @@
+ # Checks for library functions.
+ AC_FUNC_VPRINTF
+ AC_FUNC_ALLOCA
+-AC_CHECK_FUNCS(mmap posix_memalign memalign valloc fsync pipe2 issetugid)
++AC_CHECK_FUNCS(mmap posix_memalign memalign valloc fsync pipe2 issetugid fork)
+ AC_CHECK_FUNCS(atexit on_exit timegm gmtime_r)
+
+ AC_CACHE_CHECK([for __libc_enable_secure], glib_cv_have_libc_enable_secure,
+diff -Nur glib-2.36.3/gio/gtestdbus.c glib-2.36.3_new/gio/gtestdbus.c
+--- glib-2.36.3/gio/gtestdbus.c 2013-06-03 07:20:49.000000000 +0800
++++ glib-2.36.3_new/gio/gtestdbus.c 2013-10-21 21:23:04.350552212 +0800
+@@ -245,7 +245,11 @@
+ g_assert_not_reached ();
+ }
+
++#ifdef HAVE_FORK
+ switch (fork ())
++#else
++ switch (vfork ())
++#endif
+ {
+ case -1:
+ g_warning ("fork() failed: %m");
+diff -Nur glib-2.36.3/gio/tests/gdbus-non-socket.c glib-2.36.3_new/gio/tests/gdbus-non-socket.c
+--- glib-2.36.3/gio/tests/gdbus-non-socket.c 2013-06-10 06:03:17.000000000 +0800
++++ glib-2.36.3_new/gio/tests/gdbus-non-socket.c 2013-10-22 00:07:55.686606621 +0800
+@@ -151,7 +151,11 @@
+ g_assert (G_IS_INPUT_STREAM (g_io_stream_get_input_stream (streams[1])));
+ g_assert (G_IS_OUTPUT_STREAM (g_io_stream_get_output_stream (streams[1])));
+
++#ifdef HAVE_FORK
+ switch ((first_child = fork ()))
++#else
++ switch ((first_child = vfork ()))
++#endif
+ {
+ case -1:
+ g_assert_not_reached ();
+@@ -271,7 +275,11 @@
+
+ g_object_unref (connection);
+ g_main_loop_unref (loop);
++#ifdef HAVE_FORK
+ exit (0);
++#else
++ _exit (0);
++#endif
+ }
+
+ #else /* G_OS_UNIX */
+diff -Nur glib-2.36.3/gio/tests/socket.c glib-2.36.3_new/gio/tests/socket.c
+--- glib-2.36.3/gio/tests/socket.c 2013-06-03 07:20:53.000000000 +0800
++++ glib-2.36.3_new/gio/tests/socket.c 2013-10-21 23:54:59.222602354 +0800
+@@ -756,7 +756,11 @@
+ status = socketpair (PF_UNIX, SOCK_STREAM, 0, sv);
+ g_assert_cmpint (status, ==, 0);
+
++#ifdef HAVE_FORK
+ pid = fork ();
++#else
++ pid = vfork ();
++#endif
+ g_assert_cmpint (pid, >=, 0);
+
+ /* Child: close its copy of the write end of the pipe, receive it
+@@ -787,7 +791,11 @@
+ len = write (fd, TEST_DATA, sizeof (TEST_DATA));
+ while (len == -1 && errno == EINTR);
+ g_assert_cmpint (len, ==, sizeof (TEST_DATA));
++#ifdef HAVE_FORK
+ exit (0);
++#else
++ _exit (0);
++#endif
+ }
+ else
+ {
+diff -Nur glib-2.36.3/glib/gbacktrace.c glib-2.36.3_new/glib/gbacktrace.c
+--- glib-2.36.3/glib/gbacktrace.c 2013-06-03 07:20:49.000000000 +0800
++++ glib-2.36.3_new/glib/gbacktrace.c 2013-10-21 20:55:48.758543214 +0800
+@@ -242,7 +242,11 @@
+ args[1] = (gchar*) prg_name;
+ args[2] = buf;
+
++#ifdef HAVE_FORK
+ pid = fork ();
++#else
++ pid = vfork ();
++#endif
+ if (pid == 0)
+ {
+ stack_trace (args);
+@@ -295,7 +299,11 @@
+ _exit (0);
+ }
+
++#ifdef HAVE_FORK
+ pid = fork ();
++#else
++ pid = vfork ();
++#endif
+ if (pid == 0)
+ {
+ close (0); dup (in_fd[0]); /* set the stdin to the in pipe */
+diff -Nur glib-2.36.3/glib/gspawn.c glib-2.36.3_new/glib/gspawn.c
+--- glib-2.36.3/glib/gspawn.c 2013-06-10 06:03:18.000000000 +0800
++++ glib-2.36.3_new/glib/gspawn.c 2013-10-21 19:39:13.410517935 +0800
+@@ -1332,7 +1332,11 @@
+ if (standard_error && !make_pipe (stderr_pipe, error))
+ goto cleanup_and_fail;
+
++#ifdef HAVE_FORK
+ pid = fork ();
++#else
++ pid = vfork ();
++#endif
+
+ if (pid < 0)
+ {
+@@ -1382,7 +1386,11 @@
+ */
+ GPid grandchild_pid;
+
++#ifdef HAVE_FORK
+ grandchild_pid = fork ();
++#else
++ grandchild_pid = vfork ();
++#endif
+
+ if (grandchild_pid < 0)
+ {
+diff -Nur glib-2.36.3/glib/gtestutils.c glib-2.36.3_new/glib/gtestutils.c
+--- glib-2.36.3/glib/gtestutils.c 2013-06-10 06:03:18.000000000 +0800
++++ glib-2.36.3_new/glib/gtestutils.c 2013-10-21 19:40:56.330518502 +0800
+@@ -2204,7 +2204,11 @@
+ if (pipe (stdout_pipe) < 0 || pipe (stderr_pipe) < 0 || pipe (stdtst_pipe) < 0)
+ g_error ("failed to create pipes to fork test program: %s", g_strerror (errno));
+ signal (SIGCHLD, SIG_DFL);
++#ifdef HAVE_FORK
+ test_trap_last_pid = fork ();
++#else
++ test_trap_last_pid = vfork ();
++#endif
+ if (test_trap_last_pid < 0)
+ g_error ("failed to fork test program: %s", g_strerror (errno));
+ if (test_trap_last_pid == 0) /* child */
+diff -Nur glib-2.36.3/tests/child-test.c glib-2.36.3_new/tests/child-test.c
+--- glib-2.36.3/tests/child-test.c 2013-06-10 06:03:18.000000000 +0800
++++ glib-2.36.3_new/tests/child-test.c 2013-10-21 20:56:50.358543552 +0800
+@@ -77,7 +77,11 @@
+
+ return pid;
+ #else
++#ifdef HAVE_FORK
+ pid = fork ();
++#else
++ pid = vfork ();
++#endif
+ if (pid < 0)
+ exit (1);
+
+diff -Nur glib-2.36.3/tests/timeloop-basic.c glib-2.36.3_new/tests/timeloop-basic.c
+--- glib-2.36.3/tests/timeloop-basic.c 2013-06-03 07:20:49.000000000 +0800
++++ glib-2.36.3_new/tests/timeloop-basic.c 2013-10-22 00:04:26.130605473 +0800
+@@ -26,7 +26,11 @@
+ if (pipe(fds) < 0)
+ {
+ fprintf (stderr, "Cannot create pipe %s\n", strerror (errno));
++#ifdef HAVE_FORK
+ exit (1);
++#else
++ _exit (1);
++#endif
+ }
+ }
+
+@@ -89,7 +93,11 @@
+ val = 0;
+ write_all (out_fd, (char *)&val, sizeof (val));
+
++#ifdef HAVE_FORK
+ exit (0);
++#else
++ _exit (0);
++#endif
+ }
+
+ int
+@@ -100,7 +108,11 @@
+ if (!read_all (source, (char *)&val, sizeof(val)))
+ {
+ fprintf (stderr,"Unexpected EOF\n");
++#ifdef HAVE_FORK
+ exit (1);
++#else
++ _exit (1);
++#endif
+ }
+
+ if (val)
+@@ -128,7 +140,11 @@
+ my_pipe (in_fds);
+ my_pipe (out_fds);
+
++#ifdef HAVE_FORK
+ pid = fork ();
++#else
++ pid = vfork ();
++#endif
+
+ if (pid > 0) /* Parent */
+ {
+@@ -151,7 +167,11 @@
+ else /* Error */
+ {
+ fprintf (stderr,"Cannot fork: %s\n", strerror (errno));
++#ifdef HAVE_FORK
+ exit (1);
++#else
++ _exit (1);
++#endif
+ }
+ }
+
+diff -Nur glib-2.36.3/tests/timeloop.c glib-2.36.3_new/tests/timeloop.c
+--- glib-2.36.3/tests/timeloop.c 2013-06-03 07:20:49.000000000 +0800
++++ glib-2.36.3_new/tests/timeloop.c 2013-10-22 00:00:00.290604006 +0800
+@@ -23,7 +23,11 @@
+ if (pipe(fds) < 0)
+ {
+ fprintf (stderr, "Cannot create pipe %s\n", g_strerror (errno));
++#ifdef HAVE_FORK
+ exit (1);
++#else
++ _exit (1);
++#endif
+ }
+
+ channels[0] = g_io_channel_unix_new (fds[0]);
+@@ -94,7 +98,11 @@
+ write_all (out_channel, (char *)&val, sizeof (val));
+ g_timer_destroy (timer);
+
++#ifdef HAVE_FORK
+ exit (0);
++#else
++ _exit (0);
++#endif
+ }
+
+ static gboolean
+@@ -108,7 +116,11 @@
+ if (!read_all (source, (char *)&val, sizeof(val)))
+ {
+ fprintf (stderr, "Unexpected EOF\n");
++#ifdef HAVE_FORK
+ exit (1);
++#else
++ _exit (1);
++#endif
+ }
+
+ if (val)
+@@ -143,7 +155,11 @@
+ io_pipe (in_channels);
+ io_pipe (out_channels);
+
++#ifdef HAVE_FORK
+ pid = fork ();
++#else
++ pid = vfork ();
++#endif
+
+ if (pid > 0) /* Parent */
+ {
+@@ -165,7 +181,11 @@
+ else /* Error */
+ {
+ fprintf (stderr, "Cannot fork: %s\n", g_strerror (errno));
++#ifdef HAVE_FORK
+ exit (1);
++#else
++ _exit (1);
++#endif
+ }
+ }
+
+diff -Nur glib-2.36.3/tests/timeloop-closure.c glib-2.36.3_new/tests/timeloop-closure.c
+--- glib-2.36.3/tests/timeloop-closure.c 2013-06-10 06:03:18.000000000 +0800
++++ glib-2.36.3_new/tests/timeloop-closure.c 2013-10-22 00:06:19.054606092 +0800
+@@ -24,7 +24,11 @@
+ if (pipe(fds) < 0)
+ {
+ fprintf (stderr, "Cannot create pipe %s\n", g_strerror (errno));
++#ifdef HAVE_FORK
+ exit (1);
++#else
++ _exit (1);
++#endif
+ }
+
+ channels[0] = g_io_channel_unix_new (fds[0]);
+@@ -95,7 +99,11 @@
+ write_all (out_channel, (char *)&val, sizeof (val));
+ g_timer_destroy (timer);
+
++#ifdef HAVE_FORK
+ exit (0);
++#else
++ _exit (0);
++#endif
+ }
+
+ static gboolean
+@@ -109,7 +117,11 @@
+ if (!read_all (source, (char *)&val, sizeof(val)))
+ {
+ fprintf (stderr, "Unexpected EOF\n");
++#ifdef HAVE_FORK
+ exit (1);
++#else
++ _exit (1);
++#endif
+ }
+
+ if (val)
+@@ -145,7 +157,11 @@
+ io_pipe (in_channels);
+ io_pipe (out_channels);
+
++#ifdef HAVE_FORK
+ pid = fork ();
++#else
++ pid = vfork ();
++#endif
+
+ if (pid > 0) /* Parent */
+ {
+@@ -169,7 +185,11 @@
+ else /* Error */
+ {
+ fprintf (stderr, "Cannot fork: %s\n", g_strerror (errno));
++#ifdef HAVE_FORK
+ exit (1);
++#else
++ _exit (1);
++#endif
+ }
+ }
+
--
1.7.9.5
More information about the buildroot
mailing list