git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"brian m. carlson" <sandals@crustytoothpaste.net>,
	git@vger.kernel.org,
	"Carlo Marcelo Arenas Belón" <carenas@gmail.com>,
	"Jeff King" <peff@peff.net>
Subject: Re: [PATCH 1/1] git-compat-util: add a test balloon for C99 support
Date: Mon, 22 Nov 2021 14:05:42 +0100	[thread overview]
Message-ID: <211122.86pmqsz66b.gmgdl@evledraar.gmail.com> (raw)
In-Reply-To: <nycvar.QRO.7.76.6.2111221242320.63@tvgsbejvaqbjf.bet>


On Mon, Nov 22 2021, Johannes Schindelin wrote:

> Hi Junio & brian,
>
> On Wed, 17 Nov 2021, Junio C Hamano wrote:
>
>> 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.

As noted in another reply I don't think this -std=* thing is worth it,
but this isn't so much a case of breakage with this patch in particular,
but revealing an existing issue of us implicitly requiring C11 on
FreeBSD.

Whether that's worth pursuing is another matter, but it's not some
inherent issue in this approach, but just a platform-specific nit we
could fix. Either by saying -std=c11 on that platform, or presumably
defining NO_LIBGEN_H if we wanted to proceed in lockstep with
C99-but-not-C11 everyhere.


  reply	other threads:[~2021-11-22 13:11 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20211114211622.1465981-1-sandals@crustytoothpaste.net>
     [not found] ` <20211114211622.1465981-2-sandals@crustytoothpaste.net>
2021-11-16 10:30   ` [PATCH 1/1] git-compat-util: add a test balloon for C99 support Johannes Schindelin
2021-11-17  8:29     ` Junio C Hamano
2021-11-22 11:44       ` Johannes Schindelin
2021-11-22 13:05         ` Ævar Arnfjörð Bjarmason [this message]
2021-11-22 17:27         ` Junio C Hamano
2021-11-22 17:52           ` Carlo Arenas
2021-11-22 18:58             ` Junio C Hamano
2021-11-22 20:52               ` Junio C Hamano
2021-11-22 22:03                 ` [PATCH 1/1] git-compat-util: add a test balloon for C99 supporty Johannes Schindelin
2021-11-22 22:10                   ` Junio C Hamano
2021-11-22 22:22                     ` Carlo Arenas
2021-11-23 12:32                     ` Johannes Schindelin
2021-11-23 20:17                       ` Junio C Hamano
2021-11-24 15:10                         ` brian m. carlson
2021-11-14 21:24 [PATCH 0/1] Add a test balloon for C99 brian m. carlson
2021-11-14 21:24 ` [PATCH 1/1] git-compat-util: add a test balloon for C99 support brian m. carlson
2021-11-15  1:14   ` Ævar Arnfjörð Bjarmason
2021-11-15  1:54     ` brian m. carlson
2021-11-15  3:16   ` Eric Sunshine
2021-11-16  1:53     ` brian m. carlson
2021-11-22 11:47   ` Johannes Schindelin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=211122.86pmqsz66b.gmgdl@evledraar.gmail.com \
    --to=avarab@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=carenas@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=sandals@crustytoothpaste.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).