mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 11:20:07 +00:00
acbee5f637
(_IO_file_jumps_mmap): Use it. (_IO_file_underflow_mmap): Rewritten. If after EOF or fflush, repeat the stat check and resize the mapped buffer as necessary. 2002-07-31 Roland McGrath <roland@frob.com> * libio/fileops.c (decide_maybe_mmap): New static function. Code taken from libio/iofopen.c:__fopen_maybe_mmap to try to mmap the file contents. Then switch the jump tables to the mmap tables if it worked, or the vanilla file tables if not. (_IO_file_underflow_maybe_mmap): New function. (_IO_file_seekoff_maybe_mmap): New function. (_IO_file_xsgetn_maybe_mmap): New function. (_IO_file_jumps_maybe_mmap): New variable, jump table using those. * libio/libioP.h: Declare those. * libio/wfileops.c (_IO_wfile_underflow_maybe_mmap): New function. (_IO_wfile_jumps_maybe_mmap): New variable, jump table using that. * libio/iofopen.c (__fopen_maybe_mmap): Don't try to mmap here. If the stream is read-only, set its jump tables to those new ones. * libio/iofdopen.c (_IO_new_fdopen) [_G_HAVE_MMAP]: Set the initial jump tables to the maybe_mmap ones, and don't call __fopen_maybe_mmap. We need the tables set before _IO_file_attach. * libio/tst-mmap-eofsync.c: New file. * libio/tst-mmap-fflushsync.c: New file. * libio/bug-mmap-fflush.c: New file. * libio/tst-mmap2-eofsync.c: New file. * libio/Makefile (tests): Add them. * libio/wfileops.c (_IO_wfile_underflow_mmap): Don't set EOF bit when _IO_file_underflow_mmap fails, it already set the appropriate bit. |
||
---|---|---|
aout | ||
argp | ||
assert | ||
bare | ||
bits | ||
catgets | ||
conf | ||
conform | ||
crypt | ||
csu | ||
ctype | ||
debug | ||
dirent | ||
dlfcn | ||
elf | ||
gmon | ||
gnulib | ||
grp | ||
hesiod | ||
hurd | ||
iconv | ||
iconvdata | ||
include | ||
inet | ||
intl | ||
io | ||
libio | ||
linuxthreads | ||
linuxthreads_db | ||
locale | ||
localedata | ||
login | ||
mach | ||
malloc | ||
manual | ||
math | ||
misc | ||
nis | ||
nscd | ||
nss | ||
po | ||
posix | ||
pwd | ||
resolv | ||
resource | ||
rpm | ||
rt | ||
scripts | ||
setjmp | ||
shadow | ||
signal | ||
socket | ||
soft-fp | ||
stdio-common | ||
stdlib | ||
streams | ||
string | ||
sunrpc | ||
sysdeps | ||
sysvipc | ||
termios | ||
time | ||
timezone | ||
wcsmbs | ||
wctype | ||
.cvsignore | ||
abi-tags | ||
aclocal.m4 | ||
BUGS | ||
ChangeLog | ||
ChangeLog.1 | ||
ChangeLog.2 | ||
ChangeLog.3 | ||
ChangeLog.4 | ||
ChangeLog.5 | ||
ChangeLog.6 | ||
ChangeLog.7 | ||
ChangeLog.8 | ||
ChangeLog.9 | ||
ChangeLog.10 | ||
ChangeLog.11 | ||
ChangeLog.12 | ||
config-name.in | ||
config.h.in | ||
config.make.in | ||
configure | ||
configure.in | ||
CONFORMANCE | ||
COPYING | ||
COPYING.LIB | ||
cppflags-iterator.mk | ||
extra-lib.mk | ||
FAQ | ||
FAQ.in | ||
glibcbug.in | ||
INSTALL | ||
INTERFACE | ||
Make-dist | ||
Makeconfig | ||
Makefile | ||
Makefile.in | ||
Makerules | ||
MakeTAGS | ||
NAMESPACE | ||
NEWS | ||
NOTES | ||
o-iterator.mk | ||
PROJECTS | ||
README | ||
README-alpha | ||
README.libm | ||
README.template | ||
Rules | ||
shlib-versions | ||
test-skeleton.c | ||
version.h | ||
Versions.def |
This directory contains the version 2.2.90 release of the GNU C Library. Many bugs have been fixed since the last release. Some bugs surely remain. As of this release, the GNU C library is known to run on the following configurations: *-*-gnu GNU Hurd i[3456]86-*-linux-gnu Linux-2.x on Intel m68k-*-linux-gnu Linux-2.x on Motorola 680x0 alpha*-*-linux-gnu Linux-2.x on DEC Alpha powerpc-*-linux-gnu Linux and MkLinux on PowerPC systems sparc-*-linux-gnu Linux-2.x on SPARC sparc64-*-linux-gnu Linux-2.x on UltraSPARC 64-bit arm-*-none ARM standalone systems arm-*-linux Linux-2.x on ARM arm-*-linuxaout Linux-2.x on ARM using a.out binaries mips*-*-linux-gnu Linux-2.x on MIPS ia64-*-linux-gnu Linux-2.x on ia64 s390-*-linux-gnu Linux-2.x on IBM S/390 s390x-*-linux-gnu Linux-2.x on IBM S/390 64-bit sh-*-linux-gnu Linux-2.x on Super Hitachi cris-*-linux-gnu Linux-2.4+ on CRIS Former releases of this library (version 1.09.1 and perhaps earlier versions) used to run on the following configurations: alpha-dec-osf1 i[3456]86-*-bsd4.3 i[3456]86-*-isc2.2 i[3456]86-*-isc3 i[3456]86-*-sco3.2 i[3456]86-*-sco3.2v4 i[3456]86-*-sysv i[3456]86-*-sysv4 i[3456]86-force_cpu386-none i[3456]86-sequent-bsd i960-nindy960-none m68k-hp-bsd4.3 m68k-mvme135-none m68k-mvme136-none m68k-sony-newsos3 m68k-sony-newsos4 m68k-sun-sunos4 mips-dec-ultrix4 mips-sgi-irix4 sparc-sun-solaris2 sparc-sun-sunos4 Since no one has volunteered to test and fix the above configurations, these are not supported at the moment. It's expected that these don't work anymore. Porting the library is not hard. If you are interested in doing a port, please contact the glibc maintainers by sending electronic mail to <bug-glibc@gnu.org>. There are some add-ons which can be used together with GNU libc. They are designed in a way to ease the installation by integrating them in the libc source tree. Simply get the add-ons you need and use the --enable-add-ons option of the `configure' script to tell where the add-ons are found. Please read the FAQ file for more details. See the file INSTALL to find out how to configure, build, install, and port the GNU C library. You might also consider reading the WWW pages for the GNU libc at http://www.gnu.org/software/libc/libc.html. The GNU C Library is completely documented by the Texinfo manual found in the `manual/' subdirectory. The manual is still being updated and contains some known errors and omissions; we regret that we do not have the resources to work on the manual as much as we would like. Please send comments on the manual to <bug-glibc-manual@gnu.org>, and not to the library bug-reporting address. The file NOTES contains a description of the feature-test macros used in the GNU C library, explaining how you can tell the library what facilities you want it to make available. We prefer to get bug reports sent using the `glibcbug' shell script which is installed together with the rest of the GNU libc to <bugs@gnu.org>. Simply run this shell script and fill in the information. Nevertheless you can still send bug reports to <bug-glibc@gnu.org> as normal electronic mails. The GNU C Library is free software. See the file COPYING.LIB for copying conditions.