Skip to content

Instantly share code, notes, and snippets.

@sptndc
Last active March 17, 2026 14:49
Show Gist options
  • Select an option

  • Save sptndc/ee67db7a37896bfb3fcd8b3a3666dd9c to your computer and use it in GitHub Desktop.

Select an option

Save sptndc/ee67db7a37896bfb3fcd8b3a3666dd9c to your computer and use it in GitHub Desktop.
Homebrew GnuTLS v3.8.12 fixes a patch on macOS 12.7.6
diff --git a/lib/crau/crau.h b/lib/crau/crau.h
index 53d33555b..0d4f9f13e 100644
--- a/lib/crau/crau.h
+++ b/lib/crau/crau.h
@@ -251,10 +251,9 @@ void crau_data(struct crau_context_stack_st *stack, ...)
# else
# ifndef CRAU_MAYBE_UNUSED
-# if defined(__has_c_attribute)
-# if __has_c_attribute (__maybe_unused__)
-# define CRAU_MAYBE_UNUSED [[__maybe_unused__]]
-# endif
+# if defined(__has_c_attribute) && \
+ __has_c_attribute (__maybe_unused__)
+# define CRAU_MAYBE_UNUSED [[__maybe_unused__]]
# elif defined(__GNUC__)
# define CRAU_MAYBE_UNUSED __attribute__((__unused__))
# endif
@Kizuna-Meraki
Copy link
Copy Markdown

I also appreciate your fix! I'm on MacOS 13.7.8 as well. I was upgrading from gnutls 3.8.11_1 to gnutils 3.8.12. I followed your instructions above and it worked like a charm. THANK You!

The error I got:

/Users/username/Library/Logs/Homebrew/gnutls/02.make.log

In file included from ./audit.h:22:
./crau/crau.h:263:60: error: expected ')'
void crau_push_context(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:263:23: note: to match this '('
void crau_push_context(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:263:6: error: conflicting types for 'crau_push_context'
void crau_push_context(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:86:6: note: previous declaration is here
void crau_push_context(struct crau_context_stack_st *stack,
^
./crau/crau.h:269:54: error: expected ')'
crau_pop_context(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED)
^
./crau/crau.h:269:17: note: to match this '('
crau_pop_context(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED)
^
./crau/crau.h:275:58: error: expected ')'
crau_current_context(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED)
^
./crau/crau.h:275:21: note: to match this '('
crau_current_context(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED)
^
./crau/crau.h:280:71: error: expected ')'
void crau_push_context_with_datav(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:280:34: note: to match this '('
void crau_push_context_with_datav(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:280:6: error: conflicting types for 'crau_push_context_with_datav'
void crau_push_context_with_datav(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:109:6: note: previous declaration is here
void crau_push_context_with_datav(struct crau_context_stack_st *stack,
^
./crau/crau.h:286:70: error: expected ')'
void crau_push_context_with_data(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:286:33: note: to match this '('
void crau_push_context_with_data(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:286:6: error: conflicting types for 'crau_push_context_with_data'
void crau_push_context_with_data(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:106:6: note: previous declaration is here
void crau_push_context_with_data(struct crau_context_stack_st *stack,
^
./crau/crau.h:291:53: error: expected ')'
void crau_datav(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:291:16: note: to match this '('
void crau_datav(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:291:6: error: conflicting types for 'crau_datav'
void crau_datav(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED,
^
./crau/crau.h:140:6: note: previous declaration is here
void crau_datav(struct crau_context_stack_st *stack, va_list ap);
^
./crau/crau.h:296:52: error: expected ')'
void crau_data(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED, ...)
^
./crau/crau.h:296:15: note: to match this '('
void crau_data(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED, ...)
^
./crau/crau.h:296:6: error: conflicting types for 'crau_data'
void crau_data(struct crau_context_stack_st *stack CRAU_MAYBE_UNUSED, ...)
^
./crau/crau.h:138:6: note: previous declaration is here
void crau_data(struct crau_context_stack_st *stack, ...);
^
12 errors generated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment