+2017-05-04 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21455]
+ * bits/stdint-intn.h: New file.
+ * bits/stdint-uintn.h: Likewise.
+ * stdlib/Makefile (headers): Add bits/stdint-intn.h and
+ bits/stdint-uintn.h.
+ * inet/netinet/in.h: Include <bits/stdint-uintn.h> instead of
+ <stdint.h>.
+ * posix/sys/types.h: Include <bits/stdint-intn.h>.
+ (__int8_t_defined): Do not define here.
+ (int8_t): Likewise.
+ (int16_t): Likewise.
+ (int32_t): Likewise.
+ (int64_t): Likewise.
+ [__GNUC_PREREQ (2, 7)] (__intN_t): Likewise.
+ * resolv/netdb.h: Include <bits/stdint-uintn.h> instead of
+ <stdint.h>.
+ * include/netdb.h [_ISOMAC]: Do not include <stdint.h>.
+ * sysdeps/generic/stdint.h: Include <bits/stdint-intn.h> and
+ <bits/stdint-uintn.h>.
+ (int8_t): Do not define here.
+ (int16_t): Likewise.
+ (int32_t): Likewise.
+ (int64_t): Likewise.
+ (uint8_t): Likewise.
+ (uint16_t): Likewise.
+ (uint32_t): Likewise.
+ (uint64_t): Likewise.
+ * conform/Makefile (test-xfail-XPG42/arpa/inet.h/conform): Remove
+ variable.
+ (test-xfail-XPG42/netdb.h/conform): Likewise.
+ (test-xfail-XPG42/netinet/in.h/conform): Likewise.
+ (test-xfail-UNIX98/arpa/inet.h/conform): Likewise.
+ (test-xfail-UNIX98/netdb.h/conform): Likewise.
+ (test-xfail-UNIX98/netinet/in.h/conform): Likewise.
+
2017-05-04 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
* sysdeps/generic/math_private.h (mathx_hidden_def): New macro.
--- /dev/null
+/* Define intN_t types.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_STDINT_INTN_H
+#define _BITS_STDINT_INTN_H 1
+
+#include <bits/types.h>
+
+typedef __int8_t int8_t;
+typedef __int16_t int16_t;
+typedef __int32_t int32_t;
+typedef __int64_t int64_t;
+
+#endif /* bits/stdint-intn.h */
--- /dev/null
+/* Define uintN_t types.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_STDINT_UINTN_H
+#define _BITS_STDINT_UINTN_H 1
+
+#include <bits/types.h>
+
+typedef __uint8_t uint8_t;
+typedef __uint16_t uint16_t;
+typedef __uint32_t uint32_t;
+typedef __uint64_t uint64_t;
+
+#endif /* bits/stdint-uintn.h */
# Unsorted expected failures.
test-xfail-XPG4/signal.h/conform = yes
test-xfail-XPG4/sys/wait.h/conform = yes
-test-xfail-XPG42/arpa/inet.h/conform = yes
-test-xfail-XPG42/netdb.h/conform = yes
-test-xfail-XPG42/netinet/in.h/conform = yes
test-xfail-XPG42/signal.h/conform = yes
test-xfail-XPG42/sys/wait.h/conform = yes
test-xfail-XPG42/ucontext.h/conform = yes
test-xfail-POSIX/sys/wait.h/conform = yes
-test-xfail-UNIX98/arpa/inet.h/conform = yes
-test-xfail-UNIX98/netdb.h/conform = yes
-test-xfail-UNIX98/netinet/in.h/conform = yes
test-xfail-UNIX98/signal.h/conform = yes
test-xfail-UNIX98/sys/wait.h/conform = yes
test-xfail-UNIX98/ucontext.h/conform = yes
#ifndef _NETDB_H
#include <resolv/netdb.h>
-#include <stdint.h>
#ifndef _ISOMAC
+# include <stdint.h>
/* Macros for accessing h_errno from inside libc. */
# if IS_IN_LIB
# undef h_errno
#define _NETINET_IN_H 1
#include <features.h>
-#include <stdint.h>
+#include <bits/stdint-uintn.h>
#include <sys/socket.h>
#include <bits/types.h>
/* These size-specific names are used by some of the inet code. */
-#if !__GNUC_PREREQ (2, 7)
+#include <bits/stdint-intn.h>
-/* These types are defined by the ISO C99 header <inttypes.h>. */
-# ifndef __int8_t_defined
-# define __int8_t_defined
-typedef char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-# if __WORDSIZE == 64
-typedef long int int64_t;
-# else
-__extension__ typedef long long int int64_t;
-# endif
-# endif
+#if !__GNUC_PREREQ (2, 7)
-/* But these were defined by ISO C without the first `_'. */
+/* These were defined by ISO C without the first `_'. */
typedef unsigned char u_int8_t;
typedef unsigned short int u_int16_t;
typedef unsigned int u_int32_t;
#else
/* For GCC 2.7 and later, we can use specific type-size attributes. */
-# define __intN_t(N, MODE) \
- typedef int int##N##_t __attribute__ ((__mode__ (MODE)))
# define __u_intN_t(N, MODE) \
typedef unsigned int u_int##N##_t __attribute__ ((__mode__ (MODE)))
-# ifndef __int8_t_defined
-# define __int8_t_defined
-__intN_t (8, __QI__);
-__intN_t (16, __HI__);
-__intN_t (32, __SI__);
-__intN_t (64, __DI__);
-# endif
-
__u_intN_t (8, __QI__);
__u_intN_t (16, __HI__);
__u_intN_t (32, __SI__);
#include <features.h>
#include <netinet/in.h>
-#include <stdint.h>
+#include <bits/stdint-uintn.h>
#ifdef __USE_MISC
/* This is necessary to make this include file properly replace the
Sun version. */
errno.h sys/errno.h bits/errno.h \
ucontext.h sys/ucontext.h \
alloca.h fmtmsg.h \
- bits/stdlib-bsearch.h sys/random.h
+ bits/stdlib-bsearch.h sys/random.h bits/stdint-intn.h \
+ bits/stdint-uintn.h
routines := \
atof atoi atol atoll \
/* Exact integral types. */
/* Signed. */
-
-/* There is some amount of overlap with <sys/types.h> as known by inet code */
-#ifndef __int8_t_defined
-# define __int8_t_defined
-typedef signed char int8_t;
-typedef short int int16_t;
-typedef int int32_t;
-# if __WORDSIZE == 64
-typedef long int int64_t;
-# else
-__extension__
-typedef long long int int64_t;
-# endif
-#endif
+#include <bits/stdint-intn.h>
/* Unsigned. */
-typedef unsigned char uint8_t;
-typedef unsigned short int uint16_t;
-#ifndef __uint32_t_defined
-typedef unsigned int uint32_t;
-# define __uint32_t_defined
-#endif
-#if __WORDSIZE == 64
-typedef unsigned long int uint64_t;
-#else
-__extension__
-typedef unsigned long long int uint64_t;
-#endif
+#include <bits/stdint-uintn.h>
/* Small types. */