Почему именно gcc 4.5.3? У меня 4.5.2, обновить не проблема но лень. ufasoft выдаёт 0 MHASH.
Насчёт "нормальной 64-битной версии под Linux" - я искал ту проблему, на которую ругается компилятор, и нашёл. Дело в том, что задавать тип языка для 64-битного ассемблера MASM не надо. Соответствующую ошибку исправляли в официальном MASM когда-то давно. Поэтому в коде и сказано "IF X64 ELSE и назначен язык". Для X64 никаких действий не выполняется. Если сделать чтобы выполнялись (удалив все эти IF и ELSE) то всё компилируется. Только вот не работает (у меня).