Mercurial > hg > toybox
changeset 1600:ce22ad7a26c1 draft
Work with buildroot's extensively patched uClibc, and for nommu support move xfork() to portability.h and #ifdef based on __uClinux__ (which seems to be the nommu compiler define).
author | Rob Landley <rob@landley.net> |
---|---|
date | Thu, 04 Dec 2014 21:46:59 -0600 |
parents | cd97856ca52c |
children | 2dcc165f6e21 |
files | lib/lib.h lib/portability.c lib/portability.h lib/xwrap.c |
diffstat | 4 files changed, 32 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/lib.h Thu Dec 04 21:41:12 2014 -0600 +++ b/lib/lib.h Thu Dec 04 21:46:59 2014 -0600 @@ -93,7 +93,6 @@ void xputs(char *s); void xputc(char c); void xflush(void); -pid_t xfork(void); void xexec_optargs(int skip); void xexec(char **argv); pid_t xpopen_both(char **argv, int *pipes);
--- a/lib/portability.c Thu Dec 04 21:41:12 2014 -0600 +++ b/lib/portability.c Thu Dec 04 21:46:59 2014 -0600 @@ -6,6 +6,17 @@ #include "toys.h" +#if !defined(__uClinux__) +pid_t xfork(void) +{ + pid_t pid = fork(); + + if (pid < 0) perror_exit("fork"); + + return pid; +} +#endif + #if defined(__APPLE__) ssize_t getdelim(char **linep, size_t *np, int delim, FILE *stream) {
--- a/lib/portability.h Thu Dec 04 21:41:12 2014 -0600 +++ b/lib/portability.h Thu Dec 04 21:46:59 2014 -0600 @@ -72,13 +72,28 @@ // any flag newer than MS_MOVE, which was added in 2001 (linux 2.5.0.5), // eleven years earlier. +#include <sys/mount.h> +#ifndef MS_MOVE #define MS_MOVE (1<<13) +#endif +#ifndef MS_REC #define MS_REC (1<<14) +#endif +#ifndef MS_SILENT #define MS_SILENT (1<<15) +#endif +#ifndef MS_UNBINDABLE #define MS_UNBINDABLE (1<<17) +#endif +#ifndef MS_PRIVATE #define MS_PRIVATE (1<<18) +#endif +#ifndef MS_SLAVE #define MS_SLAVE (1<<19) +#endif +#ifndef MS_SHARED #define MS_SHARED (1<<20) +#endif // When building under obsolete glibc (Ubuntu 8.04-ish), hold its hand a bit. #elif __GLIBC__ == 2 && __GLIBC_MINOR__ < 10 @@ -206,3 +221,9 @@ typedef float FLOAT; #endif +#ifndef __uClinux__ +pid_t xfork(void); +#endif + +//#define strncpy(...) @@strncpyisbadmmkay@@ +//#define strncat(...) @@strcatisbadmmkay@@
--- a/lib/xwrap.c Thu Dec 04 21:41:12 2014 -0600 +++ b/lib/xwrap.c Thu Dec 04 21:46:59 2014 -0600 @@ -127,15 +127,6 @@ if (fflush(stdout) || ferror(stdout)) perror_exit("write");; } -pid_t xfork(void) -{ - pid_t pid = fork(); - - if (pid < 0) perror_exit("fork"); - - return pid; -} - // Call xexec with a chunk of optargs, starting at skip. (You can't just // call xexec() directly because toy_init() frees optargs.) void xexec_optargs(int skip)