From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 37779 invoked by alias); 12 Sep 2015 09:12:27 -0000 Mailing-List: contact gcc-help-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-help-owner@gcc.gnu.org Received: (qmail 37754 invoked by uid 89); 12 Sep 2015 09:12:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: raclette.synchrotron-soleil.fr Received: from dns2.synchrotron-soleil.fr (HELO raclette.synchrotron-soleil.fr) (195.221.0.6) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 12 Sep 2015 09:10:47 +0000 Received: from localhost (unknown [127.0.0.1]) by raclette.synchrotron-soleil.fr (Postfix) with ESMTP id 1216631E90; Sat, 12 Sep 2015 09:10:45 +0000 (UTC) Received: from raclette.synchrotron-soleil.fr ([127.0.0.1]) by localhost (raclette.synchrotron-soleil.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fnQL3MpuKa0A; Sat, 12 Sep 2015 11:10:39 +0200 (CEST) Received: from SUN-DAG4.synchrotron-soleil.fr (unknown [195.221.0.186]) by raclette.synchrotron-soleil.fr (Postfix) with ESMTP id D697731E94; Sat, 12 Sep 2015 11:10:39 +0200 (CEST) Received: from SUN-DAG3.synchrotron-soleil.fr ([fe80::c4d2:6e35:3313:fd99]) by SUN-DAG4.synchrotron-soleil.fr ([fe80::74c3:f99:1237:9a2%13]) with mapi id 14.03.0123.003; Sat, 12 Sep 2015 11:12:05 +0200 From: PICCA Frederic-Emmanuel To: Jonathan Wakely Cc: gcc-help , "taurel@esrf.eu" , "Avi Kivity" Subject: RE:gcc5 and std::string Date: Sat, 12 Sep 2015 09:12:00 -0000 Message-ID: References: <55F2D60E.8060707@cloudius-systems.com> , In-Reply-To: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-SW-Source: 2015-09/txt/msg00065.txt.bz2 first thanks a lot for your really helpfull comment. > The symbol shown above doesn't mention std::string so you can't really > say it "is cxx11 abi" because it isn't using any std::string, new or > old. As far as we can tell from the symbol it doesn't depend on > std::string at all. sorry, I saw str and my brean tought it was std::string. I recompiled the tango project with the -Wabi-tag now I have thousands of line like this. ../../../../../lib/cpp/log4tango/include/log4tango/AppenderAttachable.hh:58= :24: warning: 'log4tango::AppenderAttachable' does not have the "cxx11" ABI= tag that 'log4tango::AppenderMap {aka std::map, log4tango::Appender*>}' (used in the type of 'log4tango::AppenderAtt= achable::_appenders') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/LoggerStream.hh:58:7: wa= rning: 'log4tango::LoggerStream' does not have the "cxx11" ABI tag that 'st= d::ostringstream {aka std::__cxx11::basic_ostringstream}' (used in th= e type of 'log4tango::LoggerStream::_buffer') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/Logger.hh:56:24: warning= : 'log4tango::Logger' does not have the "cxx11" ABI tag that 'const string = {aka const std::__cxx11::basic_string}' (used in the type of 'log4tan= go::Logger::_name') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: w= arning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 'c= onst string {aka const std::__cxx11::basic_string}' (used in the type= of 'log4tango::LoggingEvent::logger_name') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: w= arning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 'c= onst string {aka const std::__cxx11::basic_string}' (used in the type= of 'log4tango::LoggingEvent::message') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: w= arning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 's= td::__cxx11::string {aka std::__cxx11::basic_string}' (used in the ty= pe of 'log4tango::LoggingEvent::thread_name') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/Layout.hh:41:24: warning= : 'log4tango::Layout' does not have the "cxx11" ABI tag that 'std::__cxx11:= :string {aka std::__cxx11::basic_string}' (used in the type of 'virtu= al std::__cxx11::string log4tango::Layout::format(const log4tango::LoggingE= vent&)') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/Appender.hh:45:24: warni= ng: 'log4tango::Appender' does not have the "cxx11" ABI tag that 'const str= ing {aka const std::__cxx11::basic_string}' (used in the type of 'log= 4tango::Appender::_name') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/PatternLayout.hh:99:26: = warning: 'log4tango::PatternLayout::PatternComponent' does not have the "cx= x11" ABI tag that 'std::ostringstream {aka std::__cxx11::basic_ostringstrea= m}' (used in the type of 'virtual void log4tango::PatternLayout::Patt= ernComponent::append(std::ostringstream&, const log4tango::LoggingEvent&)')= has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/PatternLayout.hh:43:24: = warning: 'log4tango::PatternLayout' does not have the "cxx11" ABI tag that = 'std::__cxx11::string {aka std::__cxx11::basic_string}' (used in the = type of 'log4tango::PatternLayout::_conversionPattern') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/PatternLayout.hh:43:24: = warning: 'log4tango::PatternLayout' does not have the "cxx11" ABI tag that = 'const string {aka const std::__cxx11::basic_string}' (used in the ty= pe of 'virtual int log4tango::PatternLayout::set_conversion_pattern(const s= tring&)') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/PatternLayout.hh:43:24: = warning: 'log4tango::PatternLayout' does not have the "cxx11" ABI tag that = 'std::__cxx11::string {aka std::__cxx11::basic_string}' (used in the = type of 'virtual std::__cxx11::string log4tango::PatternLayout::get_convers= ion_pattern() const') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: w= arning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 'c= onst string {aka const std::__cxx11::basic_string}' (used in the type= of 'log4tango::LoggingEvent::logger_name') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: w= arning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 'c= onst string {aka const std::__cxx11::basic_string}' (used in the type= of 'log4tango::LoggingEvent::message') has [-Wabi-tag] ../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: w= arning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 's= td::__cxx11::string {aka std::__cxx11::basic_string}' (used in the ty= pe of 'log4tango::LoggingEvent::thread_name') has [-Wabi-tag I filtered the line which explain explicitely that the symbol inherit from = the cxx11 ABI. If I understand you correctly I need to fix each of these symbols by adding= your #define snipset. (right ?) It seems to me that this is a HUGE task and it "polute" the code with this = snipset everywhere. I mean is it something really specific to gcc ?, what about other c++ compi= ler, I especially think about msvc abd clang. What i understand is that this is just a waning saying that a problem can o= ccure when someone use one of these symbols in the incriminate .h file. I imagine also that not all libraries where instrumented like that. since the problem show up for me at runtime. I have the filling that I have= a damocles sword above my head. Maybe there is something that I do not und= erstand correctly :) In another hand only a few of these symbols cause troubles practcally (the = used one, so only the one in the public API). Do you have some practical advise in order to fix this problem with a minim= al impact on all the code. thanks a lot for your help Frederic