This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.24-567-g7699988
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 30 Dec 2016 13:42:04 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.24-567-g7699988
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 "GNU C Library master sources".
The branch, master has been updated
via 769998892d4f39d912fbe147eca9a3e89318cffc (commit)
from ef83c83a257226d470a939434c7193e2a1fd4f82 (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 -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=769998892d4f39d912fbe147eca9a3e89318cffc
commit 769998892d4f39d912fbe147eca9a3e89318cffc
Author: Joseph Myers <joseph@codesourcery.com>
Date: Fri Dec 30 13:41:40 2016 +0000
Define __intmax_t, __uintmax_t in bits/types.h.
TS 18661-1 defines *fromfp* functions, which are declared in math.h
and whose return types are intmax_t and uintmax_t, without allowing
math.h to define those typedefs. (This is similar to e.g. ISO C
declaring vprintf in stdio.h without allowing that header to define
va_list.) Thus, math.h needs to access those typedefs under internal
names.
This patch accordingly arranges for bits/types.h (which defines only
internal names, not public *_t typedefs) to define __intmax_t and
__uintmax_t. stdint.h is made to use bits/types.h and define intmax_t
and uintmax_t using __intmax_t and __uintmax_t, to avoid duplication
of information. (It would be reasonable to define more of the types
in stdint.h - and in sys/types.h, where it duplicates such types -
using information already available in bits/types.h.) The idea is
that the subsequent addition of fromfp functions would then make
math.h include bits/types.h and use __intmax_t and __uintmax_t as the
return types of those functions.
Tested for x86_64 and x86 (testsuite, and that installed stripped
shared libraries are unchanged by the patch).
* bits/types.h (__intmax_t): New typedef.
(__uintmax_t): Likewise.
* sysdeps/generic/stdint.h: Include <bits/types.h>.
(intmax_t): Define using __intmax_t.
(uintmax_t): Define using __uintmax_t.
diff --git a/ChangeLog b/ChangeLog
index ad20821..abb3696 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2016-12-30 Joseph Myers <joseph@codesourcery.com>
+ * bits/types.h (__intmax_t): New typedef.
+ (__uintmax_t): Likewise.
+ * sysdeps/generic/stdint.h: Include <bits/types.h>.
+ (intmax_t): Define using __intmax_t.
+ (uintmax_t): Define using __uintmax_t.
+
* support/Makefile (tests-special): Make definition conditional on
[$(run-built-tests) = yes].
($(objpfx)tst-support_record_failure-2.out): Make rule conditional
diff --git a/bits/types.h b/bits/types.h
index 01753bd..8c8fe9f 100644
--- a/bits/types.h
+++ b/bits/types.h
@@ -56,6 +56,15 @@ __extension__ typedef long long int __quad_t;
__extension__ typedef unsigned long long int __u_quad_t;
#endif
+/* Largest integral types. */
+#if __WORDSIZE == 64
+typedef long int __intmax_t;
+typedef unsigned long int __uintmax_t;
+#else
+__extension__ typedef long long int __intmax_t;
+__extension__ typedef unsigned long long int __uintmax_t;
+#endif
+
/* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
macros for each of the OS types we define below. The definitions
diff --git a/sysdeps/generic/stdint.h b/sysdeps/generic/stdint.h
index 8e4347c..4db6e1c 100644
--- a/sysdeps/generic/stdint.h
+++ b/sysdeps/generic/stdint.h
@@ -24,6 +24,7 @@
#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
#include <bits/libc-header-start.h>
+#include <bits/types.h>
#include <bits/wchar.h>
#include <bits/wordsize.h>
@@ -131,15 +132,8 @@ typedef unsigned int uintptr_t;
/* Largest integral types. */
-#if __WORDSIZE == 64
-typedef long int intmax_t;
-typedef unsigned long int uintmax_t;
-#else
-__extension__
-typedef long long int intmax_t;
-__extension__
-typedef unsigned long long int uintmax_t;
-#endif
+typedef __intmax_t intmax_t;
+typedef __uintmax_t uintmax_t;
# if __WORDSIZE == 64
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
bits/types.h | 9 +++++++++
sysdeps/generic/stdint.h | 12 +++---------
3 files changed, 18 insertions(+), 9 deletions(-)
hooks/post-receive
--
GNU C Library master sources