With gcc 7.4.0 (and maybe some other versions), "major" and "minor" are set as macro and expand to "gnu_dev_major" and "gnu_dev_minor".
These strings are used in the affected file for variable naming.
The attached patch undef the gcc renaming.
A syntax-highlighting user, Jonathan, reported the issue, provided the patch and tested it after trying to compile the project when the last commit was authored by me. Thank you Jonathan.