mirror of
https://github.com/microsoft/vscode.git
synced 2026-07-07 23:36:03 +01:00
f9c62da9f7
Node.js 23/24 linux-x64 build ships a dedicated `lpstub` PT_LOAD segment
aligned to 2 MiB (0x200000) so that, at startup the binary can remap its
.text region onto Linux hugepages for an iTLB win `--use-largepages=mode`.
WSL1 `binfmt_elf` strictly rejects any PT_LOAD whose `p_align`
exceeds the system page size (0x1000); the kernel returns ENOEXEC and the
shell reports "exec format error" before user space ever runs. This breaks
launching the bundled Node from the VS Code server under WSL1 starting
with Node 24.
The fix does not change runtime behavior:
- Node is a non-PIE EXEC binary with fixed virtual addresses
(`p_vaddr`, `p_paddr`); the loader maps each PT_LOAD at its
hard-coded address regardless of `p_align`, which on EXEC is
metadata describing alignment in memory rather than a request to
relocate.
- The hugepage optimization itself is performed at runtime
against the live mapping; it does not consult `p_align` and
is unaffected by this change.
- No shared libraries, native addons, or dynamic linker paths are
touched — only PT_LOAD segments inside the node executable itself.
VS Code Tests
Contents
This folder contains the various test runners for VS Code. Please refer to the documentation within for how to run them: