summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorRobert de Bath <rdebath@poboxes.com>1997-05-09 19:36:29 +0200
committerLubomir Rintel <lkundrak@v3.sk>2013-10-23 23:39:48 +0200
commite63c244cb22bf48ca1d2695784a072269d19ea96 (patch)
tree45b9018259f43db629b27395783cf48e55a85eee /libc
parent4c36e9a0c125ccfff37aa440dab2cf58c4152fff (diff)
downloaddev86-e63c244cb22bf48ca1d2695784a072269d19ea96.tar.gz
Import Dev86src-0.12.0.tar.gzv0.12.0
Diffstat (limited to 'libc')
-rw-r--r--libc/Config_sh2
-rw-r--r--libc/Makefile4
-rw-r--r--libc/bcc/Makefile7
-rw-r--r--libc/bios/Makefile4
-rw-r--r--libc/error/Makefile2
-rw-r--r--libc/getent/Makefile2
-rw-r--r--libc/gtermcap/Makefile2
-rw-r--r--libc/i386fp/Makefile2
-rw-r--r--libc/i386sys/Makefile5
-rw-r--r--libc/i386sys/mksyscall3
-rw-r--r--libc/malloc1/Makefile3
-rw-r--r--libc/malloc2/Makefile3
-rw-r--r--libc/misc/Makefile7
-rw-r--r--libc/msdos/Makefile4
-rw-r--r--libc/regexp/Makefile4
-rw-r--r--libc/stdio2/Makefile5
-rw-r--r--libc/stdio2/stdio.c51
-rw-r--r--libc/string/Makefile3
-rw-r--r--libc/syscall/Makefile6
-rw-r--r--libc/syscall/mksyscall3
-rw-r--r--libc/termios/Makefile3
-rw-r--r--libc/time/Makefile2
22 files changed, 56 insertions, 71 deletions
diff --git a/libc/Config_sh b/libc/Config_sh
index 6c93784..4beff3e 100644
--- a/libc/Config_sh
+++ b/libc/Config_sh
@@ -30,7 +30,7 @@ main()
CHANGED=0
RUNNING=1
- [ "$DIST" != "" ] && {
+ [ "$DIST" != "" -o ! -t 1 -o ! -t 0 ] && {
RUNNING=0
echo 'Using default configuration'
}
diff --git a/libc/Makefile b/libc/Makefile
index 83aded9..593eaab 100644
--- a/libc/Makefile
+++ b/libc/Makefile
@@ -10,8 +10,8 @@ TOP=$(TOPDIR)/libc
endif
VERMAJOR=0
-VERMINOR=0
-VERPATCH=11
+VERMINOR=12
+VERPATCH=0
VER=$(VERMAJOR).$(VERMINOR).$(VERPATCH)
CC=bcc
diff --git a/libc/bcc/Makefile b/libc/bcc/Makefile
index f4cce3d..9f0627a 100644
--- a/libc/bcc/Makefile
+++ b/libc/bcc/Makefile
@@ -50,34 +50,29 @@ CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
ifneq ($(OBJ),)
all: $(LIBC)
- @:
+ @$(RM) $(OBJ)
$(LIBC): $(LIBC)($(OBJ))
$(LIBC)($(IOBJ)): $(ISRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(LOBJ)): $(LSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(AOBJ)): $(ASRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(ROBJ)): $(RSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(POBJ)): $(PSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
else
all:
@:
diff --git a/libc/bios/Makefile b/libc/bios/Makefile
index 5fcc964..57128e0 100644
--- a/libc/bios/Makefile
+++ b/libc/bios/Makefile
@@ -15,17 +15,15 @@ OBJ=$(AOBJ) $(BOBJ)
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(LIBC)($(OBJ))
- @:
+ @$(RM) $(OBJ)
$(LIBC)($(AOBJ)): $(ASRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(BOBJ)): $(BSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
else
all:
@:
diff --git a/libc/error/Makefile b/libc/error/Makefile
index ae3d1c0..8ec26dc 100644
--- a/libc/error/Makefile
+++ b/libc/error/Makefile
@@ -8,7 +8,7 @@ ifeq ($(LIB_OS),ELKS)
OBJ=error.o sys_errlist.o perror.o sys_siglist.o __assert.o
all: $(LIBC)($(OBJ))
- @:
+ @$(RM) $(OBJ)
else
all:
@:
diff --git a/libc/getent/Makefile b/libc/getent/Makefile
index 9321ced..d2623bc 100644
--- a/libc/getent/Makefile
+++ b/libc/getent/Makefile
@@ -22,7 +22,7 @@ ifeq ($(LIB_OS),ELKS)
OBJ=$(POBJ) $(GOBJ) $(UOBJ)
all: $(LIBC)($(OBJ))
- @:
+ @$(RM) $(OBJ)
$(LIBC)($(GOBJ)): config-grp.h
diff --git a/libc/gtermcap/Makefile b/libc/gtermcap/Makefile
index 44e21da..51eb1f3 100644
--- a/libc/gtermcap/Makefile
+++ b/libc/gtermcap/Makefile
@@ -8,7 +8,7 @@ ifeq ($(LIB_OS),ELKS)
OBJ=termcap.o tparam.o
all: $(LIBC)($(OBJ))
- @:
+ @$(RM) $(OBJ)
else
all:
@:
diff --git a/libc/i386fp/Makefile b/libc/i386fp/Makefile
index 55d06da..46c28a9 100644
--- a/libc/i386fp/Makefile
+++ b/libc/i386fp/Makefile
@@ -24,7 +24,7 @@ CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
ifeq ($(LIB_CPU),i386)
all: $(LIBC)($(FPOBJ))
- rm -f $(JUNK)
+ rm -f $(JUNK) $(FPOBJ)
else
all:
@:
diff --git a/libc/i386sys/Makefile b/libc/i386sys/Makefile
index ef01ac9..5110871 100644
--- a/libc/i386sys/Makefile
+++ b/libc/i386sys/Makefile
@@ -19,7 +19,7 @@ SYSCALLS=syscalls
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(SYSCALLS) $(LIBC)($(OBJ))
- @:
+ @$(RM) $(OBJ)
syscalls: syscall.mak
$(MAKE) -f syscall.mak LIBC="$(LIBC)" CFLAGS="$(CFLAGS)"
@@ -30,17 +30,14 @@ syscall.mak: mksyscall syscall.dat
$(LIBC)($(LOBJ)): $(LSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(DOBJ)): $(DSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(EOBJ)): $(ESRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
else
all:
@:
diff --git a/libc/i386sys/mksyscall b/libc/i386sys/mksyscall
index d9b7f3a..f3b5a00 100644
--- a/libc/i386sys/mksyscall
+++ b/libc/i386sys/mksyscall
@@ -132,12 +132,11 @@ cat >> syscall.mak <<\!
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(LIBC)($(OBJ))
- @:
+ @$(RM) $(OBJ)
$(LIBC)($(OBJ)): syscall.dat
$(CC) $(CFLAGS) -DL_$* syscall.c -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
!
exit $?
diff --git a/libc/malloc1/Makefile b/libc/malloc1/Makefile
index a4107b8..e762582 100644
--- a/libc/malloc1/Makefile
+++ b/libc/malloc1/Makefile
@@ -8,12 +8,11 @@ AOBJ=malloc.o alloca.o free.o calloc.o realloc.o
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(LIBC)($(AOBJ))
- @:
+ @$(RM) $(OBJ)
$(LIBC)($(AOBJ)): $(ASRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
clean:
rm -f *.o libc.a
diff --git a/libc/malloc2/Makefile b/libc/malloc2/Makefile
index ea944db..edfc8f5 100644
--- a/libc/malloc2/Makefile
+++ b/libc/malloc2/Makefile
@@ -4,7 +4,8 @@ OBJ=malloc.o stack.o
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(LIBC)($(OBJ))
- @:
+ @$(RM) $(OBJ)
+
clean:
rm -f *.o libc.a
diff --git a/libc/misc/Makefile b/libc/misc/Makefile
index 9bb579c..56fe043 100644
--- a/libc/misc/Makefile
+++ b/libc/misc/Makefile
@@ -29,19 +29,17 @@ endif
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(LIBC)
- @:
+ @$(RM) $(OBJ)
$(LIBC): $(LIBC)($(OBJ))
$(LIBC)($(MOBJ)): $(MSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(EOBJ)): $(ESRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
clean:
rm -f *.o libc.a
@@ -49,14 +47,11 @@ clean:
$(LIBC)(strtol.o): strtol.c
$(CC) -c -ansi $(ARCH) $(CCFLAGS) $(DEFS) $*.c
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)(strtod.o): strtod.c
$(CC) -c -ansi $(ARCH) $(CCFLAGS) $(DEFS) $*.c
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)(crypt.o): crypt.c
$(CC) -c -ansi $(ARCH) $(CCFLAGS) $(DEFS) $*.c
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
diff --git a/libc/msdos/Makefile b/libc/msdos/Makefile
index 7a5eaa6..d929ee8 100644
--- a/libc/msdos/Makefile
+++ b/libc/msdos/Makefile
@@ -22,19 +22,17 @@ endif
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(LIBC)
- @:
+ @$(RM) $(OBJ)
$(LIBC): $(LIBC)($(OBJ))
$(LIBC)($(AOBJ)): $(ASRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(BOBJ)): $(BSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
else
all:
@:
diff --git a/libc/regexp/Makefile b/libc/regexp/Makefile
index 0276aba..c99c22e 100644
--- a/libc/regexp/Makefile
+++ b/libc/regexp/Makefile
@@ -5,7 +5,7 @@ LSRC=regexp.c regsub.c regerror.c
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(LIBC)
- @:
+ @$(RM) $(OBJ)
$(LIBC): $(LIBC)($(OBJ))
@@ -16,12 +16,10 @@ transfer:
$(LIBC)(regexp.o): regexp.c regexp.h regmagic.h
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)(regsub.o): regsub.c regexp.h regmagic.h
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
clean:
rm -f libc.a *.o core mon.out timer.t.h dMakefile dtr try timer
diff --git a/libc/stdio2/Makefile b/libc/stdio2/Makefile
index 80f2e3b..0fd8d97 100644
--- a/libc/stdio2/Makefile
+++ b/libc/stdio2/Makefile
@@ -22,24 +22,21 @@ OBJ= $(AOBJ) $(POBJ) $(SOBJ)
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(LIBC)
- @:
+ @$(RM) $(OBJ)
$(LIBC): $(LIBC)($(OBJ))
$(LIBC)($(AOBJ)): $(ASRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(POBJ)): $(PSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(SOBJ)): $(SSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
transfer:
-@rm -f ../include/stdio.h
diff --git a/libc/stdio2/stdio.c b/libc/stdio2/stdio.c
index 156d3e3..210c41f 100644
--- a/libc/stdio2/stdio.c
+++ b/libc/stdio2/stdio.c
@@ -207,7 +207,8 @@ int
fflush(fp)
FILE *fp;
{
- int len, cc;
+ int len, cc, rv=0;
+ char * bstart;
if (fp == NULL) /* On NULL flush the lot. */
{
if (fflush(stdin))
@@ -231,24 +232,29 @@ FILE *fp;
if (len)
{
+ bstart = fp->bufstart;
/*
- * The loop is so we don't get upset by signals
+ * The loop is so we don't get upset by signals or partial writes.
*/
do
{
- cc = write(fp->fd, fp->bufstart, len);
+ cc = write(fp->fd, bstart, len);
+ if( cc > 0 )
+ {
+ bstart+=cc; len-=cc;
+ }
}
- while (cc == -1 && errno == EINTR);
+ while ( cc>0 || (cc == -1 && errno == EINTR));
/*
- * I think the following test is _too_ stringent, but it's not
- * serious If it is found to be a problem then if cc>0 we can do
- * a memcpy to put the buffer in a state for a retry. Or even do
- * the retry ourselves.
+ * If we get here with len!=0 there was an error, exactly what to
+ * do about it is another matter ...
+ *
+ * I'll just clear the buffer.
*/
- if (cc != len)
+ if (len)
{
fp->mode |= __MODE_ERR;
- return EOF;
+ rv = EOF;
}
}
}
@@ -260,7 +266,7 @@ FILE *fp;
len = fp->bufread - fp->bufpos; /* Bytes buffered but unread */
/* If it's a file, make it good */
- if (len > 0 && lseek(fp->fd, -len, 1) < 0)
+ if (len > 0 && lseek(fp->fd, (long)-len, 1) < 0)
{
/* Hummm - Not certain here, I don't think this is reported */
/*
@@ -272,7 +278,7 @@ FILE *fp;
/* All done, no problem */
fp->mode &= (~(__MODE_READING|__MODE_WRITING|__MODE_EOF|__MODE_UNGOT));
fp->bufread = fp->bufwrite = fp->bufpos = fp->bufstart;
- return 0;
+ return rv;
}
#endif
@@ -475,12 +481,21 @@ FILE *fp;
else
/* Too big for the buffer */
{
- put = write(fp->fd, buf, bytes);
- if (put < 0)
+ put = bytes;
+ do
{
- fp->mode |= __MODE_ERR;
- put = 0;
+ len = write(fp->fd, buf, bytes);
+ if( len > 0 )
+ {
+ buf+=len; bytes-=len;
+ }
}
+ while (len > 0 || (len == -1 && errno == EINTR));
+
+ if (len < 0)
+ fp->mode |= __MODE_ERR;
+
+ put -= bytes;
}
return put / size;
@@ -504,8 +519,6 @@ FILE *fp;
long offset;
int ref;
{
- /* Use fflush to sync the pointers */
-
#if 1
/* if __MODE_READING and no ungetc ever done can just move pointer */
/* This needs testing! */
@@ -532,6 +545,8 @@ int ref;
}
#endif
+ /* Use fflush to sync the pointers */
+
if (fflush(fp) == EOF)
return EOF;
if (lseek(fp->fd, offset, ref) < 0)
diff --git a/libc/string/Makefile b/libc/string/Makefile
index 61fad41..0f47b40 100644
--- a/libc/string/Makefile
+++ b/libc/string/Makefile
@@ -13,14 +13,13 @@ OBJ=$(SOBJ) strpbrk.o strsep.o strstr.o strtok.o strcspn.o \
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(LIBC)
- @:
+ @$(RM) $(OBJ)
$(LIBC): $(LIBC)($(OBJ))
$(LIBC)($(SOBJ)): $(SSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
transfer:
-@rm -f ../include/string.h
diff --git a/libc/syscall/Makefile b/libc/syscall/Makefile
index fd1b187..a064c3f 100644
--- a/libc/syscall/Makefile
+++ b/libc/syscall/Makefile
@@ -28,7 +28,7 @@ endif
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(SYSCALLS) $(LIBC)
- @:
+ @$(RM) $(OBJ)
call_i86: syscall.mak
$(MAKE) -f syscall.mak LIBC="$(LIBC)" CFLAGS="$(CFLAGS)"
@@ -41,22 +41,18 @@ $(LIBC): $(LIBC)($(OBJ))
$(LIBC)($(LOBJ)): $(LSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(DOBJ)): $(DSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(EOBJ)): $(ESRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
$(LIBC)($(LOBJ0)): $(LSRC0)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
clean:
rm -f *.o libc.a
diff --git a/libc/syscall/mksyscall b/libc/syscall/mksyscall
index 2005029..f7b91a6 100644
--- a/libc/syscall/mksyscall
+++ b/libc/syscall/mksyscall
@@ -278,12 +278,11 @@ END{
cat >> syscall.mak <<\!
all: $(LIBC)($(OBJ))
- @:
+ @$(RM) $(OBJ)
$(LIBC)($(OBJ)): syscall.dat
$(CC) $(CFLAGS) -DL_$* syscall.c -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
!
exit $?
diff --git a/libc/termios/Makefile b/libc/termios/Makefile
index cfc3baa..7e87a81 100644
--- a/libc/termios/Makefile
+++ b/libc/termios/Makefile
@@ -13,14 +13,13 @@ OBJ=$(TOBJ) ttyname.o
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(LIBC)
- @:
+ @$(RM) $(OBJ)
$(LIBC): $(LIBC)($(OBJ))
$(LIBC)($(TOBJ)): $(TSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
$(AR) $(ARFLAGS) $@ $*.o
- $(RM) $*.o
else
all:
@:
diff --git a/libc/time/Makefile b/libc/time/Makefile
index 6e95444..2abb745 100644
--- a/libc/time/Makefile
+++ b/libc/time/Makefile
@@ -7,7 +7,7 @@ OBJ=localtime.o gmtime.o asctime.o ctime.o asc_conv.o tm_conv.o
CFLAGS=$(ARCH) $(CCFLAGS) $(DEFS)
all: $(LIBC)
- @:
+ @$(RM) $(OBJ)
$(LIBC): $(LIBC)($(OBJ))