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).

This commit is contained in:
Rob Landley 2014-12-04 21:46:59 -06:00
parent 2fb85a3588
commit 50fc9ed007
4 changed files with 32 additions and 10 deletions

View File

@ -93,7 +93,6 @@ void xprintf(char *format, ...);
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);

View File

@ -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)
{

View File

@ -72,13 +72,28 @@ pid_t getsid(pid_t pid);
// 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 double FLOAT;
typedef float FLOAT;
#endif
#ifndef __uClinux__
pid_t xfork(void);
#endif
//#define strncpy(...) @@strncpyisbadmmkay@@
//#define strncat(...) @@strcatisbadmmkay@@

View File

@ -127,15 +127,6 @@ void xflush(void)
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)