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

Re: [PATCH] config.mak.dev: fix typo when enabling -Wpedantic

From
Taylor Blau <me@ttaylorr.com>
Date
Jul 6, 2024, 15:15 UTC
Message-ID
<Zolfn81ygqfw0iOK@nand.local>
In-Reply-To
<20240706063143.GE700645@coredump.intra.peff.net>
On Sat, Jul 06, 2024 at 02:31:43AM -0400, Jeff King wrote:
Show 21 quoted lines
> > Causing our Makefile (when invoked with DEVELOPER=1, and a sufficiently
> > recent compiler version) to barf:
> >
> >     $ make DEVELOPER=1
> >     config.mak.dev:13: extraneous text after 'ifneq' directive
> >     [...]
> >
> > Correctly combine the results of the two "$(filter ...)" operations by
> > using "$(or ...)", not "$or".
>
> ...why don't I see this error? Based on the bug, I think that we'll
> always pass -Wpedantic, even for old compilers (because our weird "or"
> will never be the empty string).
>
> So I could understand if the symptom was then that when you have an old
> compiler, we feed it -Wpedantic and it complains (though the fact that
> nobody noticed such a behavior makes me wonder if we even care about
> such old compilers now?).
>
> But why does make complain here only sometimes? Does it depend on the
> version of make?

It seems to depend on the version of make you're using. On my system, 'make' is GNU Make 4.4.90, which has the more restrictive checks around the recipe prefix in nested conditionals.

With that version (and the pre-image of this commit), I get:
    $ make -v | head -1 && make DEVELOPER=1 2>&1 | head -1
    GNU Make 4.4.90
    config.mak.dev:13: extraneous text after 'ifneq' directive

, but with /usr/bin/make (which on my machine is GNU Make 4.3), I instead get:

    $ /usr/bin/make -v | head -1 && /usr/bin/make DEVELOPER=1 2>&1 | head -1
    GNU Make 4.3
    GIT_VERSION = 2.45.2.746.g06e570c0df

I think other factors that might be at play here are (a) whether or not you have DEVOPTS=no-pedantic (in which case you'd bypass this entire part of config.mak.dev), and (b) whether or not you have a sufficiently recent compiler.

It is tempting to just want to rip out support for older compilers, but given that ebd2e4a13a (Makefile: restrict -Wpedantic and -Wno-pedantic-ms-format better, 2021-09-28) is only three years old, I imagine that some builders may still want support for older / pre-GCC 4 compilers.

Thanks, Taylor

Previous: Jeff KingNext: Taylor Blau
Message 4 of 6 in “config.mak.dev: fix typo when enabling -Wpedantic”
  1. config.mak.dev: fix typo when enabling -WpedanticTaylor Blau, Jul 5, 2024
  2. Elijah NewrenJul 5, 2024
  3. Jeff KingJul 6, 2024
  4. Taylor BlauJul 6, 2024
  5. Taylor BlauJul 6, 2024
  6. Jeff KingJul 6, 2024

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.