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

Bug#752733: g++-4.9: PR61214 breaks packages linking against wxWidgets



On Thu, Jun 26, 2014 at 11:33:24PM +1200, Olly Betts wrote:
> On Thu, Jun 26, 2014 at 10:34:41AM +0200, Matthias Klose wrote:
> > Wondering if we can have a work-around in wxwidgets-3.0, building without
> > -fvisibility-inlines-hidden, until this is fixed in gcc-4.9. This way we would
> > have to touch only one package. At least the upstream test case works with it.
> 
> Would removing and later (once GCC is fixed) re-adding
> -fvisibility-inlines-hidden affect the ABI of the wxwidgets-3.0 libraries?

I had a different idea for working around this in wxwidgets-3.0 - the testcase
in the GCC PR compiles OK if I add an anonymous namespace to
/usr/include/wx-3.0/wx/event.h containing a long list of lines like this, one
for each wxEvent subclass:

auto debian_wx3_gcc49_pr61214_wxWindowDestroyEvent_hack = &wxWindowDestroyEvent::Clone;

This was a proof of concept - for an actual fix, "auto" would be the
appropriate pointer-to-member type, so it works in non-C++11 mode.  It also
needs something to suppress -Wunused-variable warnings.

This approach may add a small size overhead (if it's not optimised away), but
removing -fvisibility-inlines-hidden adds about 0.3MB to the wx core libraries.

I'd probably make this conditional on GCC 4.9 being in use, or maybe GCC >=
4.9, to minimise the chance of potential issues with other compilers.

Thoughts or better ideas welcome.

> FYI, I'm attempting to open a bug report with wx upstream to make sure they're
> aware of this issue, and to see if they have a recommended workaround.  Sadly
> their bugtracker is giving me 500 errors when I try to submit it, but I'll
> retry periodically.

Still no luck here.

Cheers,
    Olly


Reply to: