Skip to content

Add gcc-2.91.60 (egcs 1.1.1) and gcc-2.91.60-psx - #37

Merged
mkst merged 1 commit into
decompals:masterfrom
maggo:add-gcc-2.91.60
Oct 13, 2026
Merged

mkst merged 1 commit into
decompals:masterfrom
maggo:add-gcc-2.91.60

Conversation

@maggo

@maggo maggo commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

This adds egcs 1.1.1 (gcc 2.91.60), the release before the existing 2.91.66 (egcs 1.1.2), in both the plain and -psx flavours.

The Dockerfiles are copies of the 2.91.66 ones with only the source swapped to egcs-1.1.1.tar.bz2 from gcc.gnu.org's old-releases. Everything else is unchanged: the same psx-2.91.patch and mips.patch, the same configure and make lines, and the same smoke tests. patches/obstack-2.91.60.h.patch is a copy of the 2.91.66 one; it applies cleanly. I also added both versions to the CI matrix and the README list.

Both build with VERSION=2.91.60 make and VERSION=2.91.60-psx make, and all Dockerfile tests pass. Rebuilds give byte-identical cc1 and cc1plus (the -psx cc1plus sha256 is 558334b8f5c3f83796033fcda54a7d9e3641564b31148e05ca3e963df05b1f25).

Why it's useful: 1.1.1 and 1.1.2 generate noticeably different code in places. 1.1.2 added a delete_computation guard in jump.c, and struct/scalar aliasing became dependent on -fstructure-noalias. Some PS1 games appear to have been built with 1.1.1. One example is the Tony Hawk's Pro Skater 2 demo: on its decompilation, 1.1.1 matches 83 functions that 1.1.2 doesn't, and 1,644 of 1,646 in total.

Happy to adjust naming or drop the plain variant if you'd rather only ship -psx.

@mkst
mkst merged commit cf70ec5 into decompals:master Oct 13, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants