This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: isatty()
Jeff Johnston a wrote :
_isatty is not one of the fundamental syscalls required by newlib.
Remember that newlib's historical origin was to support embedded
platforms and it only required a small set of syscalls to support the
ANSI C plus miscellaneous functions. There is a rough isatty()
implementation in libc/posix that uses fstat, not _isatty.
Platforms that have wanted it have typically just done so directly in
their libgloss implementation or libc/sys (used before libgloss was
created) or they use the libc/posix implementation or they use the
default libgloss/isatty.c version (always returns 1) or they let
libnosys resolve it (always returns 0) just to allow tests to link/run.
I understand.
But there are 2 problems :
1) isatty() is currently fundamental, because without it, a simple
printf() cannot link !
isatty() is used at the bottom of libc/stdio/makebuf.c
2) The isatty() implementation in libgloss/libnosys/isatty.c uses the
wrong errno. It should only #include <errno.h>, without #undef errno,
extern int errno.
--
Vincent Rivière