Align Debug/Release with native-only defaults (phase 1)#5058
Align Debug/Release with native-only defaults (phase 1)#5058Alan-Jowett wants to merge 1 commit intomicrosoft:mainfrom
Conversation
There was a problem hiding this comment.
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.propssoDebugandReleasealso setDisableJIT=trueandDisableInterpreter=true. - Updates
docs/GettingStarted.mdto reflect the newDebug/Releasedefaults 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. |
| ##### 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`. |
There was a problem hiding this comment.
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.
| `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. |
There was a problem hiding this comment.
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').
| `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. |
839b6f8 to
7cffe55
Compare
bac4199 to
b0bdca3
Compare
b0bdca3 to
87a61af
Compare
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>
87a61af to
8c301dd
Compare
Description
Align Debug/Release behavior with current NativeOnly defaults for phase 1 of JIT/interpreter removal.
Changes in this PR:
Directory.Build.props: applyDisableJIT=trueandDisableInterpreter=truetoDebugandRelease(while keeping existingNativeOnly*behavior unchanged).docs/GettingStarted.md: update build guidance to state thatDebugandReleasenow disable JIT/interpreter by default.Part of #4997.
Testing
libs\kernel\execution_context_kernelforDebug|x64andRelease|x64successfully.tests\unit_teststarget build; it currently fails with an existing unrelated linker error inebpfapi(prevail::make_kfunc_callunresolved).Documentation
Yes. Updated
docs/GettingStarted.mdto reflect Debug/Release default behavior.Installation
No installer impact from this change.