RE:gcc5 and std::string

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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<std::__cxx11::basic_string<char>, log4tango::Appender*>}' (used in the type of 'log4tango::AppenderAttachable::_appenders') has [-Wabi-tag]
../../../../../lib/cpp/log4tango/include/log4tango/LoggerStream.hh:58:7: warning: 'log4tango::LoggerStream' does not have the "cxx11" ABI tag that 'std::ostringstream {aka std::__cxx11::basic_ostringstream<char>}' (used in the 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<char>}' (used in the type of 'log4tango::Logger::_name') has [-Wabi-tag]
../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: warning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 'const string {aka const std::__cxx11::basic_string<char>}' (used in the type of 'log4tango::LoggingEvent::logger_name') has [-Wabi-tag]
../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: warning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 'const string {aka const std::__cxx11::basic_string<char>}' (used in the type of 'log4tango::LoggingEvent::message') has [-Wabi-tag]
../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: warning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}' (used in the type 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<char>}' (used in the type of 'virtual std::__cxx11::string log4tango::Layout::format(const log4tango::LoggingEvent&)') has [-Wabi-tag]
../../../../../lib/cpp/log4tango/include/log4tango/Appender.hh:45:24: warning: 'log4tango::Appender' does not have the "cxx11" ABI tag that 'const string {aka const std::__cxx11::basic_string<char>}' (used in the type of 'log4tango::Appender::_name') has [-Wabi-tag]
../../../../../lib/cpp/log4tango/include/log4tango/PatternLayout.hh:99:26: warning: 'log4tango::PatternLayout::PatternComponent' does not have the "cxx11" ABI tag that 'std::ostringstream {aka std::__cxx11::basic_ostringstream<char>}' (used in the type of 'virtual void log4tango::PatternLayout::PatternComponent::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<char>}' (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<char>}' (used in the type of 'virtual int log4tango::PatternLayout::set_conversion_pattern(const string&)') 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<char>}' (used in the type of 'virtual std::__cxx11::string log4tango::PatternLayout::get_conversion_pattern() const') has [-Wabi-tag]
../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: warning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 'const string {aka const std::__cxx11::basic_string<char>}' (used in the type of 'log4tango::LoggingEvent::logger_name') has [-Wabi-tag]
../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: warning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 'const string {aka const std::__cxx11::basic_string<char>}' (used in the type of 'log4tango::LoggingEvent::message') has [-Wabi-tag]
../../../../../lib/cpp/log4tango/include/log4tango/LoggingEvent.hh:50:25: warning: 'log4tango::LoggingEvent' does not have the "cxx11" ABI tag that 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}' (used in the type 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++ compiler, I especially think about msvc abd clang.
What i understand is that this is just a waning saying that a problem can occure 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 understand 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 minimal impact on all the code.

thanks a lot for your help


Frederic




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux