public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/35935]  New: abi breakage in search (4.0.0 -> 4.2.1)
@ 2008-04-14 17:15 mrs at apple dot com
  2008-04-14 18:03 ` [Bug libstdc++/35935] " pcarlini at suse dot de
  0 siblings, 1 reply; 2+ messages in thread
From: mrs at apple dot com @ 2008-04-14 17:15 UTC (permalink / raw)
  To: gcc-bugs

>From http://gcc.gnu.org/ml/libstdc++/2008-04/msg00034.html

In gcc-4.0.0 search was instantiated in string-inst.cc:

 // Used in str::find.
 template
   const C*
   search(const C*, const C*, const C*, const C*, bool(*)(const C&, const C&));

and if a user compiled their code with -frepo, they can wind up with an
external reference to this, that is bound to the shared library for libstdc++
for 4.0.0.  Now, fast forward to 4.2.1. It cleverly removes the instantiation
for this and the users application no longer works.  I think this should
reproduce on any target that uses config/abi/pre/gnu.ver.


The fix seems to be to add std::search* back to
libstdc++-v3/config/abi/pre/gnu.ver and

    template
    const C*
    search(const C*, const C*, const C*, const C*, bool(*)(const C&, const
C&));

back to libstdc++-v3/src/string-inst.cc, to undo the abi break caused by:

------------------------------------------------------------------------
r101112 | bkoz | 2005-06-16 16:30:55 -0700 (Thu, 16 Jun 2005) | 61 lines


2005-06-17 Jakub Jelinek <jakub@redhat.com>

        * config/abi/ia64-linux-gnu/baseline_symbols.txt: Update.
        * config/abi/s390x-linux-gnu/baseline_symbols.txt: Update.
        * config/abi/s390-linux-gnu/baseline_symbols.txt: Update.
        * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Update.
        * config/abi/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
        * config/abi/powerpc-linux-gnu/baseline_symbols.txt: Update.
        * config/abi/i486-linux-gnu/baseline_symbols.txt: Update.
        * config/abi/i386-linux-gnu/baseline_symbols.txt: Update.
        * config/abi/powerpc64-linux-gnu/baseline_symbols.txt: New file.
        * config/abi/powerpc64-linux-gnu/32/baseline_symbols.txt: New file.

2005-06-16 Jakub Jelinek <jakub@redhat.com>

        * src/compatibility.cc: Include bits/c++config.h first.
        (_GLIBCXX_SYMVER_COMPATIBILITY): Define if _GLIBCXX_SYMVER
        and PIC are both defined.
        * include/bits/char_traits.h (char_traits::eq): Rename
        only if _GLIBCXX_SYMVER_COMPATIBILITY is defined.

2005-06-16 Jakub Jelinek <jakub@redhat.com>

* acinclude.m4 ((GLIBCXX_ENABLE_SYMVERS): Rename _GLIBCXX_SIZE_T_IS_INT
to _GLIBCXX_SIZE_T_IS_UINT. Define _GLIBCXX_PTRDIFF_T_IS_INT.
* configure: Regenerate.
* config.h.in: Regenerate.
* src/compatibility.cc (istream:ignore(streamsize)): Use
_GLIBCXX_PTRDIFF_T_IS_INT instead of _GLIBCXX_SIZE_T_IS_INT.
* config/abi/compatibility.h: Rename _GLIBCXX_SIZE_T_IS_INT
to _GLIBCXX_SIZE_T_IS_UINT. Use _GLIBCXX_PTRDIFF_T_IS_INT
instead for symbols with streamsize arguments.

2005-06-16 Jakub Jelinek <jakub@redhat.com>

        * config/linker-map.gnu: Also export
        _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreE[il][il].

2005-06-15 Benjamin Kosnik <bkoz@redhat.com>

        * configure.ac (libtool_VERSION): To 6:5:0.
        * configure: Regenerate.
        * config/linker-map.gnu: Edit.
        * src/istream.cc: Move istream::ignore(streamsize) specializations...
        * src/compatibility.cc: ...here. New.
        * include/bits/char_traits.h (char_traits::eq): Rename when
        appropriate.
        * acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Define _GLIBCXX_SIZE_T_IS_INT.
        Bump glibcxx_min_gnu_ld_version to 21590.
        * configure: Regenerate.
        * acconfig.h: Remove _GLIBCXX_ASM_SYMVER.
        * config.h.in: Regenerate.
        * src/Makefile.am (sources): Add compatibility.cc.
        * src/Makefile.in: Regenerate.
        * include/Makefile.am (host_headers_noinst): Add compatibility.h.
        * include/Makefile.in: Regenerate.
        * testsuite/testsuite_abi.h (symbol): Add data members.
        * testsuite/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.5.
        Remove deprecated versions. Do a better job version checking.

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


-- 
           Summary: abi breakage in search (4.0.0 -> 4.2.1)
           Product: gcc
           Version: 4.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: mrs at apple dot com
  GCC host triplet: i686-apple-darwin9
GCC target triplet: i686-apple-darwin9


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35935


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

* [Bug libstdc++/35935] abi breakage in search (4.0.0 -> 4.2.1)
  2008-04-14 17:15 [Bug libstdc++/35935] New: abi breakage in search (4.0.0 -> 4.2.1) mrs at apple dot com
@ 2008-04-14 18:03 ` pcarlini at suse dot de
  0 siblings, 0 replies; 2+ messages in thread
From: pcarlini at suse dot de @ 2008-04-14 18:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pcarlini at suse dot de  2008-04-14 18:02 -------


*** This bug has been marked as a duplicate of 35934 ***


-- 

pcarlini at suse dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |DUPLICATE


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35935


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

end of thread, other threads:[~2008-04-14 18:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-14 17:15 [Bug libstdc++/35935] New: abi breakage in search (4.0.0 -> 4.2.1) mrs at apple dot com
2008-04-14 18:03 ` [Bug libstdc++/35935] " pcarlini at suse dot de

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).