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.27.9000-85-gec481ad


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  ec481ad81b0436460de417a8e0084935b3763ebb (commit)
      from  7d15ef84f50a80cb170f8ce3457010f59e221cb8 (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=ec481ad81b0436460de417a8e0084935b3763ebb

commit ec481ad81b0436460de417a8e0084935b3763ebb
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Mon Feb 19 17:32:34 2018 +0000

    Fix -Os ferror_unlocked linknamespace, localplt issues (bug 15105, bug 19463).
    
    Continuing the fixes for linknamespace and localplt test failures with
    -Os that arise from functions not being inlined in that case, this
    patch fixes such failures for ferror_unlocked.
    
    The usual approach is followed of adding __ferror_unlocked (inlined
    when ferror_unlocked is), making calls use it when required for
    namespace reasons (only one such call), and using libc_hidden_proto /
    libc_hidden_weak for the ferror_unlocked weak alias when only localplt
    but not namespace issues are involved.
    
    Tested for x86_64 (both without -Os to make sure that case continues
    to work, and with -Os to make sure all the relevant linknamespace and
    localplt test failures are resolved).  Because of other such failures
    that remain after this patch, neither of the bugs can yet be closed.
    
    	[BZ #15105]
    	[BZ #19463]
    	* libio/ferror_u.c (ferror_unlocked): Rename to __ferror_unlocked
    	and define as weak alias of __ferror_unlocked.  Use
    	libc_hidden_weak.
    	* include/stdio.h [!_ISOMAC] (ferror_unlocked): Use
    	libc_hidden_proto.
    	[!_ISOMAC] (__ferror_unlocked) New declaration, and inline
    	function if [__USE_EXTERN_INLINES].
    	* time/getdate.c (__getdate_r): Call __ferror_unlocked instead of
    	ferror_unlocked.

diff --git a/ChangeLog b/ChangeLog
index 35bf20a..de48635 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2018-02-19  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #15105]
+	[BZ #19463]
+	* libio/ferror_u.c (ferror_unlocked): Rename to __ferror_unlocked
+	and define as weak alias of __ferror_unlocked.  Use
+	libc_hidden_weak.
+	* include/stdio.h [!_ISOMAC] (ferror_unlocked): Use
+	libc_hidden_proto.
+	[!_ISOMAC] (__ferror_unlocked) New declaration, and inline
+	function if [__USE_EXTERN_INLINES].
+	* time/getdate.c (__getdate_r): Call __ferror_unlocked instead of
+	ferror_unlocked.
+
 2018-02-19  Rical Jasan  <ricaljasan@pacific.net>
 
 	[BZ #6889]
diff --git a/include/stdio.h b/include/stdio.h
index 7871000..1bf49a9 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -185,6 +185,8 @@ extern __typeof (fputs_unlocked) __fputs_unlocked;
 libc_hidden_proto (__fputs_unlocked)
 libc_hidden_proto (feof_unlocked)
 extern __typeof (feof_unlocked) __feof_unlocked attribute_hidden;
+libc_hidden_proto (ferror_unlocked)
+extern __typeof (ferror_unlocked) __ferror_unlocked attribute_hidden;
 libc_hidden_proto (fmemopen)
 /* The prototype needs repeating instead of using __typeof to use
    __THROW in C++ tests.  */
@@ -211,6 +213,12 @@ __NTH (__feof_unlocked (FILE *__stream))
 {
   return __feof_unlocked_body (__stream);
 }
+
+__extern_inline int
+__NTH (__ferror_unlocked (FILE *__stream))
+{
+  return __ferror_unlocked_body (__stream);
+}
 #  endif
 
 # endif /* not _ISOMAC */
diff --git a/libio/ferror_u.c b/libio/ferror_u.c
index afd0bef..3eaf84e 100644
--- a/libio/ferror_u.c
+++ b/libio/ferror_u.c
@@ -30,8 +30,10 @@
 #undef ferror_unlocked
 
 int
-ferror_unlocked (_IO_FILE *fp)
+__ferror_unlocked (_IO_FILE *fp)
 {
   CHECK_FILE (fp, EOF);
   return _IO_ferror_unlocked (fp);
 }
+weak_alias (__ferror_unlocked, ferror_unlocked)
+libc_hidden_weak (ferror_unlocked)
diff --git a/time/getdate.c b/time/getdate.c
index 29ad760..e568149 100644
--- a/time/getdate.c
+++ b/time/getdate.c
@@ -206,7 +206,7 @@ __getdate_r (const char *string, struct tm *tp)
   free (line);
 
   /* Check for errors. */
-  if (ferror_unlocked (fp))
+  if (__ferror_unlocked (fp))
     {
       fclose (fp);
       return 5;

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

Summary of changes:
 ChangeLog        |   14 ++++++++++++++
 include/stdio.h  |    8 ++++++++
 libio/ferror_u.c |    4 +++-
 time/getdate.c   |    2 +-
 4 files changed, 26 insertions(+), 2 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]