From 195a10b512067f18c79da0b2184689bc5520517c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 23 Jan 2021 10:19:24 -0800 Subject: [PATCH] libc-config: port to Xcode 7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 + + 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 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.27.0