-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exception handling totally broken on i686 #4728
Comments
Building gcc 7.3.0-2 (after git checkout 0145502) yields a compiler that creates executables with the same problem. Now I'll revert to some old mingw-runtime to check if it changes anything. Already checked that binutils is not the culprit, because building gcc (8.2) with version 2.28 solves nothing. |
Building after reverting the runtime with
produces a faulty compiler. More precise, the problem is with gcc-libs. Using the mingw-w64-i686-gcc-libs package from the official repo works fine, even with the new compiler. Trying to build gcc 7.3.0 with a MinGW-w64 CRT 5.0.0 fails with
Of course, those libraries are listed on I think that something changed on the CRT that "infects" the gcc-libs breaking exception support. Probably is the cause of the Ada breakage too. Next thing is to find (or build) a CRT prior to the problematic change and that does not break the gcc build with bogus errors about missing GMP/MPFR/MPC. |
Tried
The resulting gcc has the same problem. That version of the mingw-w64 runtime was packaged on December 2017, while gcc 7.3.0-2 was packages on April 2018. |
Downgrading binutils and winpthread to versions published before the "good" gcc 7.3.0-2 was released does not produce a good gcc-libs package. The simple test case on the original message of this PR, compiled with the good 7.3.0-2 packages, fails as soon as the just-built 7.3.0-2 gcc-libs is installed. I can't see how the rest of the Too bad that we have no reproducible builds nor something like Nix. |
It probably means building gmp code failed, you might find something useful in config.log. |
Because of this change:
|
Grep will be downgraded in repo soon |
Trying to attack #4543.
Starting with this simple case, where gcc is 8.2.1/i686 (sans ada/obj-c/fortran):
However, if the program is compiled with gcc 7.3.0-2, the program and gdb works fine.
Thus, the debugger is of no help. Bisection is not an option either, when a gcc build takes 1 hour.
My suspicion is a codegen bug on throw or catch.
Any ideas about how to chase this bug?
The text was updated successfully, but these errors were encountered: