Describe the bug
Windows 11 Pro 64bit.
After long time successful updates of V with v up (until before one or 2 weeks all was OK), but now:
c:\v on master ▓▒░ git pull && git submodule update --recursive
.....
after that:
❯ v up
Updating V...
git_command: git pull https://github.com/vlang/v master
backing up cmd/tools/vup.exe to cmd/tools/vup.exe_old.exe ...
"C:\v\v.exe" self failed, running make...
running make ...
make.bat failed:
make output:
Updating TCC
Syncing TCC from https://github.com/vlang/tccbin
Updating vc...
Sync with remote https://github.com/vlang/vc
Updating files: 100% (2/2), done.
Building V...
Attempting to build "./v_win_bootstrap.exe" (from ./vc/v.c) with "C:\v\thirdparty\tcc\tcc.exe"
In file included from ./vc/v.c:1138:
./vc/v.c:1138: error: include file 'sys/mman.h' not found
Backend compiler error
Exiting from error
ERROR: please follow the instructions in https://github.com/vlang/v/wiki/Installing-a-C-compiler-on-Windows
Current V version: V 0.5.1 e2a7043 , timestamp: 2026-03-15 18:05:32 +0300
Recompiling V failed .
Try running make.bat .
And:
---- MAKE in c:\v at 22.3.2026 г. 14:30:01 --------------------------------------------------------
❯ make.bat
Updating TCC
Syncing TCC from https://github.com/vlang/tccbin
Updating vc...
Sync with remote https://github.com/vlang/vc
Building V...
Attempting to build "./v_win_bootstrap.exe" (from ./vc/v.c) with "c:\v\thirdparty\tcc\tcc.exe"
In file included from ./vc/v.c:1138:
./vc/v.c:1138: error: include file 'sys/mman.h' not found
Backend compiler error
Exiting from error
ERROR: please follow the instructions in https://github.com/vlang/v/wiki/Installing-a-C-compiler-on-Windows
Reproduction Steps
Just try to update on Windows.
Expected Behavior
Update successfully as long time until now.
Current Behavior
ERROR!
Possible Solution
No response
Additional Information/Context
No response
V version
V 0.5.1 e2a7043
Environment details (OS name and version, etc.)
❯ v doctor
cannot compile C:\v\cmd\tools\vdoctor.v: 1
vlib/builtin/closure/closure.c.v:111:13: error: undefined ident: ppc64
109 | 0x01, 0x00, 0x00, 0x00 // nop
110 | ]!
111 | } $else $if ppc64 {
| ~~~~~
112 | [
113 | u8(0x7C), 0x08, 0x02, 0xA6, // mflr %r0
vlib/builtin/closure/closure.c.v:111:13: error: unknown var: ppc64
109 | 0x01, 0x00, 0x00, 0x00 // nop
110 | ]!
111 | } $else $if ppc64 {
| ~~~~~
112 | [
113 | u8(0x7C), 0x08, 0x02, 0xA6, // mflr %r0
vlib/builtin/closure/closure.c.v:184:13: error: undefined ident: ppc64
182 | 0x01, 0x00, 0x00, 0x00 // nop
183 | ]!
184 | } $else $if ppc64 {
| ~~~~~
185 | [
186 | u8(0x7d), 0xc3, 0x00, 0x66, // mfvsrd %r3, %f14
vlib/builtin/closure/closure.c.v:184:13: error: unknown var: ppc64
182 | 0x01, 0x00, 0x00, 0x00 // nop
183 | ]!
184 | } $else $if ppc64 {
| ~~~~~
185 | [
186 | u8(0x7d), 0xc3, 0x00, 0x66, // mfvsrd %r3, %f14
vlib/builtin/closure/closure.c.v:249:6: error: undefined ident: ppc64
247 | }
248 | // Setup global closure handler pointer
249 | $if ppc64 {
| ~~~~~
250 | mut desc := unsafe { &voidptr(&u8(g_closure.closure_ptr) - assumed_page_size) }
251 | unsafe {
vlib/builtin/closure/closure.c.v:249:6: error: unknown var: ppc64
247 | }
248 | // Setup global closure handler pointer
249 | $if ppc64 {
| ~~~~~
250 | mut desc := unsafe { &voidptr(&u8(g_closure.closure_ptr) - assumed_page_size) }
251 | unsafe {
vlib/builtin/closure/closure.c.v:286:7: error: undefined ident: ppc64
284 | // Write closure metadata (data + function pointer)
285 | mut p := &voidptr(&u8(curr_closure) - assumed_page_size)
286 | $if ppc64 {
| ~~~~~
287 | // ELFv1: guard page layout per slot:
288 | // [0] desc[0] = thunk code address <- returned as ELFv1 function pointer
vlib/builtin/closure/closure.c.v:286:7: error: unknown var: ppc64
284 | // Write closure metadata (data + function pointer)
285 | mut p := &voidptr(&u8(curr_closure) - assumed_page_size)
286 | $if ppc64 {
| ~~~~~
287 | // ELFv1: guard page layout per slot:
288 | // [0] desc[0] = thunk code address <- returned as ELFv1 function pointer
vlib/builtin/closure/closure.c.v:304:6: error: undefined ident: ppc64
302 |
303 | // Return executable closure object
304 | $if ppc64 {
| ~~~~~
305 | // ELFv1: return descriptor address (guard page), not raw code address
306 | return unsafe { &u8(curr_closure) - assumed_page_size }
vlib/builtin/closure/closure.c.v:304:6: error: unknown var: ppc64
302 |
303 | // Return executable closure object
304 | $if ppc64 {
| ~~~~~
305 | // ELFv1: return descriptor address (guard page), not raw code address
306 | return unsafe { &u8(curr_closure) - assumed_page_size }
If the code of your project is in a folder with multiple .v files, try v C:\v\cmd\tools instead of v C:\v\cmd\tools\vdoctor.v
Note
You can use the 👍 reaction to increase the issue's priority for developers.
Please note that only the 👍 reaction to the issue itself counts as a vote.
Other reactions and those to comments will not be taken into account.
Describe the bug
Windows 11 Pro 64bit.
After long time successful updates of V with v up (until before one or 2 weeks all was OK), but now:
c:\v on master ▓▒░ git pull && git submodule update --recursive
.....
after that:
❯ v up
Updating V...
Updating vc...
Building V...
Backend compiler error
Exiting from error
ERROR: please follow the instructions in https://github.com/vlang/v/wiki/Installing-a-C-compiler-on-Windows
Current V version: V 0.5.1 e2a7043, timestamp: 2026-03-15 18:05:32 +0300
Recompiling V failed.
Try running
make.bat.And:
---- MAKE in c:\v at 22.3.2026 г. 14:30:01 --------------------------------------------------------
❯ make.bat
Updating TCC
Updating vc...
Building V...
Backend compiler error
Exiting from error
ERROR: please follow the instructions in https://github.com/vlang/v/wiki/Installing-a-C-compiler-on-Windows
Reproduction Steps
Just try to update on Windows.
Expected Behavior
Update successfully as long time until now.
Current Behavior
ERROR!
Possible Solution
No response
Additional Information/Context
No response
V version
V 0.5.1 e2a7043
Environment details (OS name and version, etc.)
❯ v doctor
cannot compile
C:\v\cmd\tools\vdoctor.v: 1vlib/builtin/closure/closure.c.v:111:13: error: undefined ident:
ppc64109 | 0x01, 0x00, 0x00, 0x00 // nop
110 | ]!
111 | } $else $if ppc64 {
| ~~~~~
112 | [
113 | u8(0x7C), 0x08, 0x02, 0xA6, // mflr %r0
vlib/builtin/closure/closure.c.v:111:13: error: unknown var:
ppc64109 | 0x01, 0x00, 0x00, 0x00 // nop
110 | ]!
111 | } $else $if ppc64 {
| ~~~~~
112 | [
113 | u8(0x7C), 0x08, 0x02, 0xA6, // mflr %r0
vlib/builtin/closure/closure.c.v:184:13: error: undefined ident:
ppc64182 | 0x01, 0x00, 0x00, 0x00 // nop
183 | ]!
184 | } $else $if ppc64 {
| ~~~~~
185 | [
186 | u8(0x7d), 0xc3, 0x00, 0x66, // mfvsrd %r3, %f14
vlib/builtin/closure/closure.c.v:184:13: error: unknown var:
ppc64182 | 0x01, 0x00, 0x00, 0x00 // nop
183 | ]!
184 | } $else $if ppc64 {
| ~~~~~
185 | [
186 | u8(0x7d), 0xc3, 0x00, 0x66, // mfvsrd %r3, %f14
vlib/builtin/closure/closure.c.v:249:6: error: undefined ident:
ppc64247 | }
248 | // Setup global closure handler pointer
249 | $if ppc64 {
| ~~~~~
250 | mut desc := unsafe { &voidptr(&u8(g_closure.closure_ptr) - assumed_page_size) }
251 | unsafe {
vlib/builtin/closure/closure.c.v:249:6: error: unknown var:
ppc64247 | }
248 | // Setup global closure handler pointer
249 | $if ppc64 {
| ~~~~~
250 | mut desc := unsafe { &voidptr(&u8(g_closure.closure_ptr) - assumed_page_size) }
251 | unsafe {
vlib/builtin/closure/closure.c.v:286:7: error: undefined ident:
ppc64284 | // Write closure metadata (data + function pointer)
285 | mut p := &voidptr(&u8(curr_closure) - assumed_page_size)
286 | $if ppc64 {
| ~~~~~
287 | // ELFv1: guard page layout per slot:
288 | // [0] desc[0] = thunk code address <- returned as ELFv1 function pointer
vlib/builtin/closure/closure.c.v:286:7: error: unknown var:
ppc64284 | // Write closure metadata (data + function pointer)
285 | mut p := &voidptr(&u8(curr_closure) - assumed_page_size)
286 | $if ppc64 {
| ~~~~~
287 | // ELFv1: guard page layout per slot:
288 | // [0] desc[0] = thunk code address <- returned as ELFv1 function pointer
vlib/builtin/closure/closure.c.v:304:6: error: undefined ident:
ppc64302 |
303 | // Return executable closure object
304 | $if ppc64 {
| ~~~~~
305 | // ELFv1: return descriptor address (guard page), not raw code address
306 | return unsafe { &u8(curr_closure) - assumed_page_size }
vlib/builtin/closure/closure.c.v:304:6: error: unknown var:
ppc64302 |
303 | // Return executable closure object
304 | $if ppc64 {
| ~~~~~
305 | // ELFv1: return descriptor address (guard page), not raw code address
306 | return unsafe { &u8(curr_closure) - assumed_page_size }
If the code of your project is in a folder with multiple .v files, try
v C:\v\cmd\toolsinstead ofv C:\v\cmd\tools\vdoctor.vNote
You can use the 👍 reaction to increase the issue's priority for developers.
Please note that only the 👍 reaction to the issue itself counts as a vote.
Other reactions and those to comments will not be taken into account.