From: sonic.adi at gmail.com <sonic.adi@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/2] util-linux: nommu: Add patch to use vfork in nommu arch.
Date: Mon, 11 Nov 2013 18:29:24 +0800 [thread overview]
Message-ID: <1384165765-23210-1-git-send-email-Sonic.adi@gmail.com> (raw)
From: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
---
package/util-linux/util-linux-nommu.patch | 591 ++++++++++++++++++++++++++++++
1 file changed, 591 insertions(+)
create mode 100644 package/util-linux/util-linux-nommu.patch
diff --git a/package/util-linux/util-linux-nommu.patch b/package/util-linux/util-linux-nommu.patch
new file mode 100644
index 0000000..b09783c
--- /dev/null
+++ b/package/util-linux/util-linux-nommu.patch
@@ -0,0 +1,591 @@
+diff -urN util-linux-2.23.2.old/configure.ac util-linux-2.23.2/configure.ac
+--- util-linux-2.23.2.old/configure.ac 2013-11-11 14:34:33.550893863 +0800
++++ util-linux-2.23.2/configure.ac 2013-11-11 14:44:23.762438640 +0800
+@@ -311,6 +311,7 @@
+ err \
+ errx \
+ fsync \
++ fork \
+ futimens \
+ getdomainname \
+ getdtablesize \
+diff -urN util-linux-2.23.2.old/disk-utils/fsck.c util-linux-2.23.2/disk-utils/fsck.c
+--- util-linux-2.23.2.old/disk-utils/fsck.c 2013-06-13 15:46:10.377650254 +0800
++++ util-linux-2.23.2/disk-utils/fsck.c 2013-11-11 14:48:48.383360534 +0800
+@@ -606,7 +606,11 @@
+ /* Fork and execute the correct program. */
+ if (noexecute)
+ pid = -1;
++#ifndef HAVE_FORK
++ else if ((pid = vfork()) < 0) {
++#else
+ else if ((pid = fork()) < 0) {
++#endif
+ warn(_("fork failed"));
+ free(inst);
+ return errno;
+@@ -755,10 +759,18 @@
+ * time to set up the signal handler
+ */
+ if (inst2->start_time.tv_sec < time(0) + 2) {
++#ifndef HAVE_FORK
++ if (vfork() == 0) {
++#else
+ if (fork() == 0) {
++#endif
+ sleep(1);
+ kill(inst2->pid, SIGUSR1);
++#ifndef HAVE_FORK
++ _exit(EXIT_OK);
++#else
+ exit(FSCK_EX_OK);
++#endif
+ }
+ } else
+ kill(inst2->pid, SIGUSR1);
+diff -urN util-linux-2.23.2.old/fdisks/fdiskbsdlabel.h util-linux-2.23.2/fdisks/fdiskbsdlabel.h
+--- util-linux-2.23.2.old/fdisks/fdiskbsdlabel.h 2013-07-30 16:54:15.362994206 +0800
++++ util-linux-2.23.2/fdisks/fdiskbsdlabel.h 2013-11-11 14:52:18.285623027 +0800
+@@ -50,7 +50,7 @@
+ defined (__mips__) || defined (__s390__) || defined (__sh__) || \
+ defined (__aarch64__) || defined(__xtensa__) || \
+ defined (__x86_64__) || defined (__avr32__) || defined(__cris__) || \
+- defined (__microblaze__)
++ defined(__bfin__) || defined (__microblaze__)
+ #define BSD_LABELSECTOR 1
+ #define BSD_LABELOFFSET 0
+ #elif defined (__alpha__) || defined (__powerpc__) || defined (__ia64__) || defined (__hppa__)
+diff -urN util-linux-2.23.2.old/libblkid/src/topology/dm.c util-linux-2.23.2/libblkid/src/topology/dm.c
+--- util-linux-2.23.2.old/libblkid/src/topology/dm.c 2013-06-13 15:46:10.428650690 +0800
++++ util-linux-2.23.2/libblkid/src/topology/dm.c 2013-11-11 15:13:11.316088170 +0800
+@@ -61,7 +61,11 @@
+ goto nothing;
+ }
+
++#ifndef HAVE_FORK
++ switch (vfork()) {
++#else
+ switch (fork()) {
++#endif
+ case 0:
+ {
+ char *dmargv[7], maj[16], min[16];
+@@ -74,9 +78,9 @@
+
+ /* The libblkid library could linked with setuid programs */
+ if (setgid(getgid()) < 0)
+- exit(1);
++ _exit(1);
+ if (setuid(getuid()) < 0)
+- exit(1);
++ _exit(1);
+
+ snprintf(maj, sizeof(maj), "%d", major(devno));
+ snprintf(min, sizeof(min), "%d", minor(devno));
+@@ -92,7 +96,7 @@
+ execv(dmargv[0], dmargv);
+
+ DBG(LOWPROBE, blkid_debug("Failed to execute %s: errno=%d", cmd, errno));
+- exit(1);
++ _exit(1);
+ }
+ case -1:
+ DBG(LOWPROBE, blkid_debug("Failed to forking: errno=%d", errno));
+diff -urN util-linux-2.23.2.old/libblkid/src/topology/lvm.c util-linux-2.23.2/libblkid/src/topology/lvm.c
+--- util-linux-2.23.2.old/libblkid/src/topology/lvm.c 2013-06-13 15:46:10.429650699 +0800
++++ util-linux-2.23.2/libblkid/src/topology/lvm.c 2013-11-11 15:14:07.483452404 +0800
+@@ -71,7 +71,11 @@
+ goto nothing;
+ }
+
++#ifndef HAVE_FORK
++ switch (vfork()) {
++#else
+ switch (fork()) {
++#endif
+ case 0:
+ {
+ char *lvargv[3];
+@@ -84,9 +88,9 @@
+
+ /* The libblkid library could linked with setuid programs */
+ if (setgid(getgid()) < 0)
+- exit(1);
++ _exit(1);
+ if (setuid(getuid()) < 0)
+- exit(1);
++ _exit(1);
+
+ lvargv[0] = cmd;
+ lvargv[1] = devname;
+@@ -95,7 +99,7 @@
+ execv(lvargv[0], lvargv);
+
+ DBG(LOWPROBE, blkid_debug("Failed to execute %s: errno=%d", cmd, errno));
+- exit(1);
++ _exit(1);
+ }
+ case -1:
+ DBG(LOWPROBE, blkid_debug("Failed to forking: errno=%d", errno));
+diff -urN util-linux-2.23.2.old/libmount/src/context_mount.c util-linux-2.23.2/libmount/src/context_mount.c
+--- util-linux-2.23.2.old/libmount/src/context_mount.c 2013-06-13 15:46:10.432650724 +0800
++++ util-linux-2.23.2/libmount/src/context_mount.c 2013-11-11 14:44:33.215049590 +0800
+@@ -499,17 +499,29 @@
+
+ DBG_FLUSH;
+
++#ifndef HAVE_FORK
++ switch (vfork()) {
++#else
+ switch (fork()) {
++#endif
+ case 0:
+ {
+ const char *args[12], *type;
+ int i = 0;
+
+ if (setgid(getgid()) < 0)
++#ifndef HAVE_FORK
++ _exit(EXIT_FAILURE);
++#else
+ exit(EXIT_FAILURE);
++#endif
+
+ if (setuid(getuid()) < 0)
++#ifndef HAVE_FORK
++ _exit(EXIT_FAILURE);
++#else
+ exit(EXIT_FAILURE);
++#endif
+
+ type = mnt_fs_get_fstype(cxt->fs);
+
+@@ -546,7 +558,11 @@
+ #endif
+ DBG_FLUSH;
+ execv(cxt->helper, (char * const *) args);
++#ifndef HAVE_FORK
++ _exit(EXIT_FAILURE);
++#else
+ exit(EXIT_FAILURE);
++#endif
+ }
+ default:
+ {
+@@ -1123,7 +1123,7 @@
+ if (mnt_context_is_child(cxt)) {
+ DBG(CXT, mnt_debug_h(cxt, "next-mount: child exit [rc=%d]", rc));
+ DBG_FLUSH;
+- exit(rc);
++ _exit(rc);
+ }
+ return 0;
+ }
+diff -urN util-linux-2.23.2.old/libmount/src/context_umount.c util-linux-2.23.2/libmount/src/context_umount.c
+--- util-linux-2.23.2.old/libmount/src/context_umount.c 2013-07-15 16:25:46.290049113 +0800
++++ util-linux-2.23.2/libmount/src/context_umount.c 2013-11-11 14:44:33.211047925 +0800
+@@ -441,17 +441,29 @@
+
+ DBG_FLUSH;
+
++#ifndef HAVE_FORK
++ switch (vfork()) {
++#else
+ switch (fork()) {
++#endif
+ case 0:
+ {
+ const char *args[10], *type;
+ int i = 0;
+
+ if (setgid(getgid()) < 0)
++#ifndef HAVE_FORK
++ _exit(EXIT_FAILURE);
++#else
+ exit(EXIT_FAILURE);
++#endif
+
+ if (setuid(getuid()) < 0)
++#ifndef HAVE_FORK
++ _exit(EXIT_FAILURE);
++#else
+ exit(EXIT_FAILURE);
++#endif
+
+ type = mnt_fs_get_fstype(cxt->fs);
+
+@@ -481,7 +493,11 @@
+ #endif
+ DBG_FLUSH;
+ execv(cxt->helper, (char * const *) args);
++#ifndef HAVE_FORK
++ _exit(EXIT_FAILURE);
++#else
+ exit(EXIT_FAILURE);
++#endif
+ }
+ default:
+ {
+diff -urN util-linux-2.23.2.old/login-utils/login.c util-linux-2.23.2/login-utils/login.c
+--- util-linux-2.23.2.old/login-utils/login.c 2013-07-30 16:39:26.222738397 +0800
++++ util-linux-2.23.2/login-utils/login.c 2013-11-11 15:10:11.720590863 +0800
+@@ -1079,7 +1079,11 @@
+ * We must fork before setuid() because we need to call
+ * pam_close_session() as root.
+ */
++#ifndef HAVE_FORK
++ child_pid = vfork();
++#else
+ child_pid = fork();
++#endif
+ if (child_pid < 0) {
+ /*
+ * fork() error
+@@ -1117,8 +1121,11 @@
+ sigaction(SIGHUP, &oldsa_hup, NULL); /* restore old state */
+ sigaction(SIGTERM, &oldsa_term, NULL);
+ if (got_sig)
++#ifndef HAVE_FORK
++ _exit(EXIT_SUCCESS);
++#else
+ exit(EXIT_FAILURE);
+-
++#endif
+ /*
+ * Problem: if the user's shell is a shell like ash that doesn't do
+ * setsid() or setpgrp(), then a ctrl-\, sending SIGQUIT to every
+@@ -1428,7 +1435,7 @@
+ /* discard permissions last so can't get killed and drop core */
+ if (setuid(pwd->pw_uid) < 0 && pwd->pw_uid) {
+ syslog(LOG_ALERT, _("setuid() failed"));
+- exit(EXIT_FAILURE);
++ _exit(EXIT_FAILURE);
+ }
+
+ /* wait until here to change directory! */
+@@ -1436,9 +1443,9 @@
+ warn(_("%s: change directory failed"), pwd->pw_dir);
+
+ if (!getlogindefs_bool("DEFAULT_HOME", 1))
+- exit(0);
++ _exit(0);
+ if (chdir("/"))
+- exit(EXIT_FAILURE);
++ _exit(EXIT_FAILURE);
+ pwd->pw_dir = "/";
+ printf(_("Logging in with home = \"/\".\n"));
+ }
+@@ -1473,7 +1480,7 @@
+ else
+ warn(_("no shell"));
+
+- exit(EXIT_SUCCESS);
++ _exit(EXIT_SUCCESS);
+ }
+
+
+diff -urN util-linux-2.23.2.old/login-utils/vipw.c util-linux-2.23.2/login-utils/vipw.c
+--- util-linux-2.23.2.old/login-utils/vipw.c 2013-06-13 15:46:10.445650836 +0800
++++ util-linux-2.23.2/login-utils/vipw.c 2013-11-11 14:44:33.223052968 +0800
+@@ -208,7 +208,11 @@
+ else
+ p = editor;
+
++#ifndef HAVE_FORK
++ pid = vfork();
++#else
+ pid = fork();
++#endif
+ if (pid < 0)
+ err(EXIT_FAILURE, _("fork failed"));
+
+diff -urN util-linux-2.23.2.old/sys-utils/flock.c util-linux-2.23.2/sys-utils/flock.c
+--- util-linux-2.23.2.old/sys-utils/flock.c 2013-07-30 16:39:26.338739544 +0800
++++ util-linux-2.23.2/sys-utils/flock.c 2013-11-11 14:59:17.129680082 +0800
+@@ -286,8 +286,11 @@
+ pid_t w, f;
+ /* Clear any inherited settings */
+ signal(SIGCHLD, SIG_DFL);
++#ifndef HAVE_FORK
++ f = vfork();
++#else
+ f = fork();
+-
++#endif
+ if (f < 0) {
+ err(EX_OSERR, _("fork failed"));
+ } else if (f == 0) {
+diff -urN util-linux-2.23.2.old/sys-utils/setsid.c util-linux-2.23.2/sys-utils/setsid.c
+--- util-linux-2.23.2.old/sys-utils/setsid.c 2013-07-30 16:39:26.348739643 +0800
++++ util-linux-2.23.2/sys-utils/setsid.c 2013-11-11 14:58:28.542008597 +0800
+@@ -74,7 +74,11 @@
+ usage(stderr);
+
+ if (getpgrp() == getpid()) {
++#ifndef HAVE_FORK
++ switch(vfork()){
++#else
+ switch (fork()) {
++#endif
+ case -1:
+ err(EXIT_FAILURE, _("fork"));
+ case 0:
+diff -urN util-linux-2.23.2.old/sys-utils/swapon.c util-linux-2.23.2/sys-utils/swapon.c
+--- util-linux-2.23.2.old/sys-utils/swapon.c 2013-07-30 16:39:26.348739643 +0800
++++ util-linux-2.23.2/sys-utils/swapon.c 2013-11-11 14:44:33.223052968 +0800
+@@ -261,7 +261,11 @@
+
+ warnx(_("%s: reinitializing the swap."), device);
+
++#ifndef HAVE_FORK
++ switch((pid=vfork())) {
++#else
+ switch((pid=fork())) {
++#endif
+ case -1: /* fork error */
+ warn(_("fork failed"));
+ return -1;
+diff -urN util-linux-2.23.2.old/sys-utils/switch_root.c util-linux-2.23.2/sys-utils/switch_root.c
+--- util-linux-2.23.2.old/sys-utils/switch_root.c 2013-06-13 15:46:10.544651682 +0800
++++ util-linux-2.23.2/sys-utils/switch_root.c 2013-11-11 14:54:08.311226318 +0800
+@@ -172,7 +172,11 @@
+ }
+
+ if (cfd >= 0) {
++#ifndef HAVE_FORK
++ pid = vfork();
++#else
+ pid = fork();
++#endif
+ if (pid <= 0) {
+ if (fstat(cfd, &sb) == 0) {
+ if (sb.st_dev == makedev(0, 1))
+@@ -182,7 +186,11 @@
+ }
+
+ if (pid == 0)
++#ifndef HAVE_FORK
++ _exit(EXIT_SUCCESS);
++#else
+ exit(EXIT_SUCCESS);
++#endif
+ }
+ close(cfd);
+ }
+diff -urN util-linux-2.23.2.old/term-utils/script.c util-linux-2.23.2/term-utils/script.c
+--- util-linux-2.23.2.old/term-utils/script.c 2013-06-13 15:46:10.546651699 +0800
++++ util-linux-2.23.2/term-utils/script.c 2013-11-11 14:44:33.227054773 +0800
+@@ -257,7 +257,11 @@
+ sigaddset(&block_mask, SIGCHLD);
+
+ sigprocmask(SIG_SETMASK, &block_mask, &unblock_mask);
++#ifndef HAVE_FORK
++ child = vfork();
++#else
+ child = fork();
++#endif
+ sigprocmask(SIG_SETMASK, &unblock_mask, NULL);
+
+ if (child < 0) {
+@@ -267,7 +271,11 @@
+ if (child == 0) {
+
+ sigprocmask(SIG_SETMASK, &block_mask, NULL);
++#ifndef HAVE_FORK
++ subchild = child = vfork();
++#else
+ subchild = child = fork();
++#endif
+ sigprocmask(SIG_SETMASK, &unblock_mask, NULL);
+
+ if (child < 0) {
+@@ -505,11 +513,21 @@
+
+ if(eflg) {
+ if (WIFSIGNALED(childstatus))
+- exit(WTERMSIG(childstatus) + 0x80);
++#ifndef HAVE_FORK
++ _exit(WTERMSIG(childstatus) + 0x80);
++ else
++ exit(WEXITSTATUS(childstatus));
++#else
++ _exit(WTERMSIG(childstatus) + 0x80);
+ else
+ exit(WEXITSTATUS(childstatus));
++#endif
+ }
++#ifndef HAVE_FORK
++ _exit(EXIT_SUCCESS);
++#else
+ exit(EXIT_SUCCESS);
++#endif
+ }
+
+ void
+diff -urN util-linux-2.23.2.old/term-utils/ttymsg.c util-linux-2.23.2/term-utils/ttymsg.c
+--- util-linux-2.23.2.old/term-utils/ttymsg.c 2013-07-30 16:39:26.352739682 +0800
++++ util-linux-2.23.2/term-utils/ttymsg.c 2013-11-11 14:44:33.227054773 +0800
+@@ -136,7 +136,11 @@
+ (void) close(fd);
+ _exit(EXIT_FAILURE);
+ }
++#ifndef HAVE_FORK
++ cpid = vfork();
++#else
+ cpid = fork();
++#endif
+ if (cpid < 0) {
+ if (strlen(strerror(errno)) > 1000)
+ (void) sprintf(errbuf, _("cannot fork"));
+diff -urN util-linux-2.23.2.old/text-utils/more.c util-linux-2.23.2/text-utils/more.c
+--- util-linux-2.23.2.old/text-utils/more.c 2013-07-30 16:39:26.358739741 +0800
++++ util-linux-2.23.2/text-utils/more.c 2013-11-11 14:51:17.355938643 +0800
+@@ -1659,7 +1659,11 @@
+
+ fflush(stdout);
+ reset_tty();
++#ifndef HAVE_FORK
++ for (n = 10; (id = vfork()) < 0 && n > 0; n--)
++#else
+ for (n = 10; (id = fork()) < 0 && n > 0; n--)
++#endif
+ sleep(5);
+ if (id == 0) {
+ if (!isatty(0)) {
+@@ -1691,7 +1695,11 @@
+
+ execvp(cmd, args);
+ putserr(_("exec failed\n"));
++#ifndef HAVE_FORK
++ _exit(EXIT_FAILURE);
++#else
+ exit(EXIT_FAILURE);
++#endif
+ }
+ if (id > 0) {
+ signal(SIGINT, SIG_IGN);
+diff -urN util-linux-2.23.2.old/text-utils/pg.c util-linux-2.23.2/text-utils/pg.c
+--- util-linux-2.23.2.old/text-utils/pg.c 2013-07-30 16:39:26.359739751 +0800
++++ util-linux-2.23.2/text-utils/pg.c 2013-11-11 14:44:33.231056254 +0800
+@@ -1330,7 +1330,11 @@
+ write_all(STDOUT_FILENO, "\n", 1);
+ my_sigset(SIGINT, SIG_IGN);
+ my_sigset(SIGQUIT, SIG_IGN);
++#ifndef HAVE_FORK
++ switch (cpid = vfork()) {
++#else
+ switch (cpid = fork()) {
++#endif
+ case 0:
+ {
+ const char *sh = getenv("SHELL");
+diff -urN util-linux-2.23.2.old/lib/pager.c util-linux-2.23.2/lib/pager.c
+--- util-linux-2.23.2.old/lib/pager.c 2013-07-30 16:39:26.204738219 +0800
++++ util-linux-2.23.2/lib/pager.c 2013-11-11 17:21:04.690487001 +0800
+@@ -70,7 +70,11 @@
+ }
+
+ fflush(NULL);
++#ifndef HAVE_FORK
++ cmd->pid = vfork();
++#else
+ cmd->pid = fork();
++#endif
+ if (!cmd->pid) {
+ if (need_in) {
+ dup2(fdin[0], 0);
+@@ -82,7 +86,7 @@
+
+ cmd->preexec_cb();
+ execvp(cmd->argv[0], (char *const*) cmd->argv);
+- exit(127); /* cmd not found */
++ _exit(127); /* cmd not found */
+ }
+
+ if (cmd->pid < 0) {
+diff -urN util-linux-2.23.2.old/libmount/src/context.c util-linux-2.23.2/libmount/src/context.c
+--- util-linux-2.23.2.old/libmount/src/context.c 2013-07-30 16:39:26.214738318 +0800
++++ util-linux-2.23.2/libmount/src/context.c 2013-11-11 17:22:02.246527785 +0800
+@@ -2199,8 +2199,11 @@
+
+ DBG_FLUSH;
+
++#ifndef HAVE_FORK
++ pid = vfork();
++#else
+ pid = fork();
+-
++#endif
+ switch (pid) {
+ case -1: /* error */
+ DBG(CXT, mnt_debug_h(cxt, "fork failed %m"));
+diff -urN util-linux-2.23.2.old/login-utils/su-common.c util-linux-2.23.2/login-utils/su-common.c
+--- util-linux-2.23.2.old/login-utils/su-common.c 2013-07-30 16:39:26.223738407 +0800
++++ util-linux-2.23.2/login-utils/su-common.c 2013-11-11 17:30:35.612635118 +0800
+@@ -271,7 +271,11 @@
+ else
+ _pam_session_opened = 1;
+
++#ifndef HAVE_FORK
++ child = vfork ();
++#else
+ child = fork ();
++#endif
+ if (child == (pid_t) -1)
+ {
+ cleanup_pam (PAM_ABORT);
+diff -urN util-linux-2.23.2.old/login-utils/sulogin.c util-linux-2.23.2/login-utils/sulogin.c
+--- util-linux-2.23.2.old/login-utils/sulogin.c 2013-07-30 16:39:26.225738427 +0800
++++ util-linux-2.23.2/login-utils/sulogin.c 2013-11-11 17:29:48.421644098 +0800
+@@ -912,8 +912,11 @@
+ con = list_entry(ptr, struct console, entry);
+ if (con->id >= CONMAX)
+ break;
+-
++#ifndef HAVE_FORK
++ switch ((con->pid = vfork())) {
++#else
+ switch ((con->pid = fork())) {
++#endif
+ case 0:
+ mask_signal(SIGCHLD, SIG_DFL, NULL);
+ /* fall through */
+@@ -963,7 +966,7 @@
+ /*
+ * User pressed Control-D.
+ */
+- exit(0);
++ _exit(0);
+ case -1:
+ warn(_("fork failed"));
+ /* fall through */
+diff -urN util-linux-2.23.2.old/sys-utils/eject.c util-linux-2.23.2/sys-utils/eject.c
+--- util-linux-2.23.2.old/sys-utils/eject.c 2013-07-30 16:53:48.342745064 +0800
++++ util-linux-2.23.2/sys-utils/eject.c 2013-11-11 17:31:55.427519728 +0800
+@@ -652,7 +652,11 @@
+
+ verbose(_("%s: unmounting"), name);
+
++#ifndef HAVE_FORK
++ switch (vfork()) {
++#else
+ switch (fork()) {
++#endif
+ case 0: /* child */
+ if (setgid(getgid()) < 0)
+ err(EXIT_FAILURE, _("cannot set group id"));
+diff -urN util-linux-2.23.2.old/sys-utils/nsenter.c util-linux-2.23.2/sys-utils/nsenter.c
+--- util-linux-2.23.2.old/sys-utils/nsenter.c 2013-07-30 16:39:26.345739613 +0800
++++ util-linux-2.23.2/sys-utils/nsenter.c 2013-11-11 17:33:23.038203353 +0800
+@@ -127,7 +127,11 @@
+
+ static void continue_as_child(void)
+ {
++#ifndef HAVE_FORK
++ pid_t child = vfork();
++#else
+ pid_t child = fork();
++#endif
+ int status;
+ pid_t ret;
+
--
1.8.2.3
next reply other threads:[~2013-11-11 10:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-11 10:29 sonic.adi at gmail.com [this message]
2013-11-11 10:29 ` [Buildroot] [PATCH 2/2] util-linux: flat: Add patch to avoid creating dynamic libraries sonic.adi at gmail.com
2013-11-13 23:12 ` [Buildroot] [PATCH 1/2] util-linux: nommu: Add patch to use vfork in nommu arch Arnout Vandecappelle
2013-11-13 23:23 ` Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1384165765-23210-1-git-send-email-Sonic.adi@gmail.com \
--to=sonic.adi@gmail.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.