Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sentry-native -> external/crashpad -> third_party/zlib is out of date #907

Closed
1 of 3 tasks
compnerd opened this issue Nov 22, 2023 · 2 comments · Fixed by #912
Closed
1 of 3 tasks

sentry-native -> external/crashpad -> third_party/zlib is out of date #907

compnerd opened this issue Nov 22, 2023 · 2 comments · Fixed by #912

Comments

@compnerd
Copy link

Description

sentry-native has a dependency on crashpad, where crashpad is a fork of the Google crashpad repository. This repository has its own dependencies, including zlib. This repository is pinned in the sentry fork to 13dc246a58e4b72104d35f9b1809af95221ebda7. However, upstream has changes to zlib which are important for supporting Windows ARM64. The current upstream repository has rolled up this dependency to fef58692c1d7bec94c4ed3d030a45a1832a9615d. Note that this is 1 change behind the current ToT for the zlib fork that crashpad uses, but it would be inline with the upstream DEPS file rollup.

When does the problem happen

  • During build
  • During run-time
  • When capturing a hard crash

Environment

  • OS: Windows 11 22H2 22621.2715 X64
  • Compiler: 19.37.32825
  • CMake version and config: 3.26.4-msvc4
cmake -B out -G "Visual Studio 17 2022" -D CMAKE_BUILD_TYPE=RelWithDebInfo -A ARM64 -D CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION=10.0.19041.0

Steps To Reproduce

Just configure with the above and then run cmake --build out

Log output

MSBuild version 17.7.2+d6990bcfa for .NET Framework

  crashpad_compat.vcxproj -> S:\SourceCache\getsentry\sentry-native\out\crashpad_build\compat\Debug\crashpad_compat.lib
  adler32.c
  compress.c
  crc32.c
  deflate.c
S:\SourceCache\getsentry\sentry-native\external\crashpad\third_party\zlib\zlib\deflate.c(2226,9): error C2220: the following warning is treated as an error [S:\SourceCache\getsentry\sentry-native\out\crashpad_build\third_party\zlib\crashpad_zlib.vcxproj]
S:\SourceCache\getsentry\sentry-native\external\crashpad\third_party\zlib\zlib\deflate.c(2226,9): warning C4013: '_mm_crc32_u32' undefined; assuming extern returning int [S:\SourceCache\getsentry\sentry-native\out\crashpad_build\third_party\zlib\crashpad_zlib.vcxproj]
  gzclose.c
  gzlib.c
  gzread.c
  gzwrite.c
  infback.c
  inffast.c
  inflate.c
  inftrees.c
  trees.c
  uncompr.c
  zutil.c
  crc_folding.c
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.37.32822\include\emmintrin.h(20,1): fatal  error C1189: #error:  This header is specific to X86, X64, ARM64, and ARM64EC targets [S:\SourceCache\getsentry\sentry-native\out\crashpad_build\third_party
\zlib\crashpad_zlib.vcxproj]
  fill_window_sse.c
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.37.32822\include\immintrin.h(15,1): fatal  error C1189: #error:  This header is specific to X86, X64, ARM64, and ARM64EC targets [S:\SourceCache\getsentry\sentry-native\out\crashpad_build\third_party
\zlib\crashpad_zlib.vcxproj]
  x86.c
S:\SourceCache\getsentry\sentry-native\external\crashpad\third_party\zlib\zlib\x86.c(81,5): error C2220: the following warning is treated as an error [S:\SourceCache\getsentry\sentry-native\out\crashpad_build\third_party\zlib\crashpad_zlib.vcxproj]
S:\SourceCache\getsentry\sentry-native\external\crashpad\third_party\zlib\zlib\x86.c(81,5): warning C4013: '__cpuid' undefined; assuming extern returning int [S:\SourceCache\getsentry\sentry-native\out\crashpad_build\third_party\zlib\crashpad_zlib.vcxproj]
  Generating Code...
  mini_chromium.vcxproj -> S:\SourceCache\getsentry\sentry-native\out\crashpad_build\third_party\mini_chromium\Debug\mini_chromium.lib
  crashpad_getopt.vcxproj -> S:\SourceCache\getsentry\sentry-native\out\crashpad_build\third_party\getopt\Debug\crashpad_getopt.lib
  crashpad_tools.vcxproj -> S:\SourceCache\getsentry\sentry-native\out\crashpad_build\tools\Debug\crashpad_tools.lib
  crashpad_wer.vcxproj -> S:\SourceCache\getsentry\sentry-native\out\crashpad_build\handler\Debug\crashpad_wer.dll
@getsantry getsantry bot moved this to Waiting for: Product Owner in GitHub Issues with 👀 Nov 22, 2023
@compnerd compnerd changed the title sentry-native -> third_party/crashpad -> third_party/zlib is out of date sentry-native -> external/crashpad -> third_party/zlib is out of date Nov 22, 2023
@supervacuus
Copy link
Collaborator

Hi @compnerd. Our upstream updates keep all third-party dependencies pulled via submodules consistent with the DEPS in the targeted crashpad revision.

That means with the next update, we will update zlib to fef58692c1d7bec94c4ed3d030a45a1832a9615d and mini_chromiumto 9e21183c1ea369398d6f6ddd302c8db580bd19c4. This will happen this week or at the start of next week.

@supervacuus
Copy link
Collaborator

We currently do not officially support Windows on ARM64, even if Crashpad does, because we have no stable CI environment for that platform.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants