bazelbuild / bazelbuild/rules_java
Windows: statically link msvcrt into Java Tools
- Ngôn ngữ chính
- Starlark
- Star
- 103
- Fork
- 102
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Hi!
On Windows, the prebuilt tools in `remote_java_tools_windows` require the Microsoft VC++ Redistributable, for example:
```
external\rules_java++toolchains+remote_java_tools_windows\java_tools\ijar\ijar.exe
external\rules_java++toolchains+remote_java_tools_windows\java_tools\src\tools\singlejar\singlejar_local.exe
external\rules_java++toolchains+remote_java_tools_windows\java_tools\turbine_direct_graal.exe
```
Without the redist installed, these fail due to missing `msvcp140.dll`, `vcruntime140.dll`, `vcruntime140_1.dll` (exit code `-1073741515`).
Would it be possible link the MSVC runtime statically (i.e., `--features=static_link_msvcrt`) for these binaries, or ship the required VC++ runtime DLLs app‑local alongside the executables?
Related issue: https://github.com/bazelbuild/bazel/issues/8328.
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách kiểm tra cách các binary Windows trong remote_java_tools_windows được tạo ra, đặc biệt là ijar.exe, singlejar_local.exe và turbine_direct_graal.exe. Tái hiện lỗi trên một máy Windows không có Microsoft VC++ Redistributable, sau đó xác minh rằng thay đổi về đóng gói hoặc linking được chọn cho phép cả ba công cụ chạy mà không cần các DLL bị thiếu đó.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- build-system
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100