glibc/debug
Zack Weinberg 7caa5054af Clean up conditionals for declaration of gets.
gets has the dubious honor of being the only C89 library feature that
has been completely removed from the current C and C++ standards.
glibc follows suit by not declaring it in _GNU_SOURCE mode either,
but it remains present in older compatibility modes.  Internally,
two test cases need to see stdio.h make the declaration, but all our
internal code is of course compiled under _GNU_SOURCE.  This is currently
kludged by duplicating the gets declaration, fortify wrapper and all,
in include/stdio.h.  Also, the conditional in the public headers for
deciding when to declare gets is complicated and repeated in two places.

This patch adds a new macro to features.h that encapsulates the
complicated rule for when to declare gets.  stdio.h and bits/stdio2.h
then simply test __GLIBC_USE (DEPRECATED_GETS), and instead of having
a duplicate gets declaration in include/stdio.h, debug/tst-chk1.c and
stdio-common/tst-gets.c can force gets to be declared.

        * include/features.h (__GLIBC_USE_DEPRECATED_GETS): New macro.
        * libio/stdio.h, libio/bits/stdio2.h: Condition gets on
        __GLIBC_USE (DEPRECATED_GETS).  Update comments to indicate
        gets was removed from C++ in C++14.
        * include/stdio.h: Remove redundant declaration of gets.
        * debug/tst-chk1.c, stdio-common/tst-gets.c: Force gets to
        be declared, since we are testing it.
        * stdio-common/Makefile (tst-gets.c): Compile with
        -Wno-deprecated-declarations.
	* debug/Makefile (tst-chk1.c, tst-chk2.c, tst-chk3.c, tst-chk4.cc)
	(tst-chk5.cc, tst-chk6.cc, tst-lfschk1.c, tst-lfschk2.c)
	(tst-lfschk3.c, tst-lfschk4.cc, tst-lfschk5.cc, tst-lfschk6.cc):
	Compile with -Wno-deprecated-declarations.
2017-02-25 09:47:51 -05:00
..
asprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
backtrace-tst.c Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
backtrace.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
backtracesyms.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
backtracesymsfd.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
catchsegv.sh Update copyright dates not handled by scripts/update-copyrights. 2017-01-01 00:26:24 +00:00
chk_fail.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
confstr_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Depend * stdlib/bits/stdlib.h: New file. 2005-07-13 06:09:58 +00:00
dprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
execinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
explicit_bzero_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fdelt_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fgets_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fgets_u_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fgetws_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fgetws_u_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fortify_fail.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fread_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fread_u_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fwprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getcwd_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getdomainname_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getgroups_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
gethostname_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
gets_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getwd_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
longjmp_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Makefile Clean up conditionals for declaration of gets. 2017-02-25 09:47:51 -05:00
mbsnrtowcs_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mbsrtowcs_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mbstowcs_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
memcpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
memmove_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mempcpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
memset_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
noophooks.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
obprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
pcprofile.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
pcprofiledump.c Update copyright dates not handled by scripts/update-copyrights. 2017-01-01 00:26:24 +00:00
poll_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ppoll_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
pread64_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
pread_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
printf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
read_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
readlink_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
readlinkat_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
readonly-area.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
realpath_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
recv_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
recvfrom_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
segfault.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
snprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stack_chk_fail_local.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stack_chk_fail.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stpcpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stpncpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
strcat_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
strcpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
strncat_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
strncpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
swprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-stpcpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-strcpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-backtrace2.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-backtrace3.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-backtrace4.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-backtrace5.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-backtrace6.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-backtrace.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-chk1.c Clean up conditionals for declaration of gets. 2017-02-25 09:47:51 -05:00
tst-chk2.c 2004-10-15 Jakub Jelinek <jakub@redhat.com> 2004-10-18 04:17:19 +00:00
tst-chk3.c 2004-10-15 Jakub Jelinek <jakub@redhat.com> 2004-10-18 04:17:19 +00:00
tst-chk4.cc * misc/sys/cdefs.h (__va_arg_pack): Define for GCC 4.3+. 2007-09-15 02:38:04 +00:00
tst-chk5.cc * misc/sys/cdefs.h (__va_arg_pack): Define for GCC 4.3+. 2007-09-15 02:38:04 +00:00
tst-chk6.cc * misc/sys/cdefs.h (__va_arg_pack): Define for GCC 4.3+. 2007-09-15 02:38:04 +00:00
tst-lfschk1.c * posix/bits/unistd.h (pread) [__USE_FILE_OFFSET64]: Use __off64_t 2005-03-20 16:51:05 +00:00
tst-lfschk2.c * posix/bits/unistd.h (pread) [__USE_FILE_OFFSET64]: Use __off64_t 2005-03-20 16:51:05 +00:00
tst-lfschk3.c * posix/bits/unistd.h (pread) [__USE_FILE_OFFSET64]: Use __off64_t 2005-03-20 16:51:05 +00:00
tst-lfschk4.cc * misc/sys/cdefs.h (__va_arg_pack): Define for GCC 4.3+. 2007-09-15 02:38:04 +00:00
tst-lfschk5.cc * misc/sys/cdefs.h (__va_arg_pack): Define for GCC 4.3+. 2007-09-15 02:38:04 +00:00
tst-lfschk6.cc * misc/sys/cdefs.h (__va_arg_pack): Define for GCC 4.3+. 2007-09-15 02:38:04 +00:00
tst-longjmp_chk2.c test-skeleton.c: Add write_message function 2016-06-23 11:00:36 +02:00
tst-longjmp_chk3.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-longjmp_chk.c tests: unify fortification handler logic 2014-02-08 06:58:43 -05:00
ttyname_r_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
vasprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
vdprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Versions New string function explicit_bzero (from OpenBSD). 2016-12-16 16:21:54 -05:00
vfprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
vfwprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
vprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
vsnprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
vsprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
vswprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
vwprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
warning-nop.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcpcpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcpncpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcrtomb_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcscat_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcscpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsncat_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsncpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsnrtombs_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcsrtombs_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wcstombs_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wctomb_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wmemcpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wmemmove_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wmempcpy_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wmemset_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wprintf_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
xtrace.sh Update copyright dates not handled by scripts/update-copyrights. 2017-01-01 00:26:24 +00:00