Skip to content

fix(sysdig): handle Windows plugin paths and improve error reporting#2187

Draft
therealbobo wants to merge 7 commits into
draios:devfrom
therealbobo:therealbobo-various-fixes
Draft

fix(sysdig): handle Windows plugin paths and improve error reporting#2187
therealbobo wants to merge 7 commits into
draios:devfrom
therealbobo:therealbobo-various-fixes

Conversation

@therealbobo

Copy link
Copy Markdown
Contributor

No description provided.

Signed-off-by: Roberto Scolaro <roberto.scolaro21@gmail.com>
- CMakeLists: use the $<CONFIG> generator expression instead of the
  MSBuild-only $(Configuration) placeholder when copying chisels/binaries
- sysdig: don't mistake a Windows drive-letter colon ("C:\path") for the
  name:config separator when parsing -H plugins and inputs
- plugin_utils: accept backslash and drive-letter plugin paths on Windows,
  and reuse the canonical plugin name to avoid duplicate entries
- sysdig: print std::exception messages (and a note for unknown exceptions)
  instead of swallowing them silently

Signed-off-by: Roberto Scolaro <roberto.scolaro21@gmail.com>
On the newer windows-latest image the unquoted -DCMAKE_POLICY_VERSION_MINIMUM=3.5
was being split so CMake only saw "3", failing configure with
"Invalid CMAKE_POLICY_VERSION_MINIMUM value '3'". Quote it to keep 3.5 intact.

Signed-off-by: Roberto Scolaro <roberto.scolaro21@gmail.com>
Add a windows-11-arm/arm64 entry to both the CI and release-draft build
matrices, and broaden the NSIS install step to run on any Windows runner.

Signed-off-by: Roberto Scolaro <roberto.scolaro21@gmail.com>
The container plugin is built from source on Windows, and its nested cmake
configure runs a try_compile. On the windows-11-arm runner a leftover MSBuild
node deadlocks that try_compile, hanging the whole build until the 6h timeout.

Set MSBUILDDISABLENODEREUSE=1 for the Build step so each MSBuild invocation
(including the nested try_compile) exits cleanly, and add a 45m job timeout so
any future hang fails fast instead of blocking a runner for hours.

Signed-off-by: Roberto Scolaro <roberto.scolaro21@gmail.com>
…ows arm64

On Windows we build the container plugin from source. It FetchContent's
RE-flex v5.3.0, whose SIMDTestAndSetup.cmake uses check_cxx_source_runs() to
detect NEON. On the windows-11-arm runner that test compiles and then *runs* a
scratch executable, which hangs the build until the job timeout.

Pass -DUSE_NEON=OFF to the plugin's configure so RE-flex skips the NEON
run-test (scalar fallback). It's correctness-safe and a no-op on Windows
x86_64, where the NEON intrinsics wouldn't compile anyway.

Signed-off-by: Roberto Scolaro <roberto.scolaro21@gmail.com>
msvcbuild.bat picks its DynASM source from %VSCMD_ARG_TGT_ARCH%. That variable
is set by a VS developer prompt but is absent inside CMake's MSBuild custom
build step, so the script defaulted to the x64 source (vm_x64.dasc) regardless
of the real compiler. On the windows-11-arm runner this generated a
buildvm_arch.h referencing CCallState.nfpr (an x64-only field), and the arm64
build failed with 'error C2039: nfpr is not a member of CCallState'.

Derive the target arch from CMAKE_VS_PLATFORM_NAME and pass it through so the
generated DynASM source matches the compiler. No change for x64 builds.

Signed-off-by: Roberto Scolaro <roberto.scolaro21@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant