aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--newlib/ChangeLog8
-rw-r--r--newlib/configure.host1
-rw-r--r--newlib/libc/stdlib/system.c5
-rw-r--r--newlib/libc/sys/arm/syscalls.c18
4 files changed, 31 insertions, 1 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index ca3667c..6d9876c 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,11 @@
+2002-04-29 Jonathan Larmour <jlarmour@redhat.com>
+
+ * libc/sys/arm/syscalls.c (_rename): New function. Just a stub.
+ (_system): New function. Ditto.
+ * libc/stdlib/system.c (_system_r): Call _system if HAVE_SYSTEM.
+ * configure.host: define HAVE_SYSTEM and HAVE_RENAME for xscale
+ targets.
+
2002-04-29 Jeff Johnston <jjohnstn@redhat.com>
* libc/include/sys/unistd.h (pread, pwrite): Added prototypes.
diff --git a/newlib/configure.host b/newlib/configure.host
index aaab9c4..8d2711c 100644
--- a/newlib/configure.host
+++ b/newlib/configure.host
@@ -519,6 +519,7 @@ case "${host}" in
syscall_dir=syscalls
newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY"
newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR"
+ newlib_cflags="${newlib_cflags} -DHAVE_SYSTEM -DHAVE_RENAME"
;;
thumb-*-pe)
syscall_dir=syscalls
diff --git a/newlib/libc/stdlib/system.c b/newlib/libc/stdlib/system.c
index 73c0540..ad22177 100644
--- a/newlib/libc/stdlib/system.c
+++ b/newlib/libc/stdlib/system.c
@@ -69,7 +69,10 @@ _system_r (ptr, s)
struct _reent *ptr;
_CONST char *s;
{
-#ifdef NO_EXEC
+#if defined(HAVE_SYSTEM)
+ return _system (s);
+ ptr = ptr;
+#elif defined(NO_EXEC)
if (s == NULL)
return 0;
errno = ENOSYS;
diff --git a/newlib/libc/sys/arm/syscalls.c b/newlib/libc/sys/arm/syscalls.c
index 3662a46..a889e92 100644
--- a/newlib/libc/sys/arm/syscalls.c
+++ b/newlib/libc/sys/arm/syscalls.c
@@ -15,6 +15,8 @@
#include "swi.h"
/* Forward prototypes. */
+int _system _PARAMS ((const char *));
+int _rename _PARAMS ((const char *, const char *));
int isatty _PARAMS ((int));
clock_t _times _PARAMS ((struct tms *));
int _gettimeofday _PARAMS ((struct timeval *, struct timezone *));
@@ -609,3 +611,19 @@ isatty (int fd)
return 1;
fd = fd;
}
+
+int
+_system (const char *s)
+{
+ if (s == NULL)
+ return 0;
+ errno = ENOSYS;
+ return -1;
+}
+
+int
+_rename (const char *, const char *)
+{
+ errno = ENOSYS;
+ return -1;
+}