This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Clean up conditionals for declaration of gets().
- From: Carlos O'Donell <carlos at redhat dot com>
- To: Zack Weinberg <zackw at panix dot com>, libc-alpha at sourceware dot org
- Cc: Joseph Myers <joseph at codesourcery dot com>, Wilco Dijkstra <wdijkstr at arm dot com>, Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- Date: Mon, 20 Feb 2017 08:47:21 -0500
- Subject: Re: [PATCH] Clean up conditionals for declaration of gets().
- Authentication-results: sourceware.org; auth=none
- References: <20170216151151.9E56214B9D@panix1.panix.com>
On 02/16/2017 10:01 AM, Zack Weinberg wrote:
> 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
> can simply test __GLIBC_USE (DEPRECATED_GETS). Then, instead of
> having a duplicate gets declaration in include/stdio.h,
> debug/tst-chk1.c and stdio-common/tst-gets.c force that flag on.
>
> Tested on x86-64-linux, OK to commit?
This cleanup looks good to me as long as you tested compiling with
installed headers and nothing obvious broke (it doesn't look like it would).
--
Cheers,
Carlos.