Community fork to accelerate development. Became the official GCC in 1999. The fork took over the project.
GCC (GNU Compiler Collection) is a compiler system that supports C, C++, Fortran, and other programming languages. It's the default compiler on most Linux systems and supports dozens of hardware architectures. In the 1990s, it was the critical piece of infrastructure that made free Unix-like operating systems practical.
By the mid-1990s, GCC was the most important compiler in the free software world—and one of the most frustrating to contribute to. The GNU Compiler Collection was maintained under Richard Stallman's FSF with a philosophy that prioritized stability and the GNU project's needs above all else. Experimental work piled up in external forks: Cygnus Solutions maintained their own patches, the Linux kernel developers had optimizations that couldn't get merged, the pgcc (Pentium GCC) project had Intel-specific improvements, and the Fortran community had their own fork. Everyone was doing great work. None of it was making it into mainline GCC.
On August 15, 1997, developers from Cygnus, the Linux community, and several other factions announced EGCS (Experimental/Enhanced GNU Compiler System, pronounced 'eggs'). The announcement came from D.V. Henkel-Wallace at Cygnus. The premise was simple: merge the scattered forks, accept contributions more readily, and develop more aggressively. Jeff Law coordinated the effort, handling releases, merging patches, and keeping the project on track.
The results were dramatic. EGCS development outpaced GCC development almost immediately. While FSF's GCC languished, EGCS shipped better optimization, added new architecture support, and attracted the developer energy that had been frustrated by GCC's slow pace. Linux distributions started shipping EGCS instead of GCC.
By April 1999, the FSF acknowledged reality: they halted GCC 2.x development, blessed EGCS as the official GCC, and appointed the EGCS team as the new GCC maintainers. The EGCS Steering Committee renamed itself the GCC Steering Committee. GCC 2.95, released in July 1999, was the reunification release. It was a hostile takeover disguised as a merge—and everyone was better off for it.
The EGCS fork fundamentally changed how GCC was governed, replacing the FSF's centralized gatekeeping with a community steering committee model that persists to this day.
GCC 1.0 released by FSF
EGCS announced as a merger of experimental GCC forks
EGCS 1.0 released, quickly adopted by Linux distributions
FSF blesses EGCS as official GCC, EGCS team becomes GCC maintainers
GCC 2.95 released as the reunification release
EGCS is the rare fork that didn't just succeed—it consumed the original. The fork-then-merge pattern it established became a template for other projects, most notably when the community fork proves more vigorous than the official version. The GCC Steering Committee model that emerged from EGCS still governs GCC today.
The fork also demonstrated that even the FSF's flagship projects weren't immune to community pressure. It shifted power from a single organization to a broader community of stakeholders, establishing a governance precedent that influenced numerous subsequent projects.