All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Shardul Natu via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Shnatu <snatu@google.com>
Subject: [PATCH] config.mak.dev: suppress C11 extension warning for Clang on Linux
Date: Thu, 07 May 2026 02:16:32 +0000	[thread overview]
Message-ID: <pull.2291.git.git.1778120192298.gitgitgadget@gmail.com> (raw)

From: Shnatu <snatu@google.com>

When building Git with Clang on Linux with DEVELOPER=1, the build fails
because Clang treats C11 features used in glibc headers as extensions
and raises errors due to -std=gnu99, -pedantic, and -Werror.

Specifically, glibc's string.h uses _Generic (a C11 feature) in macros
like strchr. When these macros are expanded in Git's C files, Clang
warns about them being C11 extensions.

GCC does not exhibit this behavior because it suppresses pedantic
warnings for macros defined in system headers.

To fix this, add -Wno-c11-extensions to DEVELOPER_CFLAGS when using
Clang, but restrict it to Linux (uname_S == Linux). This suppresses
the warning for glibc headers while keeping the build strict on other
platforms (like macOS) to catch accidental C11 usage in Git's own code.

Signed-off-by: Shnatu <snatu@google.com>
---
    config.mak.dev: suppress C11 extension warning for Clang on Linux

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2291%2Fkiranani%2Fnext-2-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2291/kiranani/next-2-v1
Pull-Request: https://github.com/git/git/pull/2291

 config.mak.dev | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/config.mak.dev b/config.mak.dev
index c8dcf78779..f1dcf4329a 100644
--- a/config.mak.dev
+++ b/config.mak.dev
@@ -87,6 +87,9 @@ endif
 # The bug was fixed in Apple clang 12.
 #
 ifneq ($(filter clang1,$(COMPILER_FEATURES)),)     # if we are using clang
+ifeq ($(uname_S),Linux)
+DEVELOPER_CFLAGS += -Wno-c11-extensions
+endif
 ifeq ($(uname_S),Darwin)                           # if we are on darwin
 ifeq ($(filter clang12,$(COMPILER_FEATURES)),)     # if version < 12
 DEVELOPER_CFLAGS += -Wno-missing-braces

base-commit: 4f69b47b940100b02630f745a52f9d9850f122b2
-- 
gitgitgadget

             reply	other threads:[~2026-05-07  2:16 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-07  2:16 Shardul Natu via GitGitGadget [this message]
2026-05-07 10:07 ` [PATCH] config.mak.dev: suppress C11 extension warning for Clang on Linux Pablo
2026-05-10 22:21   ` 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

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

  git send-email \
    --in-reply-to=pull.2291.git.git.1778120192298.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=snatu@google.com \
    /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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.