Hi Matthias!

[Disclaimer: I'm not the maintainer, just a random bug onlooker.]

* Matthias Klose <[email protected]>, 2015-07-22, 13:34:
GCC PR libstdc++/66145 is a regression in GCC 5 which won't be fixed upstream in time for the GCC defaults change.

https://gcc.gnu.org/PR66145 is about catching std::ios_base::failure, but the bug subject says about changes in std::system_error. It wasn't clear to me what's the relation of these two classes. So apparently in C++11 (but not in C++98) std::ios_base::failure is a subclass of std::system_error.

pdf2djvu tries to catch std::ios_base::failure in a few places. The version in the archive, which was built built with GCC 4.9, does it successfully (both with libstdc++6 5.1.1-14 and 5.2.1-11):

$ pdf2djvu /usr/share/doc/quilt/quilt.pdf -o /cannot/write/here
I/O error (basic_ios::clear)

However, when you rebuild the package against g++-5_5.1.1-14, catching the exception no longer works:

$ pdf2djvu /usr/share/doc/quilt/quilt.pdf -o /cannot/write/here
terminate called after throwing an instance of 'std::ios_base::failure'
 what():  basic_ios::clear
Aborted

The work around is to rebuild the affected packages after GCC 5 is the default compiler.

AFAICS rebuilding doesn't help; it only makes things worse...

--
Jakub Wilk


--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to