build Wine using Intel compiler (win32)

Paul Gofman gofmanp at gmail.com
Tue Dec 22 02:51:37 CST 2015


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.




More information about the wine-devel mailing list