bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] libc-config: port to Xcode 7


From: Paul Eggert
Subject: [PATCH] libc-config: port to Xcode 7
Date: Sat, 23 Jan 2021 11:23:14 -0800

Problem reported by Mattias Engdegård in:
https://lists.gnu.org/r/emacs-devel/2021-01/msg01089.html
* lib/cdefs.h (__nonnull): If already defined but glibc is not in
use, override the definition with Gnulib’s _GL_ATTRIBUTE_NONNULL.
This is needed for Xcode 7, which has a ‘#define __nonnull
_Nonnull’ builtin for backwards-compatibility with an older Xcode
syntax that GNUish code never uses.
---
 ChangeLog   | 11 +++++++++++
 lib/cdefs.h |  6 ++++--
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b1b81353e..43d1a1671 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2021-01-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       libc-config: port to Xcode 7
+       Problem reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2021-01/msg01089.html
+       * lib/cdefs.h (__nonnull): If already defined but glibc is not in
+       use, override the definition with Gnulib’s _GL_ATTRIBUTE_NONNULL.
+       This is needed for Xcode 7, which has a ‘#define __nonnull
+       _Nonnull’ builtin for backwards-compatibility with an older Xcode
+       syntax that GNUish code never uses.
+
 2021-01-23  Bastien Roucariès  <rouca@debian.org>
 
        explicit_bzero: Add fallback for other compilers.
diff --git a/lib/cdefs.h b/lib/cdefs.h
index 060a3d068..6f12c79da 100644
--- a/lib/cdefs.h
+++ b/lib/cdefs.h
@@ -320,14 +320,16 @@
 #endif
 
 /* The nonnull function attribute marks pointer parameters that
-   must not be NULL.  Do not define __nonnull if it is already defined,
-   for portability when this file is used in Gnulib.  */
+   must not be NULL.  */
 #ifndef __nonnull
 # if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__)
 #  define __nonnull(params) __attribute__ ((__nonnull__ params))
 # else
 #  define __nonnull(params)
 # endif
+#elif !defined __GLIBC__
+# undef __nonnull
+# define __nonnull(params) _GL_ATTRIBUTE_NONNULL (params)
 #endif
 
 /* If fortification mode, we warn about unused results of certain
-- 
2.29.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]