ToDo: return support for clang on Windows
Is your feature request related to a problem? Please describe.
I would like to keep current problems with clang on Windows in this place. Current problems clang on Windows:
1 - clang build failed with crashpad
PR: https://github.com/storm-devs/storm-engine/pull/58 build log: https://github.com/storm-devs/storm-engine/runs/2403689592?check_suite_focus=true#step:5:576 logs_214.zip
openssl/1.1.1j: ['"VC-conan-Debug-Windows-x86_64-clang-11"', 'no-shared', '--prefix="C:\\Users\\runneradmin\\.conan\\data\\openssl\\1.1.1j\\_\\_\\package\\0778b007b0f73be7de0191eacba7188d2bc2bd5a"', '--openssldir="C:\\Users\\runneradmin\\.conan\\data\\openssl\\1.1.1j\\_\\_\\package\\0778b007b0f73be7de0191eacba7188d2bc2bd5a\\res"', 'no-unit-test', 'threads', 'PERL=C:\\.conan\\18ba5c\\1\\bin\\perl.exe', 'no-tests', '--debug']
Bareword found where operator expected at (eval 13) line 12, near """C"
(Missing operator before C?)
Failure! build file wasn't produced.
Please read INSTALL and associated NOTES files. You may also have to look over
your available compiler tool chain or change your configuration.
syntax error at (eval 13) line 12, near """C"
This bug may be related: https://github.com/conan-io/conan-center-index/issues/96 But people says, that openssl/1.1.1c works fine with clang 8 + ninja: https://gist.github.com/uilianries/b114b80aff1c7f8eb5b2e2ae0bd7fd9e
2 - clang build failed with sdl 2.0.14
I replaced old PR, but has tree here: https://github.com/q4a/storm-engine/tree/fb484bbc50dee4f980918b595e633e7da7d6f704 build log: https://github.com/q4a/storm-engine/runs/2312924402?check_suite_focus=true#step:5:470 logs_78.zip
[10/167] Building C object source_subfolder/CMakeFiles/SDL2-static.dir/src/audio/SDL_audiocvt.c.obj
FAILED: source_subfolder/CMakeFiles/SDL2-static.dir/src/audio/SDL_audiocvt.c.obj
C:\PROGRA~2\MICROS~1\2019\ENTERP~1\VC\Tools\Llvm\x64\bin\clang.exe -DUSING_GENERATED_CONFIG_H -Isource_subfolder/include -I../source_subfolder/include -m64 -idirafter "C:/Users/runneradmin/.conan/data/sdl2/2.0.14/bincrafters/stable/build/265cb5137f80e3f8e990f2117e26e7b19cd62076/source_subfolder/src/video/khronos" "-IC:/Users/runneradmin/.conan/data/sdl2/2.0.14/bincrafters/stable/build/265cb5137f80e3f8e990f2117e26e7b19cd62076/source_subfolder/src/hidapi/hidapi" -msse3 -msse2 -msse -m3dnow -mmmx -Wshadow -Wdeclaration-after-statement -Werror=declaration-after-statement -fno-strict-aliasing -Wall -g -Xclang -gcodeview -O0 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -MD -MT source_subfolder/CMakeFiles/SDL2-static.dir/src/audio/SDL_audiocvt.c.obj -MF source_subfolder\CMakeFiles\SDL2-static.dir\src\audio\SDL_audiocvt.c.obj.d -o source_subfolder/CMakeFiles/SDL2-static.dir/src/audio/SDL_audiocvt.c.obj -c ../source_subfolder/src/audio/SDL_audiocvt.c
../source_subfolder/src/audio/SDL_audiocvt.c:58:15: error: unknown type name '__m128'
const __m128 divby2 = _mm_set1_ps(0.5f);
^
This bug related and fixed: https://github.com/libsdl-org/SDL/pull/4269 So, I hope to see fix in SDL 2.0.16: https://libsdl.org/next.php
Clang commits to revert:
https://github.com/storm-devs/storm-engine/commit/586c89a2fb874d2b9d99c395add800439ea3472d - return clang to CMakeSettings.json https://github.com/storm-devs/storm-engine/commit/adf1553649c6d1ef1e6f32ac05654632286649b9 - return clang to cibuild.yml
Describe the solution you'd like
I would like to:
- Wait for SDL 2.0.16 release.
- Add SDL 2.0.16 to bincrafters like this: https://github.com/bincrafters/community/commit/a60c4af61208799298b21bb3b797ae6efdd236da
- Return clang build on Windows and check errors. May be I can found some fix for crashpad/openssl build.
We definitely want to turn it back after we find a solution to make it work.
To the point, OpenSSL is likely sentry-native and not a crashpad dependency as crashpad is currently included as a binary blob. Since Conan's sentry-native package is anyway broken, I'll try to find a way to set up our own artifactory package with proper configuration and probably different OpenSSL version (though I don't really like downgrading security libraries).
UPD: yeah, that openssl is a dependency for libcurl/7.75.0 which sentry-native depends on. but 1.1.1c is too old, maybe we should investigate the problem with more recent versions