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

Re: [PATCH] reftable: make REFTABLE_UNUSED C99 compatible

From
Patrick Steinhardt <ps@pks.im>
Date
May 30, 2025, 05:35 UTC
Message-ID
<aDlDtbUcX5NA8wCK@pks.im>
In-Reply-To
<xmqqtt53l7cl.fsf@gitster.g>
On Thu, May 29, 2025 at 09:17:14AM -0700, Junio C Hamano wrote:
Show 48 quoted lines
> Carlo Marcelo Arenas Belón <carenas@gmail.com> writes:
> 
> > Since f93b2a0424 (reftable/basics: introduce `REFTABLE_UNUSED`
> > annotation, 2025-02-18), the reftable library was migrated to
> > use an internal version of `UNUSED`, which unconditionally sets
> > a GNU __attribute__ to avoid warnings function parameters that
> > are not being used.
> >
> > Make the definition conditional to prevent breaking the build
> > with non GNU compilers.
> 
> Quite a reasonable reasoning.
> 
> > Reported-by: "Randall S. Becker" <rsbecker@nexbridge.com>
> > Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
> > ---
> >  reftable/basics.h | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/reftable/basics.h b/reftable/basics.h
> > index d8888c1262..7d22f96261 100644
> > --- a/reftable/basics.h
> > +++ b/reftable/basics.h
> > @@ -16,7 +16,11 @@
> >  #include "system.h"
> >  #include "reftable-basics.h"
> >  
> > +#ifdef __GNUC__
> >  #define REFTABLE_UNUSED __attribute__((__unused__))
> > +#else
> > +#define REFTABLE_UNUSED
> > +#endif
> 
> Corresponding definition we use in the main part of the project
> defined in compat/posix.h looks like this:
> 
>         #if GIT_GNUC_PREREQ(4, 5)
>         #define UNUSED __attribute__((unused)) \
>                 __attribute__((deprecated ("parameter declared as UNUSED")))
>         #elif defined(__GNUC__)
>         #define UNUSED __attribute__((unused)) \
>                 __attribute__((deprecated))
>         #else
>         #define UNUSED
>         #endif
> 
> GCC 4.5 or older may no longer be relevant, in which case yours may
> be good enough.

What I don't understand though: we have a `MAYBE_UNUSED` macro that has the exact same definition in "git-compat-util.h". Why does the macro cause issues in the reftable library, but not over there?

Patrick
Previous: Junio C HamanoNext: Jeff King
Message 6 of 13 in “Build Failure: Git 2.50.0-rc0 on NonStop”
  1. rsbecker@nexbridge.comMay 28, 2025
  2. reftable: make REFTABLE_UNUSED C99 compatibleCarlo Marcelo Arenas Belón, May 29, 2025
  3. Junio C HamanoMay 29, 2025
  4. brian m. carlsonMay 29, 2025
  5. Junio C HamanoMay 30, 2025
  6. Patrick SteinhardtMay 30, 2025
  7. Jeff KingMay 30, 2025
  8. Patrick SteinhardtMay 30, 2025
  9. Junio C HamanoMay 30, 2025
  10. [Bug] Build Failure: Git 2.50.0-rc0 on NonStoprsbecker@nexbridge.com, May 30, 2025
  11. Kristoffer HaugsbakkMay 30, 2025
  12. Patrick SteinhardtMay 30, 2025
  13. rsbecker@nexbridge.comJun 1, 2025

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.