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]