Hi,
Just a note to say that the current releases of Alien-wxWidgets + Wx on
Windows using a mingw compiler with wxWidgets 2.9.2 may fail if you are
not using the default flags and settings.
If you're not using Windows, or not using mingw, or not using wxWidgets
2.9.2, then there is no problem. (so anyone installing via a cpan client
will be fine)
The problem : wxWidgets 2.9.2 release contains some changes to c++
exception handling ( whether by code changes or default build flags I'm
not sure).
It appears that this won't work if you are using SJLJ unwinding (set
jump long jump, I believe) handling and a static libstdc++. It appears
to be a similar issue to that which means you need mingwm10.dll or
libgcc_*.dll if your code throws exceptions across dlls.
When I released the latest CPAN dists, I added params to
Alien::wxWidgets and Wx to use a static libstdc++ if that option is
available as the mingw versions I tested against happen to work in that
configuration.
The version of gcc I have been using for nearly all my work has been
4.4.x - with a static libstdc++ - so that can't work with wxWidgets 2.9.2
GCC 4.5.x from mingw.org uses gcc dwarf2 unwinding by default (not SJLJ)
and so works fine if you use a static libstdc++.
I tested both 64 bit and 32 bit static builds using the TDM-GCC 4.6.1
multilib compiler. This uses SJLJ and all worked fine. However, I now
know it contains a raft of patches to allow static libstdc++ to work.
So for every mingw variant apart from the two I tested, my updated
Alien::wxWidgets build will fail.
I have a fix ( just use shared lib as default ) but want to test some
other parts ( getting the correct libgcc_ and libstdc++ to bundle )
against the most common mingw variants before a CPAN release so perhaps
a day or two before CPAN release. If you really want 2.9.2 on Windows
using mingw and can't wait you'll need a capable gcc version -
probably best to use one of the two I tested with.
As it isn't an issue that affects any default build, I imagine very few
folks would notice.
Regards
Mark