diff -ru a/mpcenc/keyboard.c b/mpcenc/keyboard.c --- a/mpcenc/keyboard.c 2006-12-19 21:39:02.000000000 +0200 +++ b/mpcenc/keyboard.c 2020-11-20 22:57:38.887871813 +0200 @@ -17,6 +17,7 @@ */ #include "mpcenc.h" +#include #if defined _WIN32 || defined __TURBOC__ diff -ru a/mpcenc/mpcenc.c b/mpcenc/mpcenc.c --- a/mpcenc/mpcenc.c 2009-08-26 23:39:06.000000000 +0300 +++ b/mpcenc/mpcenc.c 2020-11-20 22:26:44.207719376 +0200 @@ -1450,6 +1450,11 @@ FPU_GETCW ( cw ); cw &= ~0x300; FPU_SETCW ( cw ); +#elif defined __i386__ + // replaced _FPU_GETCW and _FPU_SETCW with code from glibc (sysdeps/x86/fpu_control.h) + __asm__ __volatile__ ("fnstcw %0" : "=m" (*&cw)) + cw &= ~0x300; + __asm__ __volatile__ ("fldcw %0" : : "m" (*&cw)) #elif defined __MINGW32__ __asm__ ("fnstcw %0" : "=m" (*&cw)); cw &= ~0x300; diff -ru a/mpcenc/mpcenc.h b/mpcenc/mpcenc.h --- a/mpcenc/mpcenc.h 2009-02-23 20:15:46.000000000 +0200 +++ b/mpcenc/mpcenc.h 2020-11-20 23:03:13.545972208 +0200 @@ -50,15 +50,6 @@ # include #endif -#if defined __linux__ -# include -#elif defined __FreeBSD__ -# include -#elif defined _MSC_VER -# include -#endif - - #if !defined(__APPLE__) // use optimized assembler routines for Pentium III/K6-2/Athlon (only 32 bit OS, Intel x86 and no MAKE_xxBITS) // you need the NASM assembler on your system, the program becomes a little bit larger and decoding