Dear all,
I compiled Wine with icc and found 2 issues, which I managed to fix in the code. The issues are:
1. Crash in Wine loader (at least with using Intel compiler) Checking return values from all the calls to wld_mprotect in loader/preloader.c solved the issue (apparently syscall was optimized out when return value was not used, which is likely a compiler problem)
2. msvcrt/math.c has a number of trigonometrical functions implementations named __libm_sse2_... (e. g., __libm_sse2_cos). icc substitutes these names for some of trigonometrical functions (e. g., tan is replaced internally by __libm_sse2_tan). This results in endless recursion and stack overflow both in __lib_sse2_tan and the ordinary tan function in msvcrt (which is get aliased to __libm_sse2_tan). I solved this by renaming these functions in the code but keeping the original export name through spec files.
Is there any chance for such changes to find the way upstream? If yes, could you please advice how is it best to proceed: create a bug first, or just send a patch (probably 2 separate patches) to wine-patches for review?
Thanks, Paul.