This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]