diff mbox

Define new std::ios_base::failure with abi_tag("cxx11")

Message ID 20141130125135.GT5191@redhat.com
State New
Headers show

Commit Message

Jonathan Wakely Nov. 30, 2014, 12:51 p.m. UTC
On 24/11/14 18:24 +0100, Tom de Vries wrote:
>On 24-11-14 18:12, Jonathan Wakely wrote:
>>On 24/11/14 17:48 +0100, Tom de Vries wrote:
>>>On 14-11-14 13:18, Jonathan Wakely wrote:
>>>>This adds system_error support to iostreams, including the required
>>>>base class changes to std::ios_base::failure. The abi_tag is used to
>>>>make it a distinct type.  This changes the type of I/O exceptions
>>>>thrown by the library but exceptions are very rarely used with
>>>>iostreams.
>>>>
>>>>Tested powerpc64-linux and x86_64-linux
>>>>
>>>
>>>I'm running into this failure with a non-bootstrap build from trunk.
>>
>>Is this on i686?
>>
>
>No, x86_64-unknown-linux-gnu.

I see them now too, but not always - I'm not sure why.

Anyway, this should fix it.


>>>Could this be related?
>>
>>Yes, definitely.
>>
>>I was aware of the failures but hadn't been able to reproduce them.
>>With the info below I should be able to fix it, thanks.
>>
>
>Great :)
>
>Thanks,
>- Tom
>
>>
>>>2 incompatible symbols
>>>0
>>>_ZNSt8ios_base7failureB5cxx11C1ERKSsRKSt10error_code
>>>std::ios_base::failure[abi:cxx11]::cxx11(std::string const&, std::error_code
>>>const&)
>>>version status: incompatible
>>>GLIBCXX_3.4
>>>type: function
>>>status: added
>>>
>>>
>>>1
>>>_ZNSt8ios_base7failureB5cxx11C2ERKSsRKSt10error_code
>>>std::ios_base::failure[abi:cxx11]::cxx11(std::string const&, std::error_code
>>>const&)
>>>version status: incompatible
>>>GLIBCXX_3.4
>>>type: function
>>>status: added
>
diff mbox

Patch

commit a01cb5b1bfcab6e540ae3949b3ae6c258a47d0dd
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Sun Nov 30 01:36:18 2014 +0000

    	* config/abi/pre/gnu.ver: Fix ios_base::failure exports.

diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index 78f3e77..5176b29 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -85,7 +85,11 @@  GLIBCXX_3.4 {
       std::invalid_argument::i*;
 #     std::invalid_argument::~i*;
 #     std::ios_base::[A-Ha-z]*;
-      std::ios_base::[A-Ha-f]*;
+      std::ios_base::[A-Ha-e]*;
+      std::ios_base::failbit;
+#     std::ios_base::failure*;
+      std::ios_base::fixed;
+      std::ios_base::floatfield;
       std::ios_base::goodbit;
       std::ios_base::[h-z]*;
       std::ios_base::_M_grow_words*;
@@ -499,6 +503,11 @@  GLIBCXX_3.4 {
     _ZNSt8ios_baseD*;
     _ZNSt8ios_base4InitD*;
 
+    # std::ios_base::failure constructors, destructors, virtual function
+    _ZNSt8ios_base7failureC*;
+    _ZNSt8ios_base7failureD*;
+    _ZNKSt8ios_base7failure4whatEv;
+
     # bool std::has_facet
     _ZSt9has_facetIS*;