public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/52188] [4.7 regression] IPA-CP change broke libstdc++ symbol versioning on Solaris
Date: Fri, 10 Feb 2012 12:31:00 -0000	[thread overview]
Message-ID: <bug-52188-4-BwlWQw9xJr@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-52188-4@http.gcc.gnu.org/bugzilla/>

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-10 12:30:39 UTC ---
The bug was that the gnu.ver wildcards were too generic and thus matched even
something that wasn't intended to be exported and just happened to be exported
as an implementation detail.
This caused a problem on Linux several years ago (I think in 2005), and since
then these are forcefully exported from compatibility.cc:
/* gcc-3.4.4
_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv
_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv
 */

namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION

  template
    istreambuf_iterator<char>&
    istreambuf_iterator<char>::operator++();

#ifdef _GLIBCXX_USE_WCHAR_T
  template
    istreambuf_iterator<wchar_t>&
    istreambuf_iterator<wchar_t>::operator++();
#endif

_GLIBCXX_END_NAMESPACE_VERSION
} // namespace

but not on Solaris, because it either doesn't support GNU symver, or doesn't
have corresponding runtime support.
I think the bug is not on the optimization side, it is fine if the
optimizations change stuff that are implementation details, C++ isn't a very
good language for ABI stability and just requires lots of work on the libstdc++
side to preserve at least some.

So, I'd say it is time to preprocess the *.ver files and tweak them based on
target OS or its version, and additionally you'll want (for Solaris) enable the
above hunk (sans the following stuff), to make sure it doesn't go again when
the optimizers change.


  parent reply	other threads:[~2012-02-10 12:31 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-09 18:30 [Bug tree-optimization/52188] New: " ro at gcc dot gnu.org
2012-02-09 18:32 ` [Bug tree-optimization/52188] " ro at gcc dot gnu.org
2012-02-09 18:33 ` ro at gcc dot gnu.org
2012-02-09 18:34 ` ro at gcc dot gnu.org
2012-02-09 18:34 ` ro at gcc dot gnu.org
2012-02-10 10:25 ` ro at CeBiTec dot Uni-Bielefeld.DE
2012-02-10 11:24 ` rguenth at gcc dot gnu.org
2012-02-10 11:32 ` rguenth at gcc dot gnu.org
2012-02-10 12:31 ` jakub at gcc dot gnu.org [this message]
2012-02-16 16:10 ` jamborm at gcc dot gnu.org
2012-02-16 20:06 ` [Bug libstdc++/52188] " ro at gcc dot gnu.org
2012-02-16 20:20 ` ro at CeBiTec dot Uni-Bielefeld.DE
2012-02-16 20:32 ` ro at CeBiTec dot Uni-Bielefeld.DE
2012-02-16 20:47 ` ro at CeBiTec dot Uni-Bielefeld.DE
2012-02-20 11:46 ` rguenth at gcc dot gnu.org
2012-02-20 13:25 ` jamborm at gcc dot gnu.org
2012-02-27 13:55 ` ro at gcc dot gnu.org
2012-02-27 14:13 ` ro at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-52188-4-BwlWQw9xJr@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).