storm-engine icon indicating copy to clipboard operation
storm-engine copied to clipboard

ToDo: return support for clang on Windows

Open q4a opened this issue 4 years ago • 1 comments

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:

  1. Wait for SDL 2.0.16 release.
  2. Add SDL 2.0.16 to bincrafters like this: https://github.com/bincrafters/community/commit/a60c4af61208799298b21bb3b797ae6efdd236da
  3. Return clang build on Windows and check errors. May be I can found some fix for crashpad/openssl build.

q4a avatar Apr 28 '21 23:04 q4a

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

espkk avatar Apr 30 '21 11:04 espkk