From a6c1ed4716cf02626ea035beb6dd4a921642ba80 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 3 Jan 2018 17:39:24 -0700 Subject: Use libc from agbcc instead of standalone newlib\nYou must have AGBCC commit 80d029caec189587f8b9294b6c8a5a489b8f5f88 in order to compile pmd_red.gba --- newlib/libc/stdlib/system.c | 179 -------------------------------------------- 1 file changed, 179 deletions(-) delete mode 100644 newlib/libc/stdlib/system.c (limited to 'newlib/libc/stdlib/system.c') diff --git a/newlib/libc/stdlib/system.c b/newlib/libc/stdlib/system.c deleted file mode 100644 index 4584ae1..0000000 --- a/newlib/libc/stdlib/system.c +++ /dev/null @@ -1,179 +0,0 @@ -/* -FUNCTION -<>---execute command string - -INDEX - system -INDEX - _system_r - -ANSI_SYNOPSIS - #include - int system(char *<[s]>); - - int _system_r(void *<[reent]>, char *<[s]>); - -TRAD_SYNOPSIS - #include - int system(<[s]>) - char *<[s]>; - - int _system_r(<[reent]>, <[s]>) - char *<[reent]>; - char *<[s]>; - -DESCRIPTION - -Use <> to pass a command string <<*<[s]>>> to <> on -your system, and wait for it to finish executing. - -Use `<>' to test whether your system has <> -available. - -The alternate function <<_system_r>> is a reentrant version. The -extra argument <[reent]> is a pointer to a reentrancy structure. - -RETURNS -<> returns a non-zero value if <> is available, and -<<0>> if it is not. - -With a command argument, the result of <> is the exit status -returned by <>. - -PORTABILITY -ANSI C requires <>, but leaves the nature and effects of a -command processor undefined. ANSI C does, however, specify that -<> return zero or nonzero to report on the existence of -a command processor. - -POSIX.2 requires <>, and requires that it invoke a <>. -Where <> is found is left unspecified. - -Supporting OS subroutines required: <<_exit>>, <<_execve>>, <<_fork_r>>, -<<_wait_r>>. -*/ - -#include -#include -#include -#include <_syslist.h> - -#if defined (unix) || defined (__CYGWIN32__) -static int do_system (); -#endif - -int -_system_r (ptr, s) - struct _reent *ptr; - _CONST char *s; -{ -#ifdef NO_EXEC - if (s == NULL) - return 0; - errno = ENOSYS; - return -1; -#else - - /* ??? How to handle (s == NULL) here is not exactly clear. - If _fork_r fails, that's not really a justification for returning 0. - For now we always return 0 and leave it to each target to explicitly - handle otherwise (this can always be relaxed in the future). */ - -#if defined (unix) || defined (__CYGWIN32__) - if (s == NULL) - return 1; - return do_system (ptr, s); -#else - if (s == NULL) - return 0; - errno = ENOSYS; - return -1; -#endif - -#endif -} - -#ifndef _REENT_ONLY - -int -system (s) - _CONST char *s; -{ - return _system_r (_REENT, s); -} - -#endif - -#if defined (unix) && !defined (__CYGWIN32__) -static int -do_system (ptr, s) - struct _reent *ptr; - _CONST char *s; -{ - char *argv[4]; - int pid, status; - extern char *environ[]; - - argv[0] = "sh"; - argv[1] = "-c"; - argv[2] = (char *) s; - argv[3] = NULL; - - if ((pid = _fork_r (ptr)) == 0) - { - _execve ("/bin/sh", argv, environ); - exit (100); - } - else if (pid == -1) - return -1; - else - { - int rc = _wait_r (ptr, &status); - if (rc == -1) - return -1; - status = (status >> 8) & 0xff; - return status; - } -} -#endif - -#if defined (__CYGWIN32__) -static int -do_system (ptr, s) - struct _reent *ptr; - _CONST char *s; -{ - char *argv[4]; - int pid, status; - extern char *environ[]; - - argv[0] = "sh"; - argv[1] = "-c"; - argv[2] = (char *) s; - argv[3] = NULL; - - if ((pid = vfork ()) == 0) - { - /* ??? It's not clear what's the right path to take (pun intended :-). - There won't be an "sh" in any fixed location so we need each user - to be able to say where to find "sh". That suggests using an - environment variable, but after a few more such situations we may - have too many of them. */ - char *sh = getenv ("SH_PATH"); - if (sh == NULL) - sh = "/bin/sh"; - _execve (sh, argv, environ); - exit (100); - } - else if (pid == -1) - return -1; - else - { - int rc = _wait (&status); - if (rc == -1) - return -1; - status = (status >> 8) & 0xff; - return status; - } -} -#endif -- cgit v1.2.3