Mono C# compiler gmcs has been available as backward compatibility script for years.
Starting with Mono version 2.11 a new unified compiler mcs is available. It replaces all previous runtime specific compilers (gmcs, dmcs, smcs). They still exist (as scripts only) to ease the migration path to mcs but we strongly recommend to use mcs.
But Mono 126.96.36.199 and later no longer ships with it.
This makes it impossible to build Thrift C# library on modern Mono.
The patch does the following
- check mono version and availability of mcs executable
- if mono >= 2.11 and mcs is there, use mcs
- if not, use gmcs and nothing changes as before