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.26.9000-808-g754034c
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 22 Nov 2017 22:21:31 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.26.9000-808-g754034c
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 754034c4292ba6824ef357258308e6bafa6e0dfd (commit)
from f120cda6072d830df92656dad0c89967547b97dc (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=754034c4292ba6824ef357258308e6bafa6e0dfd
commit 754034c4292ba6824ef357258308e6bafa6e0dfd
Author: Joseph Myers <joseph@codesourcery.com>
Date: Wed Nov 22 22:21:10 2017 +0000
Obsolete p_secstodate.
This patch, relative to a tree with
<https://sourceware.org/ml/libc-alpha/2017-11/msg00797.html> (pending
review) applied, obsoletes p_secstodate, making the underlying
function __p_secstodate into a compat symbol not available for new
binaries or ports. The calls in ns_print.c (part of incomplete
handling of TKEY) are changed to use %lu to print times instead of
trying to pretty-print the times any more.
Tested for x86_64.
* resolv/res_debug.c (p_secstodate): Condition definition on
[SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)]. Define
directly as __p_secstodate, and as a compat symbol. Do not use
libresolv_hidden_def.
* resolv/resolv.h (p_secstodate): Remove macro and function
declaration.
* resolv/ns_print.c (ns_sprintrrf): Print times with %lu, not
using p_secstodate.
* include/resolv.h (__p_secstodate): Do not use
libresolv_hidden_proto.
* resolv/Makefile (tests): Move tst-p_secstodate to ....
(tests-internal): ... here.
* resolv/tst-p_secstodate.c: Include <shlib-compat.h>. Condition
all contents on [TEST_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)]
and declare and use __p_secstodate and use compat_symbol_reference
in that case.
[!TEST_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)] (do_test): Add
implementation returning 77.
diff --git a/ChangeLog b/ChangeLog
index ba239a4..1598052 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,24 @@
2017-11-22 Joseph Myers <joseph@codesourcery.com>
+ * resolv/res_debug.c (p_secstodate): Condition definition on
+ [SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)]. Define
+ directly as __p_secstodate, and as a compat symbol. Do not use
+ libresolv_hidden_def.
+ * resolv/resolv.h (p_secstodate): Remove macro and function
+ declaration.
+ * resolv/ns_print.c (ns_sprintrrf): Print times with %lu, not
+ using p_secstodate.
+ * include/resolv.h (__p_secstodate): Do not use
+ libresolv_hidden_proto.
+ * resolv/Makefile (tests): Move tst-p_secstodate to ....
+ (tests-internal): ... here.
+ * resolv/tst-p_secstodate.c: Include <shlib-compat.h>. Condition
+ all contents on [TEST_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)]
+ and declare and use __p_secstodate and use compat_symbol_reference
+ in that case.
+ [!TEST_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)] (do_test): Add
+ implementation returning 77.
+
[BZ #22463]
* resolv/res_debug.c: Include <libc-diag.h>.
(p_secstodate): Assert time_t at least as wide as u_long. On
diff --git a/NEWS b/NEWS
index 1c5da21..30ff04e 100644
--- a/NEWS
+++ b/NEWS
@@ -66,6 +66,9 @@ Deprecated and removed features, and other changes affecting compatibility:
* In the malloc_info output, the <heap> element may contain another <aspace>
element, "subheaps", which contains the number of sub-heaps.
+* The libresolv function p_secstodate is no longer supported for new
+ programs.
+
Changes to build and runtime requirements:
[Add changes to build and runtime requirements here]
diff --git a/include/resolv.h b/include/resolv.h
index 634f552..daf4a74 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -65,7 +65,6 @@ libresolv_hidden_proto (__res_nameinquery)
libresolv_hidden_proto (__res_queriesmatch)
libresolv_hidden_proto (__b64_ntop)
libresolv_hidden_proto (__dn_count_labels)
-libresolv_hidden_proto (__p_secstodate)
# endif /* _RESOLV_H_ && !_ISOMAC */
#endif
diff --git a/resolv/Makefile b/resolv/Makefile
index aff6710..a98a84f 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -55,7 +55,6 @@ tests += \
tst-resolv-network \
tst-resolv-res_init-multi \
tst-resolv-search \
- tst-p_secstodate \
# These tests need libdl.
ifeq (yes,$(build-shared))
@@ -77,6 +76,9 @@ endif
# This test accesses __inet_ntop_length, an internal libc function.
tests-internal += tst-inet_pton
+# This test accesses the __p_secstodate compat symbol.
+tests-internal += tst-p_secstodate
+
# This test sends millions of packets and is rather slow.
xtests += tst-resolv-qtypes
diff --git a/resolv/ns_print.c b/resolv/ns_print.c
index f55680c..d61f504 100644
--- a/resolv/ns_print.c
+++ b/resolv/ns_print.c
@@ -488,12 +488,12 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
/* Inception. */
t = ns_get32(rdata); rdata += NS_INT32SZ;
- len = SPRINTF((tmp, "%s ", p_secstodate(t)));
+ len = SPRINTF((tmp, "%lu ", t));
T(addstr(tmp, len, &buf, &buflen));
/* Experation. */
t = ns_get32(rdata); rdata += NS_INT32SZ;
- len = SPRINTF((tmp, "%s ", p_secstodate(t)));
+ len = SPRINTF((tmp, "%lu ", t));
T(addstr(tmp, len, &buf, &buflen));
/* Mode , Error, Key Size. */
diff --git a/resolv/res_debug.c b/resolv/res_debug.c
index a4fbc56..7681ad4 100644
--- a/resolv/res_debug.c
+++ b/resolv/res_debug.c
@@ -1052,6 +1052,7 @@ dn_count_labels(const char *name) {
libresolv_hidden_def (__dn_count_labels)
+#if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)
/*
* Make dates expressed in seconds-since-Jan-1-1970 easy to read.
* SIG records are required to be printed like this, by the Secure DNS RFC.
@@ -1059,7 +1060,7 @@ libresolv_hidden_def (__dn_count_labels)
* signed 32-bit range.
*/
char *
-p_secstodate (u_long secs) {
+__p_secstodate (u_long secs) {
/* XXX nonreentrant */
static char output[15]; /* YYYYMMDDHHMMSS and null */
time_t clock = secs;
@@ -1084,13 +1085,14 @@ p_secstodate (u_long secs) {
that, even given range checks on all fields with
__builtin_unreachable called for out-of-range values. */
DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
+# if __GNUC_PREREQ (7, 0)
DIAG_IGNORE_NEEDS_COMMENT (8, "-Wformat-overflow=");
-#endif
+# endif
sprintf(output, "%04d%02d%02d%02d%02d%02d",
time->tm_year, time->tm_mon, time->tm_mday,
time->tm_hour, time->tm_min, time->tm_sec);
DIAG_POP_NEEDS_COMMENT;
return (output);
}
-libresolv_hidden_def (__p_secstodate)
+compat_symbol (libresolv, __p_secstodate, __p_secstodate, GLIBC_2_0);
+#endif
diff --git a/resolv/resolv.h b/resolv/resolv.h
index e8c581c..80a523e 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -213,7 +213,6 @@ __END_DECLS
#define p_fqname __p_fqname
#define p_fqnname __p_fqnname
#define p_option __p_option
-#define p_secstodate __p_secstodate
#define p_time __p_time
#define p_type __p_type
#define p_rcode __p_rcode
@@ -268,7 +267,6 @@ const unsigned char * p_fqnname (const unsigned char *__cp,
const unsigned char * p_fqname (const unsigned char *,
const unsigned char *, FILE *) __THROW;
const char * p_option (unsigned long __option) __THROW;
-char * p_secstodate (unsigned long) __THROW;
int dn_count_labels (const char *) __THROW;
int dn_comp (const char *, unsigned char *, int, unsigned char **,
unsigned char **) __THROW;
diff --git a/resolv/tst-p_secstodate.c b/resolv/tst-p_secstodate.c
index 9dac1ad..98e4d1f 100644
--- a/resolv/tst-p_secstodate.c
+++ b/resolv/tst-p_secstodate.c
@@ -1,4 +1,4 @@
-/* Test p_secstodate.
+/* Test __p_secstodate compat symbol.
Copyright (C) 2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -23,9 +23,16 @@
#include <stdio.h>
#include <string.h>
+#include <shlib-compat.h>
+
+#if TEST_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_27)
+
+char *__p_secstodate (unsigned long int);
+compat_symbol_reference (libresolv, __p_secstodate, __p_secstodate, GLIBC_2_0);
+
struct test
{
- /* Argument to p_secstodate. */
+ /* Argument to __p_secstodate. */
unsigned long int in;
/* Expected output. */
const char *out;
@@ -39,12 +46,12 @@ static const struct test tests[] =
{ 2147483647UL, "20380119031407" },
{ 2147483648UL, "<overflow>" },
{ 4294967295UL, "<overflow>" },
-#if ULONG_MAX > 0xffffffffUL
+# if ULONG_MAX > 0xffffffffUL
{ 4294967296UL, "<overflow>" },
{ 9999999999UL, "<overflow>" },
{ LONG_MAX, "<overflow>" },
{ ULONG_MAX, "<overflow>" },
-#endif
+# endif
};
static int
@@ -53,7 +60,7 @@ do_test (void)
int ret = 0;
for (size_t i = 0; i < array_length (tests); i++)
{
- char *p = p_secstodate (tests[i].in);
+ char *p = __p_secstodate (tests[i].in);
printf ("Test %zu: %lu -> %s\n", i, tests[i].in, p);
if (strcmp (p, tests[i].out) != 0)
{
@@ -64,4 +71,14 @@ do_test (void)
return ret;
}
+#else
+
+static int
+do_test (void)
+{
+ return 77;
+}
+
+#endif
+
#include <support/test-driver.c>
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 19 +++++++++++++++++++
NEWS | 3 +++
include/resolv.h | 1 -
resolv/Makefile | 4 +++-
resolv/ns_print.c | 4 ++--
resolv/res_debug.c | 10 ++++++----
resolv/resolv.h | 2 --
resolv/tst-p_secstodate.c | 27 ++++++++++++++++++++++-----
8 files changed, 55 insertions(+), 15 deletions(-)
hooks/post-receive
--
GNU C Library master sources