Skip to content

Align Debug/Release with native-only defaults (phase 1)#5058

Draft
Alan-Jowett wants to merge 1 commit intomicrosoft:mainfrom
Alan-Jowett:issue4997_part1
Draft

Align Debug/Release with native-only defaults (phase 1)#5058
Alan-Jowett wants to merge 1 commit intomicrosoft:mainfrom
Alan-Jowett:issue4997_part1

Conversation

@Alan-Jowett
Copy link
Copy Markdown
Member

@Alan-Jowett Alan-Jowett commented Feb 27, 2026

Description

Align Debug/Release behavior with current NativeOnly defaults for phase 1 of JIT/interpreter removal.

Changes in this PR:

  • Directory.Build.props: apply DisableJIT=true and DisableInterpreter=true to Debug and Release (while keeping existing NativeOnly* behavior unchanged).
  • docs/GettingStarted.md: update build guidance to state that Debug and Release now disable JIT/interpreter by default.

Part of #4997.

Testing

  • Built libs\kernel\execution_context_kernel for Debug|x64 and Release|x64 successfully.
  • Attempted a broader tests\unit_tests target build; it currently fails with an existing unrelated linker error in ebpfapi (prevail::make_kfunc_call unresolved).

Documentation

Yes. Updated docs/GettingStarted.md to reflect Debug/Release default behavior.

Installation

No installer impact from this change.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Aligns the default Debug/Release build behavior with the repository’s existing NativeOnly* defaults as an initial step toward removing JIT/interpreter support (#4997).

Changes:

  • Updates Directory.Build.props so Debug and Release also set DisableJIT=true and DisableInterpreter=true.
  • Updates docs/GettingStarted.md to reflect the new Debug/Release defaults in build instructions.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
Directory.Build.props Expands the configuration condition so DisableJIT/DisableInterpreter are enabled for Debug and Release in addition to NativeOnly*.
docs/GettingStarted.md Updates Getting Started guidance to state Debug/Release now disable JIT/interpreter by default.

Comment on lines 97 to +106
##### Setting compile time options when building from Developer Command Prompt

To build with the specific compile time options for disabling JIT compiler and/or the Interpreter, append "`/p:<option>=True`". Available options are:
`Debug` and `Release` configurations now compile with both JIT compiler and interpreter disabled by default
(the same behavior as `NativeOnlyDebug` and `NativeOnlyRelease`).
The following properties are still available for explicit configuration:

1. `DisableJIT` - Compile eBPF's *execution context* without support for eBPF JIT compiler.
1. `DisableInterpreter` - Compile eBPF's *execution context* without support for eBPF interpreter.

Both options are set when compiling with the "NativeOnlyDebug" or "NativeOnlyRelease" configurations.
Both options are enabled by default in `Debug`, `Release`, `NativeOnlyDebug`, and `NativeOnlyRelease`.
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section is titled as guidance for setting compile-time options from the Developer Command Prompt, but after the edit it no longer explains how to pass these properties to MSBuild (e.g., using /p:DisableJIT=... and /p:DisableInterpreter=...). Consider adding back a concrete command-line example (including how to override the new defaults when needed) so the section remains actionable.

Copilot uses AI. Check for mistakes.
Comment on lines +99 to 104
`Debug` and `Release` configurations now compile with both JIT compiler and interpreter disabled by default
(the same behavior as `NativeOnlyDebug` and `NativeOnlyRelease`).
The following properties are still available for explicit configuration:

1. `DisableJIT` - Compile eBPF's *execution context* without support for eBPF JIT compiler.
1. `DisableInterpreter` - Compile eBPF's *execution context* without support for eBPF interpreter.
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor grammar/punctuation: the sentence about Debug/Release defaults reads as a statement but is missing a trailing period and would read more cleanly as a complete sentence (e.g., add punctuation and consider adding 'the' before 'JIT compiler'/'interpreter').

Suggested change
`Debug` and `Release` configurations now compile with both JIT compiler and interpreter disabled by default
(the same behavior as `NativeOnlyDebug` and `NativeOnlyRelease`).
The following properties are still available for explicit configuration:
1. `DisableJIT` - Compile eBPF's *execution context* without support for eBPF JIT compiler.
1. `DisableInterpreter` - Compile eBPF's *execution context* without support for eBPF interpreter.
`Debug` and `Release` configurations now compile with both the JIT compiler and the interpreter disabled by default
(the same behavior as the `NativeOnlyDebug` and `NativeOnlyRelease` configurations).
The following properties are still available for explicit configuration:
1. `DisableJIT` - Compile eBPF's *execution context* without support for the eBPF JIT compiler.
1. `DisableInterpreter` - Compile eBPF's *execution context* without support for the eBPF interpreter.

Copilot uses AI. Check for mistakes.
@Alan-Jowett Alan-Jowett force-pushed the issue4997_part1 branch 2 times, most recently from 839b6f8 to 7cffe55 Compare March 2, 2026 18:15
@Alan-Jowett Alan-Jowett added this to the 2603 milestone Mar 3, 2026
@Alan-Jowett Alan-Jowett force-pushed the issue4997_part1 branch 2 times, most recently from bac4199 to b0bdca3 Compare March 5, 2026 16:41
Enable DisableJIT and DisableInterpreter for Debug/Release to match NativeOnly behavior and update GettingStarted docs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.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.

2 participants