microcode is unsigned long long, printed by _small_sprintf using %x; Cygwin32 used last 4 bytes of microcode for next field MHz, printing 0; use correct _small_sprintf format %X to print microcode, producing correct MHz value under Cygwin32
THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cygwin documentation is available on the net at https://cygwin.com You might especially be interested in https://cygwin.com/faq/faq.html#faq.programming.building-cygwin