svn commit: r351659 - in head: contrib/libc++/include contrib/netbsd-tests/lib/libc/ssp gnu/lib/libssp include lib/libc/stdio

Bruce Evans brde at optusnet.com.au
Fri Sep 13 11:59:58 UTC 2019


On Sun, 1 Sep 2019, Cy Schubert wrote:

I'm replying to this reply since I lost the original mail.

> In message <201909011612.x81GC5DW097846 at repo.freebsd.org>, Ed Maste writes:
>> Author: emaste
>> Date: Sun Sep  1 16:12:05 2019
>> New Revision: 351659
>> URL: https://svnweb.freebsd.org/changeset/base/351659
>>
>> Log:
>>   libc: remove gets
>>
>>   gets is unsafe and shouldn't be used (for many years now).  Leave it in
>>   the existing symbol version so anything that previously linked aginst it
>>   still runs, but do not allow new software to link against it.
>>
>>   (The compatability/legacy implementation must not be static so that
>>   the symbol and in particular the compat sym gets at FBSD_1.0 make it
>>   into libc.)
>>
>>   PR:		222796 (exp-run)
>>   Reported by:	Paul Vixie
>>   Reviewed by:	allanjude, cy, eadler, gnn, jhb, kib, ngie (some earlie
>> r)
>>   Relnotes:	Yes
>>   Sponsored by:	The FreeBSD Foundation
>>   Differential Revision:	https://reviews.freebsd.org/D12298

This breaks <stdio.h> for most old standards, and bogotitifies the ifdefs
that attempt to support old standards.  <stdio.h> used to be more careful
with these ifdefs than most system headers.

C11 removed gets(), but POSIX.1-2017 (Issue 7) still has it (marked as
obsolescent).  Thus this change breaks support for all versions of POSIX.

Bruce


More information about the svn-src-head mailing list