From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: "brian m. carlson" <sandals@crustytoothpaste.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 1/1] git-compat-util: add a test balloon for C99 support
Date: Mon, 15 Nov 2021 02:14:42 +0100 [thread overview]
Message-ID: <211115.86v90urz21.gmgdl@evledraar.gmail.com> (raw)
In-Reply-To: <20211114212437.1466695-2-sandals@crustytoothpaste.net>
On Sun, Nov 14 2021, brian m. carlson wrote:
> The C99 standard was released in January 1999, now 22 years ago. It
> provides a variety of useful features, including variadic arguments for
> macros, declarations after statements, variable length arrays, and a
> wide variety of other useful features, many of which we already use.
>
> We'd like to take advantage of these features, but we want to be
> cautious. As far as we know, all major compilers now support C99 or a
> later C standard, such as C11 or C17. POSIX has required C99 support as
> a requirement for the 2001 revision, so we can safely assume any POSIX
> system which we are interested in supporting has C99.
I like this direction.
> Sparse is also updated with a reference to the gnu99 standard, without
> which it defaults to C89.
Do we really need it in SPARSE_FLAGS though...
> @@ -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
> LDFLAGS =
> CC_LD_DYNPATH = -Wl,-rpath,
> BASIC_CFLAGS = -I.
> @@ -1215,7 +1215,7 @@ ARFLAGS = rcs
> PTHREAD_CFLAGS =
Since $(CFLAGS) ends up in:
ALL_CFLAGS = $(DEVELOPER_CFLAGS) $(CPPFLAGS) $(CFLAGS)
...
> # For the 'sparse' target
> -SPARSE_FLAGS ?=
> +SPARSE_FLAGS ?= -std=gnu99
> SP_EXTRA_FLAGS = -Wno-universal-initializer
... and this will be used for this rule:
$(SP_OBJ): %.sp: %.c %.o
$(QUIET_SP)cgcc -no-compile $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) \
-Wsparse-error \
$(SPARSE_FLAGS) $(SP_EXTRA_FLAGS) $< [...]
I.e. unless it needs to be later on the command-line the $(ALL_CFLAGS)
should put it there already.
Also (and this pre-dates this patch) it's unfortunate that CFLAGS is a
mixed bag of compiler tweaking and "mandatory" flags. I think the below
would be a better approach, particurly since our own config.mak.uname
will override CFLAGS in some cases, and probably everyone who works on
git to any degree has a local config.mak which sets it to something
already.
But why gnu99 and not c99?
diff --git a/Makefile b/Makefile
index 12be39ac497..7470d627165 100644
--- a/Makefile
+++ b/Makefile
@@ -1204,10 +1204,14 @@ 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.
+#
+# The MANDATORY_CFLAGS can be similarly overridden, but really
+# shouldn't.
CFLAGS = -g -O2 -Wall
LDFLAGS =
CC_LD_DYNPATH = -Wl,-rpath,
-BASIC_CFLAGS = -I.
+BASIC_CFLAGS =
+MANDATORY_CFLAGS = -I. -std=gnu99
BASIC_LDFLAGS =
# library flags
@@ -1249,7 +1253,7 @@ ALL_COMMANDS_TO_INSTALL += git-upload-archive$(X)
ALL_COMMANDS_TO_INSTALL += git-upload-pack$(X)
endif
-ALL_CFLAGS = $(DEVELOPER_CFLAGS) $(CPPFLAGS) $(CFLAGS)
+ALL_CFLAGS = $(DEVELOPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) $(MANDATORY_CFLAGS)
ALL_LDFLAGS = $(LDFLAGS)
comma := ,
next prev parent reply other threads:[~2021-11-15 1:24 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
2021-11-14 21:43 ` [PATCH 0/1] Add a test balloon for C99 brian m. carlson
2021-11-15 7:00 ` Junio C Hamano
2021-11-15 22:41 ` brian m. carlson
2021-11-16 19:02 ` Junio C Hamano
2021-11-17 1:51 ` brian m. carlson
2021-11-16 2:12 ` [PATCH v2 0/1] Add a test balloon for C99 support brian m. carlson
2021-11-16 2:12 ` [PATCH v2 1/1] git-compat-util: add " brian m. carlson
2021-11-16 12:19 ` Jeff King
2021-11-16 12:54 ` Ævar Arnfjörð Bjarmason
2021-11-16 14:54 ` Jeff King
2021-11-17 2:53 ` brian m. carlson
2021-11-17 3:01 ` Jeff King
2021-11-17 23:18 ` brian m. carlson
2021-11-17 23:45 ` Carlo Arenas
2021-11-18 2:26 ` Ævar Arnfjörð Bjarmason
2021-11-18 19:10 ` Junio C Hamano
2021-11-17 8:49 ` Junio C Hamano
2021-11-16 19:44 ` Phillip Wood
2021-11-17 1:44 ` brian m. carlson
2021-11-17 2:58 ` Jeff King
2021-11-30 20:43 ` Microsoft's C language policy (was: [PATCH 0/1] Add a test balloon for C99) Ævar Arnfjörð Bjarmason
2021-11-30 22:37 ` brian m. carlson
2021-12-01 1:40 ` [PATCH v3 0/1] Add a test balloon for C99 support brian m. carlson
2021-12-01 1:40 ` [PATCH v3 1/1] git-compat-util: add " brian m. carlson
2021-12-02 17:38 ` Johannes Schindelin
[not found] <20211114211622.1465981-1-sandals@crustytoothpaste.net>
[not found] ` <20211114211622.1465981-2-sandals@crustytoothpaste.net>
2021-11-16 10:30 ` [PATCH " 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
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
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=211115.86v90urz21.gmgdl@evledraar.gmail.com \
--to=avarab@gmail.com \
--cc=git@vger.kernel.org \
--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).