Bug#793270: pdf2djvu: change of type in system_error might break with GCC-5

2015-07-24 Thread Matthias Klose
On 07/22/2015 06:37 PM, Jakub Wilk wrote:
> Hi Matthias!
> 
> [Disclaimer: I'm not the maintainer, just a random bug onlooker.]
> 
> * Matthias Klose , 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...

I forgot to make the corresponding change in libstdc++6, now fixed in 5.2.1-12.
 This now should break the not rebuild pdf2djvu.


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Bug#793270: pdf2djvu: change of type in system_error might break with GCC-5

2015-07-22 Thread Jakub Wilk

Hi Matthias!

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

* Matthias Klose , 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 debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org