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.21-445-g711f67a


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  711f67a789ba3505ae7b071453763e06590aa245 (commit)
      from  a5f0adb39b3a029b3fcd1b0d879eb45d9bd742cd (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=711f67a789ba3505ae7b071453763e06590aa245

commit 711f67a789ba3505ae7b071453763e06590aa245
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Fri Jun 5 23:32:46 2015 +0000

    Fix open_memstream namespace (bug 18498).
    
    open_memstream is new in the 2008 edition of POSIX.  However, the
    older functions getopt, closelog and fmtmsg all bring in references to
    it.  This patch fixes this in the usual way, making open_memstream
    into a weak alias of __open_memstream and calling __open_memstream
    from the relevant places.
    
    Tested for x86_64 and x86 (testsuite, and that disassembly of
    installed shared libraries is unchanged by the patch).  32-bit builds
    produce an XPASS for conform/POSIX/unistd.h/linknamespace after this
    patch (because the only cause of failure left there now is 64-bit
    specific); that will disappear once the 64-bit failure is resolved and
    the XFAIL removed at that time.
    
    	[BZ #18498]
    	* libio/memstream.c (open_memstream): Rename to __open_memstream
    	and define as weak alias of __open_memstream.
    	* include/stdio.h (__open_memstream): Declare.  Use
    	libc_hidden_proto.
    	(open_memstream): Don't use libc_hidden_proto.
    	* misc/syslog.c (__vsyslog_chk): Call __open_memstream instead of
    	open_memstream.
    	* posix/getopt.c (_getopt_internal_r): Likewise.
    	* conform/Makefile (test-xfail-XPG3/stdio.h/linknamespace): Remove
    	variable.
    	(test-xfail-XPG4/stdio.h/linknamespace): Likewise.
    	(test-xfail-UNIX98/stdio.h/linknamespace): Likewise.
    	(test-xfail-XOPEN2K/unistd.h/linknamespace): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 19f45eb..085d12c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
 2015-06-05  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #18498]
+	* libio/memstream.c (open_memstream): Rename to __open_memstream
+	and define as weak alias of __open_memstream.
+	* include/stdio.h (__open_memstream): Declare.  Use
+	libc_hidden_proto.
+	(open_memstream): Don't use libc_hidden_proto.
+	* misc/syslog.c (__vsyslog_chk): Call __open_memstream instead of
+	open_memstream.
+	* posix/getopt.c (_getopt_internal_r): Likewise.
+	* conform/Makefile (test-xfail-XPG3/stdio.h/linknamespace): Remove
+	variable.
+	(test-xfail-XPG4/stdio.h/linknamespace): Likewise.
+	(test-xfail-UNIX98/stdio.h/linknamespace): Likewise.
+	(test-xfail-XOPEN2K/unistd.h/linknamespace): Likewise.
+
 	[BZ #18496]
 	* posix/regex_internal.c (build_wcs_upper_buffer): Call __wcrtomb
 	instead of wcrtomb.
diff --git a/NEWS b/NEWS
index 3fc313c..881e61c 100644
--- a/NEWS
+++ b/NEWS
@@ -20,7 +20,7 @@ Version 2.22
   18111, 18116, 18125, 18128, 18138, 18185, 18196, 18197, 18206, 18210,
   18211, 18217, 18220, 18221, 18234, 18244, 18247, 18287, 18319, 18324,
   18333, 18346, 18397, 18409, 18410, 18412, 18418, 18422, 18434, 18444,
-  18468, 18469, 18470, 18483, 18495, 18496.
+  18468, 18469, 18470, 18483, 18495, 18496, 18498.
 
 * Cache information can be queried via sysconf() function on s390 e.g. with
   _SC_LEVEL1_ICACHE_SIZE as argument.
diff --git a/conform/Makefile b/conform/Makefile
index 662ea96..943a196 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -347,14 +347,12 @@ test-xfail-XOPEN2K8/ndbm.h/linknamespace = yes
 # Unsorted expected failures.
 test-xfail-XPG3/glob.h/linknamespace = yes
 test-xfail-XPG3/regex.h/linknamespace = yes
-test-xfail-XPG3/stdio.h/linknamespace = yes
 test-xfail-XPG3/unistd.h/linknamespace = yes
 test-xfail-XPG3/wordexp.h/linknamespace = yes
 test-xfail-XPG4/fmtmsg.h/linknamespace = yes
 test-xfail-XPG4/glob.h/linknamespace = yes
 test-xfail-XPG4/netdb.h/linknamespace = yes
 test-xfail-XPG4/regex.h/linknamespace = yes
-test-xfail-XPG4/stdio.h/linknamespace = yes
 test-xfail-XPG4/stdlib.h/linknamespace = yes
 test-xfail-XPG4/syslog.h/linknamespace = yes
 test-xfail-XPG4/unistd.h/linknamespace = yes
@@ -367,7 +365,6 @@ test-xfail-POSIX/unistd.h/linknamespace = yes
 test-xfail-UNIX98/fmtmsg.h/linknamespace = yes
 test-xfail-UNIX98/mqueue.h/linknamespace = yes
 test-xfail-UNIX98/netdb.h/linknamespace = yes
-test-xfail-UNIX98/stdio.h/linknamespace = yes
 test-xfail-UNIX98/stdlib.h/linknamespace = yes
 test-xfail-UNIX98/syslog.h/linknamespace = yes
 test-xfail-UNIX98/unistd.h/linknamespace = yes
@@ -376,7 +373,6 @@ test-xfail-XOPEN2K/fmtmsg.h/linknamespace = yes
 test-xfail-XOPEN2K/netdb.h/linknamespace = yes
 test-xfail-XOPEN2K/stdlib.h/linknamespace = yes
 test-xfail-XOPEN2K/syslog.h/linknamespace = yes
-test-xfail-XOPEN2K/unistd.h/linknamespace = yes
 test-xfail-POSIX2008/grp.h/linknamespace = yes
 test-xfail-POSIX2008/netdb.h/linknamespace = yes
 test-xfail-POSIX2008/semaphore.h/linknamespace = yes
diff --git a/include/stdio.h b/include/stdio.h
index 043b2b5..78bd3c4 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -160,7 +160,10 @@ extern __typeof (fgets_unlocked) __fgets_unlocked;
 libc_hidden_proto (__fgets_unlocked)
 libc_hidden_proto (fputs_unlocked)
 libc_hidden_proto (fmemopen)
-libc_hidden_proto (open_memstream)
+/* The prototype needs repeating instead of using __typeof to use
+   __THROW in C++.  */
+extern FILE *__open_memstream (char **, size_t *) __THROW __wur;
+libc_hidden_proto (__open_memstream)
 libc_hidden_proto (__libc_fatal)
 libc_hidden_proto (__vsprintf_chk)
 libc_hidden_proto (__vsnprintf_chk)
diff --git a/libio/memstream.c b/libio/memstream.c
index 81bfe6d..84742d1 100644
--- a/libio/memstream.c
+++ b/libio/memstream.c
@@ -61,7 +61,7 @@ static const struct _IO_jump_t _IO_mem_jumps =
    necessary.  *BUFLOC and *SIZELOC are updated with the buffer's location
    and the number of characters written on fflush or fclose.  */
 _IO_FILE *
-open_memstream (bufloc, sizeloc)
+__open_memstream (bufloc, sizeloc)
      char **bufloc;
      _IO_size_t *sizeloc;
 {
@@ -100,7 +100,8 @@ open_memstream (bufloc, sizeloc)
 
   return (_IO_FILE *) &new_f->fp._sf._sbf;
 }
-libc_hidden_def (open_memstream)
+libc_hidden_def (__open_memstream)
+weak_alias (__open_memstream, open_memstream)
 
 
 static int
diff --git a/misc/syslog.c b/misc/syslog.c
index 70daa9e..23a4f7b 100644
--- a/misc/syslog.c
+++ b/misc/syslog.c
@@ -164,7 +164,7 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list ap)
 		pri |= LogFacility;
 
 	/* Build the message in a memory-buffer stream.  */
-	f = open_memstream (&buf, &bufsize);
+	f = __open_memstream (&buf, &bufsize);
 	if (f == NULL)
 	  {
 	    /* We cannot get a stream.  There is not much we can do but
diff --git a/posix/getopt.c b/posix/getopt.c
index 841392e..d30530f 100644
--- a/posix/getopt.c
+++ b/posix/getopt.c
@@ -585,7 +585,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring,
 	      char *buf = NULL;
 	      size_t buflen = 0;
 
-	      FILE *fp = open_memstream (&buf, &buflen);
+	      FILE *fp = __open_memstream (&buf, &buflen);
 	      if (fp != NULL)
 		{
 		  fprintf (fp,

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog         |   15 +++++++++++++++
 NEWS              |    2 +-
 conform/Makefile  |    4 ----
 include/stdio.h   |    5 ++++-
 libio/memstream.c |    5 +++--
 misc/syslog.c     |    2 +-
 posix/getopt.c    |    2 +-
 7 files changed, 25 insertions(+), 10 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]