public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libc/17634] New: strftime wcschr namespace
@ 2014-11-21 18:20 jsm28 at gcc dot gnu.org
  2014-11-21 18:21 ` [Bug libc/17634] " jsm28 at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: jsm28 at gcc dot gnu.org @ 2014-11-21 18:20 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=17634

            Bug ID: 17634
           Summary: strftime wcschr namespace
           Product: glibc
           Version: 2.21
            Status: NEW
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: jsm28 at gcc dot gnu.org
                CC: drepper.fsp at gmail dot com

Use of strftime, a C90 function, ends up bringing in wcschr, which is not a C90
function.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug libc/17634] strftime wcschr namespace
  2014-11-21 18:20 [Bug libc/17634] New: strftime wcschr namespace jsm28 at gcc dot gnu.org
@ 2014-11-21 18:21 ` jsm28 at gcc dot gnu.org
  2014-12-10 17:01 ` cvs-commit at gcc dot gnu.org
  2014-12-10 17:02 ` jsm28 at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: jsm28 at gcc dot gnu.org @ 2014-11-21 18:21 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=17634

--- Comment #1 from Joseph Myers <jsm28 at gcc dot gnu.org> ---
(Not a conformance bug because C90 has the wcs* reservation, but still contrary
to glibc practice.)

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug libc/17634] strftime wcschr namespace
  2014-11-21 18:20 [Bug libc/17634] New: strftime wcschr namespace jsm28 at gcc dot gnu.org
  2014-11-21 18:21 ` [Bug libc/17634] " jsm28 at gcc dot gnu.org
@ 2014-12-10 17:01 ` cvs-commit at gcc dot gnu.org
  2014-12-10 17:02 ` jsm28 at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2014-12-10 17:01 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=17634

--- Comment #2 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
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  2cfbdb9a27a8fb08e0249d790a7e6d6053adda59 (commit)
      from  1b8bf3518186cdc4f22037e5f226c34ffa143b89 (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 -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2cfbdb9a27a8fb08e0249d790a7e6d6053adda59

commit 2cfbdb9a27a8fb08e0249d790a7e6d6053adda59
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Dec 10 16:59:02 2014 +0000

    Fix strftime wcschr namespace (bug 17634).

    Use of strftime, a C90 function, ends up bringing in wcschr, which is
    not a C90 function.  Although not a conformance bug (C90 reserves
    wcs*), this is still contrary to glibc practice of avoiding relying on
    those reservations; this patch arranges for the internal uses to use
    __wcschr instead, with wcschr being a weak alias.  This is more
    complicated than some such patches because of the various IFUNC
    definitions of wcschr (which include code redefining libc_hidden_def
    in a way that involves creating __GI_wcschr manually and so also needs
    to create __GI___wcschr after the change of internal uses to use
    __wcschr).

    Tested for x86_64 and 32-bit x86 (testsuite, and that disassembly of
    installed shared libraries is unchanged by the patch).

    2014-12-10  Joseph Myers  <joseph@codesourcery.com>
            Adhemerval Zanella  <azanella@linux.vnet.ibm.com>

        [BZ #17634]
        * wcsmbs/wcschr.c [!WCSCHR] (wcschr): Define as __wcschr.
        Undefine after defining function.  Define as weak alias of
        __wcschr.  Use libc_hidden_weak.
        * include/wchar.h (__wcschr): Declare.  Use libc_hidden_proto.
        * sysdeps/i386/i686/multiarch/wcschr-c.c [IS_IN (libc) && SHARED]
        (libc_hidden_def): Also define __GI___wcschr alias.
        * sysdeps/i386/i686/multiarch/wcschr.S (wcschr): Rename to
        __wcschr and define as weak alias of __wcschr.
        * sysdeps/powerpc/power6/wcschr.c [!WCSCHR] (WCSCHR): Define as
        __wcschr.
        [!WCSCHR] (DEFAULT_WCSCHR): Define.
        [DEFAULT_WCSCHR] (__wcschr): Use libc_hidden_def.
        [DEFAULT_WCSCHR] (wcschr): Define as weak alias of __wcschr.  Use
        libc_hidden_weak.  Do not use libc_hidden_def.
        * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c
        [IS_IN (libc) && SHARED] (libc_hidden_def): Also define
        __GI___wcschr alias.
        * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c
        [IS_IN (libc)] (wcschr): Define as macro expanding to
        __redirect_wcschr.
        [IS_IN (libc)] (__wcschr_ppc): Use __redirect_wcschr in typeof.
        [IS_IN (libc)] (__wcschr_power6): Likewise.
        [IS_IN (libc)] (__wcschr_power7): Likewise.
        [IS_IN (libc)] (__libc_wcschr): New.  Define with libc_ifunc
        instead of wcschr.
        [IS_IN (libc)] (wcschr): Undefine and define as weak alias of
        __libc_wcschr.
        [!IS_IN (libc)] (libc_hidden_def): Do not undefine and redefine.
        * sysdeps/powerpc/powerpc64/multiarch/wcschr.c (wcschr): Rename to
        __wcschr and define as weak alias of __wcschr.  Use
        libc_hidden_builtin_def.
        * sysdeps/x86_64/wcschr.S (wcschr): Rename to __wcschr and define
        as weak alias of __wcschr.  Use libc_hidden_weak.
        * time/alt_digit.c (_nl_get_walt_digit): Use __wcschr instead of
        wcschr.
        * time/era.c (_nl_init_era_entries): Likewise.
        * conform/Makefile (test-xfail-ISO/time.h/linknamespace): Remove
        variable.
        (test-xfail-XPG3/time.h/linknamespace): Likewise.
        (test-xfail-XPG4/time.h/linknamespace): Likewise.

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

Summary of changes:
 ChangeLog                                          |   45 ++++++++++++++++++++
 NEWS                                               |    4 +-
 conform/Makefile                                   |    3 -
 include/wchar.h                                    |    6 +++
 sysdeps/i386/i686/multiarch/wcschr-c.c             |    4 +-
 sysdeps/i386/i686/multiarch/wcschr.S               |    5 +-
 sysdeps/powerpc/power6/wcschr.c                    |    9 ++++-
 .../powerpc32/power4/multiarch/wcschr-ppc32.c      |    4 +-
 .../powerpc/powerpc32/power4/multiarch/wcschr.c    |   15 ++++---
 sysdeps/powerpc/powerpc64/multiarch/wcschr.c       |    4 +-
 sysdeps/x86_64/wcschr.S                            |    8 ++-
 time/alt_digit.c                                   |    2 +-
 time/era.c                                         |    4 +-
 wcsmbs/wcschr.c                                    |    7 +++
 14 files changed, 97 insertions(+), 23 deletions(-)

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug libc/17634] strftime wcschr namespace
  2014-11-21 18:20 [Bug libc/17634] New: strftime wcschr namespace jsm28 at gcc dot gnu.org
  2014-11-21 18:21 ` [Bug libc/17634] " jsm28 at gcc dot gnu.org
  2014-12-10 17:01 ` cvs-commit at gcc dot gnu.org
@ 2014-12-10 17:02 ` jsm28 at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: jsm28 at gcc dot gnu.org @ 2014-12-10 17:02 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=17634

Joseph Myers <jsm28 at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from Joseph Myers <jsm28 at gcc dot gnu.org> ---
Fixed for 2.21.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-12-10 17:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-21 18:20 [Bug libc/17634] New: strftime wcschr namespace jsm28 at gcc dot gnu.org
2014-11-21 18:21 ` [Bug libc/17634] " jsm28 at gcc dot gnu.org
2014-12-10 17:01 ` cvs-commit at gcc dot gnu.org
2014-12-10 17:02 ` jsm28 at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).