GCC 8.2.0

onre

Administrator
Feb 8, 2019
59
18
8
Yes, we have working exceptions now. As a side effect, we have at least somewhat working C++14 as demonstrated by this screenshot of Worker 4.0.0.

51
 
Reactions: Elf

hammy

Member
Jun 1, 2019
51
21
8
UK
Some further progress notes (going is slow for the moment, holidays + other commitments):

  • All official GCC releases back to 4.8.0 exhibit the problem with base stack frames (broken C++ exceptions, debugging isn't reliable)
  • I've verified that the GIT version before IRIX support was removed is OK
  • I've verified that the GIT version after IRIX support was removed (and re-patched with our approach) is OK
Interestingly, patching support back in doesn't require forcing DWARF to version 2 and strictness in iris6.h - and in fact doing that that breaks base stack frames.

One other thing of interest - I've seen internal compiler errors when attempting to build some of these old GCC versions using our "semi-working GCC8" - so for the moment I'm bootstrapping these test versions using 4.7.4.

I'm currently building some tooling to automate as much of the "patch back irix support" - so now the job is to start bisecting between the version after IRIX support removal - and 4.8.0.

D
 

hammy

Member
Jun 1, 2019
51
21
8
UK
Good news - after 15 bisection jumps I present to you the first breaking commit:


Bad news - is a dooozy of a commit with lots of changes in there. And somewhere in there, is a breaking change.
 
Reactions: Elf

hammy

Member
Jun 1, 2019
51
21
8
UK
Far as I can tell, this patch gets exceptions + debugging working for me on top of a release 8.2.0 tarball.

Note: This isn't the same "root" (although it heavily borrows) from the sgug dev git tree - so it doesn't have cross compilation support. That exercise is left for dear reader .-)


Same pre-reqs and cycle of builds as per the other gcc versions.

I'll start a clean build of everything in "didbs" and make a tarball available over the next week with prebuilt versions for mips4/n32 so that people can kick the tyres without having to go through the pain of re-producing the build.