Skip to content

Update ebpf-for-windows to consume latest Prevail verifier changes #4832

@Alan-Jowett

Description

@Alan-Jowett

Description

The Prevail verifier has undergone significant updates between commits:

1d1d24600fc4a771b83064de41bdce0e2f5c030b → 5447d46a23990d3afc4ce4be76644dc7ec0b02d9

These changes introduce new features, bug fixes, and structural modifications that impact how ebpf-for-windows integrates with Prevail. This issue tracks the required updates to align with the latest upstream changes.


Key Changes in Prevail

  1. Namespace and Library Renaming

    • ebpf-verifier renamed to prevail in CMake and source files.
    • Namespace crab replaced with prevail.
    • Update all references in ebpf-for-windows build scripts and code.
  2. CMake and Build System Updates

    • Added cmake_policy(SET CMP0167 NEW) for modern CMake behavior.
    • Ensure ebpf-for-windows CMakeLists.txt reflects these changes.
  3. Code Structure Changes

    • CFG-related structures moved to cfg/ folder.
    • Verify any direct includes or assumptions in ebpf-for-windows code.
  4. Language and Compatibility Fixes

    • Fixes for C++23 compliance (e.g., iostream handling).
    • Confirm compatibility with current Visual Studio toolchain.
  5. Documentation Updates

    • README and build instructions updated in Prevail.
    • Sync relevant documentation in ebpf-for-windows.
  6. Verifier Behavior Enhancements

    • Improved termination checks for loops.
    • Better error messages and line-number reporting for debugging.
    • Validate that ebpf-for-windows tests cover these scenarios.

Action Items

  • Update submodule reference to latest Prevail commit (5447d46a23990d3afc4ce4be76644dc7ec0b02d9).
  • Modify CMakeLists.txt to reflect renamed library and namespace.
  • Adjust code references to new folder structure (cfg/).
  • Validate build against C++23 changes.
  • Run full test suite to confirm verifier integration works as expected.
  • Update documentation to reflect new build and integration steps.

References


Metadata

Metadata

Assignees

Labels

P2dependenciesPull requests that update a dependency filetriagedDiscussed in a triage meeting

Type

Projects

Status

In Progress

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions