about summary refs log tree commit diff
path: root/libio
Commit message (Collapse)AuthorAgeFilesLines
...
* Complete _BSD_SOURCE / _SVID_source followup cleanup.Joseph Myers2014-02-214-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch completes the headers cleanup consequent on removal of _BSD_SOURCE and _SVID_SOURCE (apart from any subsequent deprecations): * #endif conditionals that referred to BSD or SVID are updated. * Redundant __USE_* tests in cases involving __USE_MISC are removed. This includes cases such as __USE_MISC || __USE_ISOC99, where __USE_MISC is redundant (because __USE_MISC is only ever defined in the default / _DEFAULT_SOURCE / _GNU_SOURCE case, when __USE_ISOC99 is also defined; the same applies to the non-XSI-extended POSIX versions), and cases involving __USE_GNU, where __USE_GNU is redundant (because if __USE_GNU is defined, so are the other __USE_* macros). There may well be other cases of __USE_FOO || __USE_BAR tests that could be simplified because one macro implies the other; this patch only addresses cases involving __USE_MISC. Tested x86_64. * bits/fcntl.h [__USE_MISC]: Remove redundant conditionals. * bits/sigaction.h [__USE_MISC]: Likewise. * bits/waitstatus.h: Update #endif comments. * ctype/ctype.h: Likewise. * dirent/dirent.h: Likewise. [__USE_MISC]: Remove redundant conditionals. * grp/grp.h: Update #endif comments. [__USE_GNU]: Remove redundant conditionals. [__USE_MISC]: Likewise. * inet/netinet/in.h [__USE_GNU]: Likewise. * io/sys/stat.h [__USE_MISC]: Likewise. * libio/bits/stdio-ldbl.h [__USE_MISC]: Likewise. * libio/bits/stdio.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * libio/bits/stdio2.h [__USE_MISC]: Likewise. * libio/stdio.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * math/bits/math-finite.h [__USE_MISC]: Likewise. * math/bits/mathcalls.h [__USE_MISC]: Likewise. * math/math.h: Update #else and #endif comments. [__USE_MISC]: Remove redundant conditionals. * misc/sys/uio.h: Update #endif comments. * posix/bits/unistd.h [__USE_MISC]: Remove redundant conditionals. * posix/glob.h [__USE_MISC]: Likewise. * posix/sys/types.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * posix/sys/wait.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * posix/unistd.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * pwd/pwd.h [__USE_GNU]: Likewise. [__USE_MISC]: Likewise. * resolv/netdb.h [__USE_GNU]: Likewise. * signal/signal.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * stdlib/stdlib.h: Update #else and #endif comments. [__USE_MISC]: Remove redundant conditionals. [__USE_GNU]: Likewise. * string/bits/string2.h [__USE_MISC]: Likewise. * string/string.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * sysdeps/m68k/m680x0/fpu/bits/mathinline.h [__USE_MISC]: Likewise. * sysdeps/mach/hurd/bits/fcntl.h [__USE_MISC]: Likewise. * sysdeps/mach/hurd/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/bits/fcntl-linux.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * sysdeps/unix/sysv/linux/bits/in.h [__USE_GNU]: Likewise. * sysdeps/unix/sysv/linux/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/bits/socket.h [__USE_GNU]: Likewise. * sysdeps/unix/sysv/linux/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/m68k/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/mips/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/mips/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/s390/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/s390/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/x86/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/x86/bits/string.h: Update #endif comments. * sysdeps/x86/fpu/bits/mathinline.h [__USE_MISC]: Remove redundant conditionals. * time/sys/time.h: Update #endif comments. * time/time.h: Likewise. [__USE_MISC]: Remove redundant conditionals.
* Split up rules for tests using mtrace and something else.Joseph Myers2014-02-141-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most glibc tests that use mtrace to verify that there were no memory leaks from the glibc facilities used in a given test depend on the .out file of the previous test so that the mtrace test runs mtrace and nothing else. Two, however, have a single target combining mtrace with something else. In the case of libio/tst-fopenloc.check, the test both compares the output with an expected baseline and runs mtrace. In the case of posix/tst-rxspencer-mem, the test is run (with different command line from the main run) and then mtrace is run, from the same makefile target. This patch splits both of these tests up to use separate makefile targets for each thing tested; in the tst-rxspencer case, a file tst-rxspencer-no-utf8.c is created that just includes tst-rxspencer.c, as is usual for tests where the same code gets tested in different compile-time or runtime configurations. Adding $(evaluate-test) to test commands, as in <https://sourceware.org/ml/libc-alpha/2014-01/msg00194.html>, will no longer need to insert && between multiple commands, as all tests will either have just a single command or already use &&. Tested x86_64. * libio/Makefile ($(objpfx)tst-fopenloc.check): Split into separate $(objpfx)tst-fopenloc-cmp.out and $(objpfx)tst-fopenloc-mem.out targets. (tests): Update dependencies. * posix/Makefile (tests variable): Add tst-rxspencer-no-utf8. (generated): Change tst-rxspencer-mem and tst-rxspencer.mtrace to tst-rxspencer-no-utf8-mem and tst-rxspencer-no-utf8.mtrace. (tst-rxspencer-no-utf8-ARGS): New variable. (tst-rxspencer-no-utf8-ENV): Likewise. (tests target): Depend on $(objpfx)tst-rxspencer-no-utf8-mem instead of $(objpfx)tst-rxspencer-mem. ($(objpfx)tst-rxspencer-mem): Change target to $(objpfx)tst-rxspencer-no-utf8-mem. Depend on $(objpfx)tst-rxspencer-no-utf8.out instead of running test program. * posix/tst-rxspencer-no-utf8.c: New file.
* Clean up trivially redundant __USE_MISC conditionals.Joseph Myers2014-02-131-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch cleans up cases of __USE_MISC that are trivially redundant after the recent substitution of __USE_MISC for __USE_BSD and __USE_SVID: either in constructs such as "defined __USE_MISC || defined __USE_MISC", or else (in the bits/mman.h case) a conditional on __USE_MISC nested inside another __USE_MISC conditional. (The cleanups remaining after this patch are still quite large, but it seems a reasonable piece to separate out.) Tested x86_64. * bits/mman.h [__USE_MISC]: Remove redundant conditionals. * ctype/ctype.h [__USE_MISC]: Likewise. * dirent/dirent.h [__USE_MISC]: Likewise. * grp/grp.h [__USE_MISC]: Likewise. * io/fcntl.h [__USE_MISC]: Likewise. * io/sys/stat.h [__USE_MISC]: Likewise. * libio/stdio.h [__USE_MISC]: Likewise. * posix/unistd.h [__USE_MISC]: Likewise. * pwd/pwd.h [__USE_MISC]: Likewise. * stdlib.h [__USE_MISC]: Likewise. * string/bits/string2.h [__USE_MISC]: Likewise. * string/string.h [__USE_MISC]: Likewise. * time/time.h [__USE_MISC]: Likewise.
* Combine __USE_BSD and __USE_SVID into __USE_MISC.Joseph Myers2014-02-123-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch cleans up following the obsoletion of _BSD_SOURCE and _SVID_SOURCE by combining __USE_BSD and __USE_SVID into __USE_MISC. The only non-mechanical part of this patch is the changes to features.h; everything else is simple substitution of __USE_MISC for the old macros. Thus, this patch leaves obviously redundant conditionals such as "defined __USE_MISC || defined __USE_MISC", and does not update #endif comments where they referred to BSD or SVID in words instead of the literal macro name. This is intended to facilitate patch review by separating the less mechanical changes from these purely mechanical changes into a separate patch. (I do intend to integrate all the changes from <https://sourceware.org/ml/libc-alpha/2013-12/msg00226.html>, which I believe includes all the trailing comment updates, in subsequent patches.) Tested x86_64. * include/features.h (__USE_BSD): Remove macro definitions. (__USE_SVID): Likewise. (_BSD_SOURCE): Likewise. (_SVID_SOURCE): Likewise. [!defined _BSD_SOURCE && !defined _SVID_SOURCE]: Remove condition from definition of _DEFAULT_SOURCE. [_BSD_SOURCE || _SVID_SOURCE]: Change condition to [_DEFAULT_SOURCE]. * bits/fcntl.h [__USE_BSD]: Change condition to [__USE_MISC]. * bits/mman.h [__USE_BSD]: Likewise. * bits/termios.h [__USE_BSD]: Likewise. * bits/waitstatus.h [__USE_BSD]: Likewise. * ctype/ctype.h [__USE_SVID]: Likewise. * dirent/dirent.h [__USE_BSD]: Likewise. * grp/grp.h [__USE_SVID]: Likewise. [__USE_BSD]: Likewise. * inet/netinet/igmp.h [__USE_BSD]: Likewise. * io/fcntl.h [__USE_BSD]: Likewise. * io/ftw.h [__USE_BSD]: Likewise. * io/sys/stat.h [__USE_BSD]: Likewise. * libio/bits/stdio-ldbl.h [__USE_BSD]: Likewise. * libio/bits/stdio2.h [__USE_BSD]: Likewise. * libio/stdio.h [__USE_SVID]: Likewise. [__USE_BSD]: Likewise. * math/math.h [__USE_SVID]: Likewise. [__USE_BSD]: Likewise. * misc/bits/syslog-ldbl.h [__USE_BSD]: Likewise. * misc/bits/syslog.h [__USE_BSD]: Likewise. * misc/search.h [__USE_SVID]: Likewise. * misc/sys/mman.h [__USE_BSD]: Likewise. * misc/sys/syslog.h [__USE_BSD]: Likewise. * misc/sys/uio.h [__USE_BSD]: Likewise. * posix/bits/unistd.h [__USE_BSD]: Likewise. * posix/glob.h [__USE_BSD]: Likewise. * posix/regex.h [__USE_BSD]: Likewise. * posix/sys/types.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * posix/sys/utsname.h [__USE_SVID]: Likewise. * posix/sys/wait.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * posix/unistd.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * pwd/pwd.h [__USE_SVID]: Likewise. * resolv/netdb.h [__USE_BSD]: Likewise. * setjmp/setjmp.h [__USE_BSD]: Likewise. * signal/signal.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * socket/sys/socket.h [__USE_BSD]: Likewise. * stdlib/fmtmsg.h [__USE_SVID]: Likewise. * stdlib/stdlib.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * string/bits/string2.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * string/bits/string3.h [__USE_BSD]: Likewise. * string/endian.h [__USE_BSD]: Likewise. * string/string.h [__USE_SVID]: Likewise. [__USE_BSD]: Likewise. * string/strings.h [__USE_BSD]: Likewise. * sysdeps/generic/netinet/ip.h [__USE_BSD]: Likewise. * sysdeps/gnu/netinet/ip_icmp.h [__USE_BSD]: Likewise. * sysdeps/mach/hurd/bits/fcntl.h [__USE_BSD]: Likewise. * sysdeps/mach/hurd/bits/stat.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/mman.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/termios.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/bits/mman-linux.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/bits/sys_errlist.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/bits/termios.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/mips/bits/termios.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/netinet/if_ether.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/netinet/if_fddi.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/netinet/if_tr.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/termios.h [__USE_BSD]: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/termios.h [__USE_BSD]: Likewise. * sysdeps/x86/bits/string.h [__USE_BSD]: Likewise. * sysvipc/sys/ipc.h [__USE_SVID]: Likewise. * termios/termios.h [__USE_BSD]: Likewise. * time/sys/time.h [__USE_BSD]: Likewise. * time/time.h [__USE_BSD]: Likewise. [__USE_SVID]: Likewise. * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_BSD]: Change condition to [__USE_MISC].
* Use glibc_likely instead __builtin_expect.Ondřej Bílka2014-02-109-19/+19
|
* Fix infinite loop in ftell when writing wide char data (BZ #16398)Siddhesh Poyarekar2014-02-053-5/+115
| | | | | | | | | | | | | | | ftell tries to avoid flushing the buffer when it is in write mode by converting the wide char data and placing it into the binary buffer. If the output buffer space is full and there is data to write, the code reverts to flushing the buffer. This breaks when there is space in the buffer but it is not enough to convert the next character in the wide data buffer, due to which __codecvt_do_out returns a __codecvt_partial status. In this case, ftell keeps running in an infinite loop. The fix here is to detect the __codecvt_partial status in addition to checking if the buffer is full. I have also added a test case that demonstrates the infinite loop.
* Update copyright notices with scripts/update-copyrightsAllan McRae2014-01-01153-153/+153
|
* Rename Oriya locale to Odia (bug 15601)Siddhesh Poyarekar2013-11-201-1/+1
| | | | | | | | | | | | The state of Orissa was officially renamed the state to Odisha and the language from Oriya to Odia in 2010. References: http://zeenews.india.com/election09/story.aspx?aid=739995 http://orissamatters.com/2011/11/07/orissa-became-odisha/ http://www.ndtv.com/article/india/parliament-passes-bill-to-change-orissa-s-name-93888 http://orissa.gov.in/e-magazine/Orissareview/2011/Nov/engpdf/9-17.pdf
* Fix fwrite() reading beyond end of buffer in error pathEric Biggers2013-10-115-24/+21
| | | | | | | | | | | Partially revert commits 2b766585f9b4ffabeef2f36200c275976b93f2c7 and de2fd463b1c0310d75084b6d774fb974075a4ad9, which were intended to fix BZ#11741 but caused another, likely worse bug, namely that fwrite() and fputs() could, in an error path, read data beyond the end of the specified buffer, and potentially even write this data to the file. Fix BZ#11741 properly by checking the return value from _IO_padn() in stdio-common/vfprintf.c.
* Fix memory leaks in libio on allocation failureAllan McRae2013-09-092-3/+8
|
* Remove --disable-versioning.Joseph Myers2013-09-041-2/+2
|
* Fix typos.Ondřej Bílka2013-08-211-2/+2
|
* Use (void) in no-arguments function definitions.Joseph Myers2013-06-087-14/+14
|
* Avoid use of "register" as optimization hint.Joseph Myers2013-06-074-17/+17
|
* Fix leading whitespaces.Ondrej Bilka2013-06-062-2/+2
|
* Remove trailing whitespace.Joseph Myers2013-06-052-3/+3
|
* Initialize wide struct info.Ondrej Bilka2013-05-241-0/+4
| | | | | | | | Fixes 15381. Using wide character function is on byte oriented memstream is undefined behaviour. This behaviour was masked by not initializing wide struct info. We now initialize it to cause a predictable crash.
* Fix off-by-one bug in tst-fwrite-errorSiddhesh Poyarekar2013-04-151-1/+1
| | | | | tst-fwrite-error did not allocate enough space for the string 'world' and its NULL terminator. Fixed.
* Remove lots of inline keywords.Roland McGrath2013-02-071-1/+1
|
* Add --enable-hardcoded-path-in-tests configure optionH.J. Lu2013-01-112-3/+3
|
* Update copyright notices with scripts/update-copyrights.Joseph Myers2013-01-02153-174/+153
|
* Add script to update copyright notices and reformat some to facilitate its use.Joseph Myers2013-01-011-2/+1
|
* [BZ #12724] libio: revert partial POSIX 2008 fclose supportMike Frysinger2012-12-013-144/+4
| | | | | | | | | | | In BZ #12724, partial support for POSIX 2008 fclose behavior was added. Since it isn't entirely conforming to the spec, some applications are known to be breaking in this intermediate state. So revert the partial support until we can get things fully implemented. This reverts commit fcabc0f8b185f9e0a9289720be5ede6c39b3bf21. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Make fwrite return 0 on EOFSiddhesh Poyarekar2012-11-284-11/+78
|
* printf should return negative value on errorSiddhesh Poyarekar2012-11-164-14/+15
| | | | | | [BZ #11741] Fixed bug where printf and family may return a spurious success when printing padded formats.
* Note in a comment that references to C++ bits are obsoleteSiddhesh Poyarekar2012-11-161-0/+8
| | | | | libio is not used by libstdc++ anymore, but there are references to streambuf are all over.
* Change type of constant to avoid a warning.Thomas Schwinge2012-11-011-1/+1
| | | | Warning has been introduced in commit 7583a88d1c7170caad26966bcea8bfc2c92093ba.
* Define and use $(run-built-tests).Joseph Myers2012-10-241-1/+1
|
* Remove _G_OPEN64, _G_LSEEK64, _G_MMAP64, _G_FSTAT64 from _G_config.h.Joseph Myers2012-10-189-87/+12
|
* Remove _IO_pos_t.Joseph Myers2012-10-101-1/+0
|
* Remove _G_off64_t and _G_stat64 from _G_config.h.Joseph Myers2012-10-095-8/+8
|
* Don't flush write buffer for ftellSiddhesh Poyarekar2012-09-282-25/+112
| | | | | | [BZ #5298] Use write pointer state along with the file offset and/or the read pointers to get the current file position.
* Adjust wide data buffer pointers during fseek and ftellSiddhesh Poyarekar2012-09-283-1/+234
| | | | | | | | | [BZ #14543] Set the internal buffer state correctly whenever the external buffer state is modified by fseek by either computing the current _IO_read_ptr/end for the internal buffer based on the new _IO_read_ptr in the external buffer or converting the content read into the external buffer, up to the extent of the requested fseek offset.
* Remove various _G_*_t type names.Joseph Myers2012-09-252-8/+8
|
* Fix minor typos in commentsSiddhesh Poyarekar2012-09-251-2/+2
|
* Set "fail on error" mode directly in testsuite shell scriptsDmitry V. Levin2012-09-252-4/+5
|
* Remove _G_HAVE_SYS_WAIT and _IO_HAVE_SYS_WAIT.Joseph Myers2012-09-213-23/+0
|
* Remove _G_NEED_STDARG_H.Joseph Myers2012-09-201-8/+6
|
* Remove _G_HAVE_IO_GETLINE_INFO.Joseph Myers2012-09-172-8/+0
|
* Remove _G_HAVE_PRINTF_FP.Joseph Myers2012-09-131-3/+0
|
* Remove _G_USING_THUNKS.Joseph Myers2012-09-101-30/+12
|
* Remove libio C++ vtable definitions.Joseph Myers2012-09-101-24/+0
|
* Run tst-fopenloc if $(build-shared) is yesH.J. Lu2012-09-101-4/+14
|
* Fix typos in commentsSiddhesh Poyarekar2012-09-053-5/+5
| | | | | | * libio/fileops.c: Fix typos in comments. * libio/oldfileops.c: Likewise. * libio/wfileops.c: Likewise.
* Fix iogetdelim.c (latent) integer overflow (bug 9914).Joseph Myers2012-09-041-1/+2
|
* Make libio compile without _IO_MTSAFE_IO.Roland McGrath2012-08-172-0/+18
|
* Clean up definition of _LIBC_REENTRANT and _IO_MTSAFE_IO.Roland McGrath2012-08-171-3/+3
|
* Clean up lockf64, fseeko64, ftello64, fgetpos64, fsetpos64 for off64_t == off_t.Roland McGrath2012-08-068-14/+65
|
* Clean up fopen64 for O_LARGEFILE==0.Roland McGrath2012-08-012-0/+12
|
* Fix lots of bitrot for stub configurations.Roland McGrath2012-07-301-2/+2
|