The DLL version of MKL 7.2.1 for IA-32 systems crashes when it runs on a pre-Pentium-III system. This is because the initial startup code for the MKL_C_DLL.LIB library contains an SSE instruction, which executes before the CPU type has even been detected and a CPU-specific library selected.
If you haven't tested your MKL-linked application on an older system you should probably check it before you ship.
The STMXCSR instruction occurs55 bytes from the start of __MKL_serv_load_dll in MKL_C_DLL.LIB. Looking at the surrounding assembly code makes the trouble clear:
6593E0A9 push edi 6593E0AA mov dword ptr [esp],0 6593E0B1 call _mkl_cfg_file (6593D35Ah) 6593E0B6 pop ecx 6593E0B7 stmxcsr dword ptr [ebp-10h] 6593E0BB wait 6593E0BC fnstcw word ptr [ebp-0Ch] 6593E0BF call __MKL_SERV_cpu_detect (65940124h)
Note that the SSE instruction occurs before the call to cpu_detect, so this is obviously wrong.
I hope a patch will be forthcoming soon, otherwise we'll have to regress to a previous version of MKL. We can't insist on a P3 for everyone.