git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/2] Fix syntax errors under clang 11.0.0 on MacOS

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Oct 7, 2022, 11:02 UTC
Message-ID
<221007.861qrjriul.gmgdl@evledraar.gmail.com>
In-Reply-To
<pull.1375.git.1665085395.gitgitgadget@gmail.com>
On Thu, Oct 06 2022, Jeff Hostetler via GitGitGadget wrote:
Show 9 quoted lines
> This patch series fixes three syntax errors that caused compiler errors with
> clang 11.0.0 on MacOS. I've included the error/warning messages in the
> commit messages. The offending statements did compile successfully under
> clang 14.0.0 on MacOS, so I have to assume that this usage is newer than
> what clang 11 supports.
>
> I originally sent these changes in my "Trace2 timers and cleanup and some
> cleanup" series on Tuesday, but pulled them into a separate series based on
> feedback. I'll omit them from the trace2 series in the next version.
The expanded commit messages really help, thanks :)

So, to summarize, these don't fix compiler errors, but warnings, but of course they're errors with DEVELOPER=1.

We already squash these for an older GCC, per the discussion at [1]. I
think we should just replace this series with something like (untested
on OSX, but it's just copy/pasting a template above it).
	
	diff --git a/config.mak.dev b/config.mak.dev
	index 4fa19d361b7..9b7bccd154c 100644
	--- a/config.mak.dev
	+++ b/config.mak.dev
	@@ -69,6 +69,14 @@ DEVELOPER_CFLAGS += -Wno-missing-braces
	 endif
	 endif
	 
	+ifeq ($(uname_S),Darwin)
	+ifneq ($(filter clang10,$(COMPILER_FEATURES)),)
	+ifeq ($(filter clang11,$(COMPILER_FEATURES)),)
	+DEVELOPER_CFLAGS += -Wno-missing-braces
	+endif
	+endif
	+endif
	+
	 # https://bugzilla.redhat.com/show_bug.cgi?id=2075786
	 ifneq ($(filter gcc12,$(COMPILER_FEATURES)),)
	 DEVELOPER_CFLAGS += -Wno-error=stringop-overread
	
Or, we can just say that for a <= clang v13 we'll use
-Wno-missing-braces, per:
 * The comment from René at
   http://lore.kernel.org/git/36cd156b-edb2-062c-9422-bf39aad39a6d@web.de
   that older vanilla clang is affected.
 * You having tested Apple clang v14, but not clang v12..v13.
I.e. to emit the whole uname_S bit.

I think it's not important that we try really hard to opt a given compiler into some maximum set of warnings, we generally want to catch most things here. As long as some compiler (particularly if it's in CI) still covers these we should be good.

1. https://lore.kernel.org/git/220712.864jzm65mk.gmgdl@evledraar.gmail.com/
Previous: Eric SunshineNext: Jeff Hostetler
Message 9 of 21 in “Fix syntax errors under clang 11.0.0 on MacOS”
  1. 0/2 Fix syntax errors under clang 11.0.0 on MacOSJeff Hostetler via GitGitGadget, Oct 6, 2022
  2. 1/2 builtin/merge-file: fix compiler error on MacOS with clang 11.0.0Jeff Hostetler via GitGitGadget, Oct 6, 2022
  3. René ScharfeOct 6, 2022
  4. Eric SunshineOct 6, 2022
  5. Junio C HamanoOct 6, 2022
  6. 2/2 builtin/unpack-objects.c: fix compiler error on MacOS with clang 11.0.0Jeff Hostetler via GitGitGadget, Oct 6, 2022
  7. Junio C HamanoOct 6, 2022
  8. Eric SunshineOct 6, 2022
  9. Ævar Arnfjörð BjarmasonOct 7, 2022
  10. Jeff HostetlerOct 7, 2022
  11. Junio C HamanoOct 7, 2022
  12. René ScharfeOct 7, 2022
  13. Jeff HostetlerOct 7, 2022
  14. Junio C HamanoOct 7, 2022
  15. Eric SunshineOct 8, 2022
  16. René ScharfeOct 8, 2022
  17. Junio C HamanoOct 9, 2022
  18. Junio C HamanoOct 7, 2022
  19. config.mak.dev: disable suggest braces error on old clang versionsJeff Hostetler via GitGitGadget, Oct 10, 2022
  20. Junio C HamanoOct 10, 2022
  21. Junio C HamanoOct 11, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.