This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Main OpenOCD repository".
The branch, master has been updated
via 9ce6b0898e5c0b2d6b6928b93b18137fecd6a32d (commit)
from b6b4f9d46a48aadc1de6bb5152ff4913661c9059 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9ce6b0898e5c0b2d6b6928b93b18137fecd6a32d
Author: Antonio Borneo <bor...@gm...>
Date: Sun Mar 19 10:57:04 2023 +0100
helper/compiler: fix build on MacOS
On MacOS, clang defines [1]:
#define __nonnull _Nonnull
that creates incompatibility with GCC and with the macro __nonnull
defined in some libc.
Detect clang on MacOS and undefine __nonnull.
Change-Id: I64fcf51b102ea91c196e657debd8c267943a2b08
Signed-off-by: Antonio Borneo <bor...@gm...>
Links: [1] https://github.com/llvm/llvm-project/blob/llvmorg-16.0.0/clang/lib/Frontend/InitPreprocessor.cpp#L1226
Reviewed-on: https://review.openocd.org/c/openocd/+/7544
Tested-by: jenkins
diff --git a/src/helper/compiler.h b/src/helper/compiler.h
index 8f6c09950..33a075d64 100644
--- a/src/helper/compiler.h
+++ b/src/helper/compiler.h
@@ -32,7 +32,15 @@
/*
* The __nonnull function attribute marks pointer parameters that
* must not be NULL.
+ *
+ * clang for Apple defines
+ * #define __nonnull _Nonnull
+ * that is a per argument attribute, incompatible with the gcc per function attribute __nonnull__.
+ * Undefine it to keep compatibility among compilers.
*/
+#if defined(__clang__) && defined(__APPLE__)
+# undef __nonnull
+#endif
#ifndef __nonnull
# if __has_attribute(__nonnull__)
# define __nonnull(params) __attribute__ ((__nonnull__ params))
-----------------------------------------------------------------------
Summary of changes:
src/helper/compiler.h | 8 ++++++++
1 file changed, 8 insertions(+)
hooks/post-receive
--
Main OpenOCD repository
|