diff options
-rw-r--r-- | newlib/ChangeLog | 20 | ||||
-rw-r--r-- | newlib/Makefile.am | 1 | ||||
-rw-r--r-- | newlib/addon/newlib/libc/sys/hurd/Makefile.am | 1 | ||||
-rw-r--r-- | newlib/addon/newlib/libc/sys/hurd/isatty.c | 7 | ||||
-rw-r--r-- | newlib/addon/newlib/libc/sys/hurd/malloc.c | 9 | ||||
-rw-r--r-- | newlib/addon/newlib/libc/sys/hurd/sys/config.h | 3 | ||||
-rw-r--r-- | newlib/addon/newlib/libc/sys/hurd/writer.c | 11 |
7 files changed, 52 insertions, 0 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 29a71cf..b039cc6 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,5 +1,25 @@ 2008-01-23 Neal H. Walfield <neal@gnu.org> + * addon/newlib/libc/sys/hurd/isatty.c: New file. + * addon/newlib/libc/sys/hurd/Makefile.am (GENERAL_SOURCES): Add + isatty.c. + * Makefile.am (addon): Add newlib/libc/sys/hurd/isatty.c. + + * addon/newlib/libc/sys/hurd/sys/config.h (_LARGEFILE64_SOURCE): + Don't define. + (__LARGE64_FILES): Likewise. + + * addon/newlib/libc/sys/hurd/malloc.c: Include <sys/lock.h> + (MLOCK_T): Define. + (INITIAL_LOCK): Likewise. + (ACQUIRE_LOCK): Likewise. + (RELEASE_LOCK): Likewise. + + * addon/newlib/libc/sys/hurd/writer.c: Include <hurd/rm.h>. + (_write_r): If FD is 1 or 2, then send the buffer to the console. + +2008-01-23 Neal H. Walfield <neal@gnu.org> + * addon/newlib/libc/sys/hurd/malloc.c (HAVE_MREMAP): Define to 0. 2008-01-23 Neal H. Walfield <neal@gnu.org> diff --git a/newlib/Makefile.am b/newlib/Makefile.am index 425a001..9268ea9 100644 --- a/newlib/Makefile.am +++ b/newlib/Makefile.am @@ -49,6 +49,7 @@ addon = newlib/libc/sys/hurd/configure.ac \ newlib/libc/sys/hurd/timesr.c \ newlib/libc/sys/hurd/unlinkr.c \ newlib/libc/sys/hurd/writer.c \ + newlib/libc/sys/hurd/isatty.c \ newlib/libc/sys/hurd/getreent.c \ newlib/libc/sys/hurd/malloc.c \ newlib/libc/sys/hurd/mallocr.c \ diff --git a/newlib/addon/newlib/libc/sys/hurd/Makefile.am b/newlib/addon/newlib/libc/sys/hurd/Makefile.am index 0c967d7..57fe11d 100644 --- a/newlib/addon/newlib/libc/sys/hurd/Makefile.am +++ b/newlib/addon/newlib/libc/sys/hurd/Makefile.am @@ -45,6 +45,7 @@ GENERAL_SOURCES = \ unlinkr.c \ writer.c \ getreent.c \ + isatty.c \ lock.c \ malloc.c \ mallocr.c \ diff --git a/newlib/addon/newlib/libc/sys/hurd/isatty.c b/newlib/addon/newlib/libc/sys/hurd/isatty.c new file mode 100644 index 0000000..f496f3f --- /dev/null +++ b/newlib/addon/newlib/libc/sys/hurd/isatty.c @@ -0,0 +1,7 @@ +int +isatty (int fd) +{ + /* XXX: Assume the FD is valid. The only valid FDs are for the + console, which is a terminal. */ + return 1; +} diff --git a/newlib/addon/newlib/libc/sys/hurd/malloc.c b/newlib/addon/newlib/libc/sys/hurd/malloc.c index c27e107..025e0e9 100644 --- a/newlib/addon/newlib/libc/sys/hurd/malloc.c +++ b/newlib/addon/newlib/libc/sys/hurd/malloc.c @@ -1,5 +1,14 @@ /* Enable locking. */ #define USE_LOCKS 1 + +/* Our locking functions. */ +#include <sys/lock.h> + +#define MLOCK_T _LOCK_T +#define INITIAL_LOCK(lock) __lock_init(*lock) +#define ACQUIRE_LOCK(lock) (__lock_acquire(*lock), 0) +#define RELEASE_LOCK(lock) (__lock_release(*lock), 0) + /* Don't use sbrk. */ #define HAVE_MORECORE 0 /* mmap allocates cleared memory. */ diff --git a/newlib/addon/newlib/libc/sys/hurd/sys/config.h b/newlib/addon/newlib/libc/sys/hurd/sys/config.h index bdec7bd..65eebce 100644 --- a/newlib/addon/newlib/libc/sys/hurd/sys/config.h +++ b/newlib/addon/newlib/libc/sys/hurd/sys/config.h @@ -7,9 +7,12 @@ #define HAVE_GETDATE #define _HAVE_SYSTYPES #define _READ_WRITE_RETURN_TYPE _ssize_t +/* We do not currently support large files. */ +#if 0 #define __LARGE64_FILES 1 /* we use some glibc header files so turn on glibc large file feature */ #define _LARGEFILE64_SOURCE 1 +#endif /* This block should be kept in sync with GCC's limits.h. The point of having these definitions here is to not include limits.h, which diff --git a/newlib/addon/newlib/libc/sys/hurd/writer.c b/newlib/addon/newlib/libc/sys/hurd/writer.c index 1d345b6..120ac9f 100644 --- a/newlib/addon/newlib/libc/sys/hurd/writer.c +++ b/newlib/addon/newlib/libc/sys/hurd/writer.c @@ -2,6 +2,8 @@ #include <unistd.h> #include <errno.h> +#include <hurd/rm.h> + _ssize_t _DEFUN (_write_r, (ptr, fd, buf, cnt), struct _reent *ptr _AND @@ -9,6 +11,15 @@ _DEFUN (_write_r, (ptr, fd, buf, cnt), _CONST _PTR buf _AND size_t cnt) { + if (fd == 1 || fd == 2) + { + int i; + for (i = 0; i < cnt; i ++) + rm_putchar (((char *) buf)[i]); + + return cnt; + } + errno = EOPNOTSUPP; return -1; } |