[Bug 1338043] Re: Using seh exceptions, win32 threads
That sounds perfect Stephen, thanks for the great work and the heads-up. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1338043 Title: Using seh exceptions, win32 threads To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-mingw-w64/+bug/1338043/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1338043] Re: Using seh exceptions, win32 threads
The changelog snippet given above doesn't explain how this bug was fixed: gcc-mingw-w64 now uses the upstream default exception handling (SJLJ for 32-bit Windows, SEH for 64-bit Windows), and provides two toolchains, one using Windows threads and one using POSIX threads. The required threading model can be selected using update-alternatives; the default is Windows threads to minimise the change since Debian's last stable release. A specific threading model can also be used for a given compilation by suffixing the compiler with either -posix or -win32, e.g. i686-w64-mingw32-gcc-posix to explicitly use POSIX threads. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1338043 Title: Using seh exceptions, win32 threads To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-mingw-w64/+bug/1338043/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1338043] Re: Using seh exceptions, win32 threads
This bug was fixed in the package gcc-mingw-w64 - 14.1 --- gcc-mingw-w64 (14.1) unstable; urgency=medium * Take the threading model into account when stripping libraries. -- Stephen Kitt Thu, 31 Jul 2014 07:27:45 +0200 ** Changed in: gcc-mingw-w64 (Ubuntu) Status: New => Fix Released -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1338043 Title: Using seh exceptions, win32 threads To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-mingw-w64/+bug/1338043/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1338043] Re: Using seh exceptions, win32 threads
** Branch linked: lp:debian/gcc-mingw-w64 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1338043 Title: Using seh exceptions, win32 threads To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-mingw-w64/+bug/1338043/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1338043] Re: Using seh exceptions, win32 threads
** Changed in: gcc-mingw-w64 (Debian) Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1338043 Title: Using seh exceptions, win32 threads To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-mingw-w64/+bug/1338043/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1338043] Re: Using seh exceptions, win32 threads
** Changed in: gcc-mingw-w64 (Debian) Status: New => Fix Committed -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1338043 Title: Using seh exceptions, win32 threads To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-mingw-w64/+bug/1338043/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1338043] Re: Using seh exceptions, win32 threads
The cross-compile from my own set of SEH, win32-threading debs worked nicely. There was one little hangup of strerror_s not existing in the msvcrt runtime when I try to run the cross-compiled binary on XP, but I think I can solve that with a configure flag in the library I'm building. Deciding to not support XP is an okay decision in my book, hopefully more people will agree with that over time. Overall I was pleasantly surprised how painless and relatively quick (only about 20 minutes, on an old computer) it was to build the set of modified MinGW debs, it felt much faster than the last time I built GCC from source on a non-Debian distribution. Maybe just because cross- compilers don't go through the whole bootstrap process? Anyway, in case it helps anyone who comes across this in the future, this was the set of steps I did to make it all work (reconstructed from my .bash_history): mkdir ~/GCC cd ~/GCC apt-get source gcc-mingw-w64 sudo apt-get build-dep g++-mingw-w64 sudo apt-get build-dep gfortran-mingw-w64 cd gcc-mingw-w64-12 # change --enable-threads=posix to --enable-threads=win32 # and remove --enable-sjlj-exceptions from debian/rules # change libgcc_s_sjlj-1.dll to libgcc_s_seh-1.dll in # debian/gcc-mingw-w64-x86-64.install dpkg-buildpackage -rfakeroot -uc -b cd .. sudo dpkg -i *.deb This overwrites the existing SJLJ, posix-threading MinGW packages I had installed, but I'm okay with that for now and it should be easy to get them back if I need them. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1338043 Title: Using seh exceptions, win32 threads To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-mingw-w64/+bug/1338043/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1338043] Re: Using seh exceptions, win32 threads
Actually I was thinking of spec files, not linker scripts, sorry! It would end up looking something like x86_64-w64-mingw32-gcc -mwin32threads to build with Win32 threads, etc. Or perhaps -mthreads=win32 (and -mthreads=posix), depending on what I can get the specs to do. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1338043 Title: Using seh exceptions, win32 threads To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-mingw-w64/+bug/1338043/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1338043] Re: Using seh exceptions, win32 threads
Thanks Stephen, glad you saw this. So it looks like I got a set of debs built okay from the source package without much trouble. I changed --enable-threads from posix to win32 in debian/rules, and deleted the line that said --enable-sjlj-exceptions. The gcc-mingw-w64-i686/usr/lib/gcc/i686-w64-mingw32/4.8 build result has an sjlj libgcc_s, and no libwinpthread. I also had to change debian/gcc- mingw-w64-x86-64.install to fix the 64 bit filename to now be libgcc_s_seh-1.dll. I'll give these debs I just built a try. Will take a while to rebuild the library I'm interested in at the moment, it has a bunch of big dependencies. You know better than I in terms of the best way to eventually set it up. But I'd be interested to see what it might look like from an end-user standpoint. Would alternatives be used to switch the default linker script between multiple options, possibly? -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1338043 Title: Using seh exceptions, win32 threads To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-mingw-w64/+bug/1338043/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1338043] Re: Using seh exceptions, win32 threads
** Changed in: gcc-mingw-w64 (Debian) Status: Unknown => New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1338043 Title: Using seh exceptions, win32 threads To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-mingw-w64/+bug/1338043/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1338043] Re: Using seh exceptions, win32 threads
I keep an eye on bugs filed here, so there's no need to push this to Debian (I'm the Debian packager for this). Your question covers similar issues to those raised in http://bugs.debian.org/750741 so I'm linking the two. With regards to a proper solution, I'd be interested in anything you can come up with. I'm working (slowly) on a way of providing both win32 and pthreads-based libraries simultaneously, using linker script switches to pick the right one. Switching between SJLJ and SEH will happen automatically at some point in the future, or rather SEH will become the default, since the patent has now expired. ** Bug watch added: Debian Bug tracker #750741 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=750741 ** Also affects: gcc-mingw-w64 (Debian) via http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=750741 Importance: Unknown Status: Unknown -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1338043 Title: Using seh exceptions, win32 threads To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-mingw-w64/+bug/1338043/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs