Re: [PATCH 1/1] git-compat-util: add a test balloon for C99 support
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Nov 22, 2021, 11:44 UTC
- Message-ID
- <nycvar.QRO.7.76.6.2111221242320.63@tvgsbejvaqbjf.bet>
- In-Reply-To
- <xmqqk0h7423v.fsf@gitster.g>
Hi Junio & brian,
On Wed, 17 Nov 2021, Junio C Hamano wrote:
Show 29 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > > >> Even MSVC, long a holdout against modern C, now supports both C11 and > >> C17 with an appropriate update. Moreover, even if people are using an > >> older version of MSVC on these systems, they will generally need some > >> implementation of the standard Unix utilities for the testsuite, and GNU > >> coreutils, the most common option, has required C99 since 2009. > >> Therefore, we can safely assume that a suitable version of GCC or clang > >> is available to users even if their version of MSVC is not sufficiently > >> capable. > > > > I am all in favor of this patch! > > I like the direction, but ... > > >> diff --git a/Makefile b/Makefile > >> index 12be39ac49..22d9e67542 100644 > >> --- a/Makefile > >> +++ b/Makefile > >> @@ -1204,7 +1204,7 @@ endif > >> # Set CFLAGS, LDFLAGS and other *FLAGS variables. These might be > >> # tweaked by config.* below as well as the command-line, both of > >> # which'll override these defaults. > >> -CFLAGS = -g -O2 -Wall > >> +CFLAGS = -g -O2 -Wall -std=gnu99 > > ... as has been already pointed out, this part probably should not > be there. It is not our intention to require gcc/clang, or to > constrain newer systems to gnu99.
Another data point in favor of dropping this: our FreeBSD CI build reports a compile error with this:
[...] archive.c:337:35: error: '_Generic' is a C11 extension [-Werror,-Wc11-extensions] strbuf_addstr(&path_in_archive, basename(path)); ^ /usr/include/libgen.h:61:21: note: expanded from macro 'basename' #define basename(x) __generic(x, const char *, __old_basename, basename)(x) ^ /usr/include/sys/cdefs.h:329:2: note: expanded from macro '__generic' _Generic(expr, t: yes, default: no) ^ 1 error generated.
I verified in https://github.com/gitgitgadget/git/pull/1082 that this patch is indeed the cause of this compile error.
Ciao, Dscho