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
Junio C Hamano <gitster@pobox.com>
Date
Oct 7, 2022, 21:30 UTC
Message-ID
<xmqqy1trcof1.fsf@gitster.g>
In-Reply-To
<ec920650-4334-a6f2-6d6f-241899dd79ec@web.de>
René Scharfe <l.s.r@web.de> writes:
Show 14 quoted lines
> Perhaps like this?  (No sign-off because I'm not comfortable with that
> make function syntax, but feel free to steal salvageable parts.)
>
> diff --git a/config.mak.dev b/config.mak.dev
> index 4fa19d361b..4d59c9044f 100644
> --- a/config.mak.dev
> +++ b/config.mak.dev
> @@ -69,6 +69,14 @@ DEVELOPER_CFLAGS += -Wno-missing-braces
>  endif
>  endif
>
> +# LLVM clang older than 9 and Apple clang older than 12 complain
> +# about initializing a struct-within-a-struct using just "{ 0 }"
> +ifneq ($(filter clang1,$(COMPILER_FEATURES)),)

If it is any version of clang, detect-compiler script should give us at last "clang1" in $(COMPILER_FEATURES), and filtering the latter with "clang1" should become "clang1" which should be neq. We fail the ifneq if the compiler is not llvm and do not come into this part.

> +ifeq ($(filter $(if $(filter Darwin,$(uname_S)),clang12,clang9),$(COMPILER_FEATURES)),)

On Darwin, $(uname_S) is Darwin and filtering the $(uname_S) with Darwin will leave Darwin as the "condition" parameter to $(if). So $(if) evaluates to clang12 on Darwin and clang9 everywhere else. If $(COMPILER_FEATURES) lacks that cut-off version, that means we are using clang older than 12 (on macOS) or 9 (everywhere else) and we come inside this block ...

> +DEVELOPER_CFLAGS += -Wno-missing-braces
... which adds this workaround.
> +endif
> +endif
OK. That is dense, but sounds correct.
Previous: Junio C HamanoNext: Jeff Hostetler via GitGitGadget
Message 18 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.