Skip to content

Commit

Permalink
Improve support for Windows cross compilation on targets with case se…
Browse files Browse the repository at this point in the history
…nsitive file systems.
  • Loading branch information
lerno committed Nov 21, 2024
1 parent ae1b39e commit ca0dc49
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 8 deletions.
9 changes: 6 additions & 3 deletions msvc_build_libraries.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,10 +234,13 @@ def first(items, cond):

SDK_OUTPUT.mkdir(exist_ok=True)

def copy(src, dst):
shutil.copy(src, dst.lower())

for arch in archs:
out_dir = SDK_OUTPUT / arch
shutil.copytree(ucrt / arch, out_dir, dirs_exist_ok=True)
shutil.copytree(um / arch, out_dir, dirs_exist_ok=True)
shutil.copytree(lib / arch, out_dir, dirs_exist_ok=True)
shutil.copytree(ucrt / arch, out_dir, copy_function=copy, dirs_exist_ok=True)
shutil.copytree(um / arch, out_dir, copy_function=copy, dirs_exist_ok=True)
shutil.copytree(lib / arch, out_dir, copy_function=copy, dirs_exist_ok=True)

print("Congratulations! The 'msvc_sdk' directory was successfully generated.")
1 change: 1 addition & 0 deletions releasenotes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
- Allow splat in initializers.
- Init command will now add `test-sources` to `project.json` #1520
- `a++` may be discarded if `a` is optional and ++/-- works for overloaded operators.
- Improve support for Windows cross compilation on targets with case sensitive file systems.

### Fixes
- Fix bug where `a > 0 ? f() : g()` could cause a compiler crash if both returned `void!`.
Expand Down
7 changes: 2 additions & 5 deletions src/compiler/linker.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,8 @@ static const char *ld_target(ArchType arch_type)
default:
error_exit("Architecture currently not available for cross linking.");
}

}



static void linker_setup_windows(const char ***args_ref, Linker linker_type, const char *output_file)
{
add_plain_arg(compiler.build.win.use_win_subsystem ? "/SUBSYSTEM:WINDOWS" : "/SUBSYSTEM:CONSOLE");
Expand Down Expand Up @@ -179,8 +176,8 @@ static void linker_setup_windows(const char ***args_ref, Linker linker_type, con
linking_add_link(&compiler.linking, "ntdll");
linking_add_link(&compiler.linking, "user32");
linking_add_link(&compiler.linking, "shell32");
linking_add_link(&compiler.linking, "Shlwapi");
linking_add_link(&compiler.linking, "Ws2_32");
linking_add_link(&compiler.linking, "shlwapi");
linking_add_link(&compiler.linking, "ws2_32");
linking_add_link(&compiler.linking, "legacy_stdio_definitions");

// Do not link any.
Expand Down

0 comments on commit ca0dc49

Please sign in to comment.