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.27.9000-85-gec481ad
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 19 Feb 2018 17:33:14 -0000
- Subject: 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