From 07a06aa8e8285c1bb06d0bebeaa9ad04eb76f2e2 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 3 Feb 2017 12:56:00 -0800
Subject: [PATCH] sync gcc stddef.h with musl

musl defines ptrdiff_t size_t and wchar_t
so dont define them here if musl is definining them

Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=85a438fc78dd12249ca854a3e5c577fefeb1a5cd]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 gcc/ginclude/stddef.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
index 66619fe43b1..3f843d6f365 100644
--- a/gcc/ginclude/stddef.h
+++ b/gcc/ginclude/stddef.h
@@ -128,6 +128,7 @@ _TYPE_wchar_t;
 #ifndef ___int_ptrdiff_t_h
 #ifndef _GCC_PTRDIFF_T
 #ifndef _PTRDIFF_T_DECLARED /* DragonFly */
+#ifndef __DEFINED_ptrdiff_t /* musl */
 #define _PTRDIFF_T
 #define _T_PTRDIFF_
 #define _T_PTRDIFF
@@ -137,10 +138,12 @@ _TYPE_wchar_t;
 #define ___int_ptrdiff_t_h
 #define _GCC_PTRDIFF_T
 #define _PTRDIFF_T_DECLARED
+#define __DEFINED_ptrdiff_t /* musl */
 #ifndef __PTRDIFF_TYPE__
 #define __PTRDIFF_TYPE__ long int
 #endif
 typedef __PTRDIFF_TYPE__ ptrdiff_t;
+#endif /* __DEFINED_ptrdiff_t */
 #endif /* _PTRDIFF_T_DECLARED */
 #endif /* _GCC_PTRDIFF_T */
 #endif /* ___int_ptrdiff_t_h */
@@ -178,6 +181,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
 #ifndef _GCC_SIZE_T
 #ifndef _SIZET_
 #ifndef __size_t
+#ifndef __DEFINED_size_t /* musl */
 #define __size_t__	/* BeOS */
 #define __SIZE_T__	/* Cray Unicos/Mk */
 #define _SIZE_T
@@ -194,6 +198,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
 #define ___int_size_t_h
 #define _GCC_SIZE_T
 #define _SIZET_
+#define __DEFINED_size_t /* musl */
 #if defined (__FreeBSD__) \
   || defined(__DragonFly__) \
   || defined(__FreeBSD_kernel__) \
@@ -228,6 +233,7 @@ typedef long ssize_t;
 #endif /* _SIZE_T */
 #endif /* __SIZE_T__ */
 #endif /* __size_t__ */
+#endif /* __DEFINED_size_t */
 #undef	__need_size_t
 #endif /* _STDDEF_H or __need_size_t.  */
 
@@ -257,6 +263,7 @@ typedef long ssize_t;
 #ifndef ___int_wchar_t_h
 #ifndef __INT_WCHAR_T_H
 #ifndef _GCC_WCHAR_T
+#ifndef __DEFINED_wchar_t /* musl */
 #define __wchar_t__	/* BeOS */
 #define __WCHAR_T__	/* Cray Unicos/Mk */
 #define _WCHAR_T
@@ -272,6 +279,7 @@ typedef long ssize_t;
 #define __INT_WCHAR_T_H
 #define _GCC_WCHAR_T
 #define _WCHAR_T_DECLARED
+#define __DEFINED_wchar_t /* musl */
 
 /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
    instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other
@@ -337,6 +345,7 @@ typedef __WCHAR_TYPE__ wchar_t;
 #endif
 #endif /* __WCHAR_T__ */
 #endif /* __wchar_t__ */
+#endif /* __DEFINED_wchar_t musl */
 #undef	__need_wchar_t
 #endif /* _STDDEF_H or __need_wchar_t.  */
 
