aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog27
-rw-r--r--libio/fileops.c10
-rw-r--r--libio/libioP.h4
-rw-r--r--pwd/getpw.c5
-rw-r--r--pwd/putpwent.c4
-rw-r--r--sysdeps/unix/sysv/linux/Makefile3
-rw-r--r--sysdeps/unix/sysv/linux/Versions6
-rw-r--r--sysdeps/unix/sysv/linux/sys/acct.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/sendfile.h34
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list1
10 files changed, 85 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index a038b7bb8e..4782fef8b0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+1998-08-20 20:07 Ulrich Drepper <drepper@cygnus.com>
+
+ * pwd/getpw.c (__getpw): Use %lu for uid and gid parameter and
+ cast them to unsigned long int.
+ * pwd/putpwent.c (putpwent): Likewise.
+ Patch by John Tobey <jtobey@banta-im.com>.
+
+1998-08-20 17:14 H.J. Lu <hjl@gnu.org>
+
+ * libio/libioP.h (FILEBUF_LITERAL): Set the _offset field to
+ _IO_pos_BAD.
+
+1998-02-20 17:54 H.J. Lu <hjl@gnu.org>
+
+ * libio/fileops.c (_IO_file_seekoff): Don't adjust pointers if
+ _IO_SYSSEEK fails.
+
1998-08-20 19:14 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (sysdeps_routines):
@@ -8,6 +25,16 @@
* sysdeps/unix/sysv/linux/sys/mount.h: Declare umount2.
Define MNT_FORCE.
+ * sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (sysdep_headers):
+ Add sys/sendfile.h.
+ * sysdeps/unix/sysv/linux/syscalls.list: Add sendfile.
+ * sysdeps/unix/sysv/linux/sys/sendfile.h: New file.
+
+ * sysdeps/unix/sysv/linux/sys/acct.h: Pretty print.
+
+ * sysdeps/unix/sysv/linux/Versions [GLIBC_2.1]: Add umount2 and
+ sendfile.
+
1998-08-20 16:01 Ulrich Drepper <drepper@cygnus.com>
* elf/ldd.sh.in: Redirect warnings and error messages to stderr.
diff --git a/libio/fileops.c b/libio/fileops.c
index 596d97078a..5a5f9d9db2 100644
--- a/libio/fileops.c
+++ b/libio/fileops.c
@@ -613,10 +613,12 @@ _IO_file_seekoff (fp, offset, dir, mode)
_IO_unsave_markers (fp);
result = _IO_SYSSEEK (fp, offset, dir);
if (result != EOF)
- _IO_mask_flags (fp, 0, _IO_EOF_SEEN);
- fp->_offset = result;
- _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base, fp->_IO_buf_base);
- _IO_setp (fp, fp->_IO_buf_base, fp->_IO_buf_base);
+ {
+ _IO_mask_flags (fp, 0, _IO_EOF_SEEN);
+ fp->_offset = result;
+ _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base, fp->_IO_buf_base);
+ _IO_setp (fp, fp->_IO_buf_base, fp->_IO_buf_base);
+ }
return result;
}
diff --git a/libio/libioP.h b/libio/libioP.h
index 84bac2c719..4891294726 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -555,12 +555,12 @@ extern int _IO_vscanf __P ((const char *, _IO_va_list));
# define FILEBUF_LITERAL(CHAIN, FLAGS, FD) \
{ _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD, \
- 0, 0, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock }
+ 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock }
#else
/* check following! */
# define FILEBUF_LITERAL(CHAIN, FLAGS, FD) \
{ _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD, 0, _IO_pos_BAD }
#endif
/* VTABLE_LABEL defines NAME as of the CLASS class.
diff --git a/pwd/getpw.c b/pwd/getpw.c
index 5f738724a9..52c3db7afb 100644
--- a/pwd/getpw.c
+++ b/pwd/getpw.c
@@ -50,8 +50,9 @@ __getpw (uid, buf)
if (__getpwuid_r (uid, &resbuf, tmpbuf, buflen, &p) < 0)
return -1;
- if (sprintf (buf, "%s:%s:%u:%u:%s:%s:%s", p->pw_name, p->pw_passwd,
- p->pw_uid, p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell) < 0)
+ if (sprintf (buf, "%s:%s:%lu:%lu:%s:%s:%s", p->pw_name, p->pw_passwd,
+ (unsigned long int) p->pw_uid, (unsigned long int) p->pw_gid,
+ p->pw_gecos, p->pw_dir, p->pw_shell) < 0)
return -1;
return 0;
diff --git a/pwd/putpwent.c b/pwd/putpwent.c
index 7ab48c16d6..ac1fd7e464 100644
--- a/pwd/putpwent.c
+++ b/pwd/putpwent.c
@@ -35,9 +35,9 @@ putpwent (p, stream)
return -1;
}
- if (fprintf (stream, "%s:%s:%u:%u:%s:%s:%s\n",
+ if (fprintf (stream, "%s:%s:%lu:%lu:%s:%s:%s\n",
p->pw_name, _S (p->pw_passwd),
- p->pw_uid, p->pw_gid,
+ (unsigned long int) p->pw_uid, (unsigned long int) p->pw_gid,
_S (p->pw_gecos), _S (p->pw_dir), _S (p->pw_shell)) < 0)
return -1;
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 5c38ced83f..ffd446d9f8 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -17,7 +17,8 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h sys/mtio.h \
sys/user.h sys/sysmacros.h sys/procfs.h sys/prctl.h \
sys/debugreg.h sys/kd.h sys/soundcard.h sys/vt.h \
sys/quota.h sys/fsuid.h bits/mman.h \
- scsi/sg.h scsi/scsi.h sys/pci.h sys/ultrasound.h
+ scsi/sg.h scsi/scsi.h sys/pci.h sys/ultrasound.h \
+ sys/sendfile.h
install-others += $(inst_includedir)/bits/syscall.h
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 8a7f0f85c3..2e392818b6 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -75,5 +75,11 @@ libc {
# c*
capget; capset;
+
+ # s*
+ sendfile;
+
+ # u*
+ umount2;
}
}
diff --git a/sysdeps/unix/sysv/linux/sys/acct.h b/sysdeps/unix/sysv/linux/sys/acct.h
index 1d723d55b8..0b16d249af 100644
--- a/sysdeps/unix/sysv/linux/sys/acct.h
+++ b/sysdeps/unix/sysv/linux/sys/acct.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,8 +17,8 @@
Boston, MA 02111-1307, USA. */
#ifndef _SYS_ACCT_H
-
#define _SYS_ACCT_H 1
+
#include <features.h>
#define __need_time_t
diff --git a/sysdeps/unix/sysv/linux/sys/sendfile.h b/sysdeps/unix/sysv/linux/sys/sendfile.h
new file mode 100644
index 0000000000..8008101b74
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sys/sendfile.h
@@ -0,0 +1,34 @@
+/* Copyright (C) 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef _SYS_SENDFILE_H
+#define _SYS_SENDFILE_H 1
+
+#include <features.h>
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+/* Send COUNT bytes from file associated with IN_FD starting at OFFSET to
+ descriptor OUT_FD. */
+extern ssize_t sendfile __P ((int __out_fd, int __in_fd, off_t *offset,
+ size_t __count));
+
+__END_DECLS
+
+#endif /* sys/sendfile.h */
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index 82c6423afc..54b210d728 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -67,6 +67,7 @@ sched_setp - sched_setparam 2 __sched_setparam sched_setparam
sched_sets - sched_setscheduler 3 __sched_setscheduler sched_setscheduler
sched_yield - sched_yield 0 __sched_yield sched_yield
select - _newselect 5 __select select
+sendfile EXTRA sendfile 4 sendfile
setfsgid EXTRA setfsgid 1 setfsgid
setfsuid EXTRA setfsuid 1 setfsuid
setpgid - setpgid 2 __setpgid setpgid