[Bug 510949] New: upgrade to gcc 4.4.0 proper and mingw upstream
by Red Hat Bugzilla
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.
Summary: upgrade to gcc 4.4.0 proper and mingw upstream
https://bugzilla.redhat.com/show_bug.cgi?id=510949
Summary: upgrade to gcc 4.4.0 proper and mingw upstream
Product: Fedora
Version: rawhide
Platform: All
OS/Version: Linux
Status: NEW
Severity: low
Priority: low
Component: mingw32-gcc
AssignedTo: rjones(a)redhat.com
ReportedBy: htl10(a)users.sourceforge.net
QAContact: extras-qa(a)fedoraproject.org
CC: berrange(a)redhat.com, rjones(a)redhat.com,
fedora-mingw(a)lists.fedoraproject.org
Classification: Fedora
Description of problem:
gcc 4.4 was released on 21st April, a little later than feature fedora 11
freeze; and the mingw people has also released a mingw patch set, with some
mingw specific changes a few weeks ago... wouldn't it be nice to upgrade and
synchronization with upstream (gcc or mingw)?
I also noted that the fedora shipped compiler uses sjlj exception, apparently
dwarf2 is the supported model...
--
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
13 years, 11 months
Switching to DWARF2 exceptions
by Kalev Lember
Hello,
We've talked about switching from SJLJ exceptions to DWARF2 for a while.
Last time when we were asked to switch over [1], it was too late in
Fedora release cycle to do it without compromising stability. However,
now that F-13 cycle has begun, I think it would be right time to switch.
Switching to DWARF2 is needed to fix binary compatibility with upstream
mingw gcc 4 compiler. Besides that, SJLJ has runtime cost in the common
case when no exceptions are thrown; DWARF2 doesn't have that problem.
MinGW upstream also thinks that DWARF2 should be made default in FSF GCC
in the future [2].
I have prepared needed changes to do the switchover. My tests show that
throwing exceptions between mingw DLLs works correctly with DWARF2. But
DWARF2 also includes a regression: unwinding through DLLs that use SEH
exceptions (Visual Studio compilers produce that) no longer works. To
work around that, upstream mingw has a patch to annotate functions which
support unwinding with SEH with __attribute__((seh_aware)). I've tested
that patch and it really does fix binary compatibility with binaries
produced by Visual Studio.
After the switchover mingw32-gcc will no longer provide
"mingw32(libgcc_s_sjlj-1.dll)". There are a number of mingw32- packages
that require that; I'll need to rebuild those in correct depencency
order to fix broken deps. The affected packages are:
$ sudo repoquery --disablerepo=* --enablerepo=rawhide --qf
'%{sourcerpm}' --whatrequires 'mingw32(libgcc_s_sjlj-1.dll)' | sort |
uniq | sed 's/-[^-]*-[^-]*\.src.rpm//'
mingw32-boost
mingw32-cairomm
mingw32-cppunit
mingw32-enchant
mingw32-gettext
mingw32-glibmm24
mingw32-gtkmm24
mingw32-hunspell
mingw32-libglademm24
mingw32-libsigc++20
mingw32-libsqlite3x
mingw32-libtiff
mingw32-libxml++
mingw32-pangomm
mingw32-plib
mingw32-plotmm
mingw32-pthreads
mingw32-qt
mingw32-qwt
mingw32-zfstream
I'll request commit access for each of those in pkgdb and rebuild the
affected packages myself. I'm not very interested in having tons of
broken dependencies introduced in rawhide, and the only way to avoid
that is to rebuild the packages quickly.
Also note that mingw32-qwt currently fails to rebuild in rawhide and
will have a broken dep; Thomas Sailer said that qwt author thinks it's a
bug in Qt itself.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=510949
[2] http://thread.gmane.org/gmane.comp.gnu.mingw.devel/3331/focus=3348
--
Kalev
14 years, 4 months