Fix CI by dan-hipschman · Pull Request #249 · sharkdp/hexyl
I went down a few rabbit holes trying to figure out the Windows GNU build, but am stumped. So I simply commented out that target (there is still Windows MSVC builds that pass).
So I give up. Here's some other maybe interesting findings though:
The action that installs the rustup toolchain reports using msvc even though gnu is being used:
rustup toolchain install stable --target x86_64-pc-windows-gnu --profile minimal --no-self-update
info: syncing channel updates for 'stable-x86_64-pc-windows-msvc'
info: latest update on 2025-04-03, rust version 1.86.0 (05f9846f8 2025-03-31)
info: component 'rust-std' for target 'x86_64-pc-windows-gnu' is up to date
stable-x86_64-pc-windows-msvc unchanged - rustc 1.86.0 (05f9846f8 2025-03-31)
The GNU binaries are much larger than the MSVC ones. Here are the MSVC ones:
runneradmin@fv-az1488-357 MINGW64 /d/a/hexyl/hexyl
# ls -lh target/x86_64-pc-windows-msvc/debug/deps/hexyl*
-rw-r--r-- 1 runneradmin None 175 May 13 21:13 target/x86_64-pc-windows-msvc/debug/deps/hexyl.d
-rwxr-xr-x 2 runneradmin None 2.2M May 13 21:13 target/x86_64-pc-windows-msvc/debug/deps/hexyl.exe
-rw-r--r-- 2 runneradmin None 14M May 13 21:13 target/x86_64-pc-windows-msvc/debug/deps/hexyl.pdb
-rw-r--r-- 1 runneradmin None 249 May 13 21:13 target/x86_64-pc-windows-msvc/debug/deps/hexyl-b6ee24b2b5b74e62.d
-rwxr-xr-x 1 runneradmin None 854K May 13 21:13 target/x86_64-pc-windows-msvc/debug/deps/hexyl-b6ee24b2b5b74e62.exe
-rw-r--r-- 1 runneradmin None 6.5M May 13 21:13 target/x86_64-pc-windows-msvc/debug/deps/hexyl-b6ee24b2b5b74e62.pdb
-rw-r--r-- 1 runneradmin None 289 May 13 21:13 target/x86_64-pc-windows-msvc/debug/deps/hexyl-ba814f80264cc325.d
-rwxr-xr-x 1 runneradmin None 957K May 13 21:13 target/x86_64-pc-windows-msvc/debug/deps/hexyl-ba814f80264cc325.exe
-rw-r--r-- 1 runneradmin None 6.8M May 13 21:13 target/x86_64-pc-windows-msvc/debug/deps/hexyl-ba814f80264cc325.pdb
-rw-r--r-- 1 runneradmin None 423 May 13 21:13 target/x86_64-pc-windows-msvc/debug/deps/hexyl-f9dcda7bb9d9d5f4.d
runneradmin@fv-az1488-357 MINGW64 /d/a/hexyl/hexyl
# file target/x86_64-pc-windows-msvc/debug/deps/hexyl*
target/x86_64-pc-windows-msvc/debug/deps/hexyl.d: ASCII text
target/x86_64-pc-windows-msvc/debug/deps/hexyl.exe: PE32+ executable for MS Windows 6.00 (console), x86-64, 5 sections
target/x86_64-pc-windows-msvc/debug/deps/hexyl.pdb: MSVC program database ver 7.00, 4096*3415 bytes
target/x86_64-pc-windows-msvc/debug/deps/hexyl-b6ee24b2b5b74e62.d: ASCII text
target/x86_64-pc-windows-msvc/debug/deps/hexyl-b6ee24b2b5b74e62.exe: PE32+ executable for MS Windows 6.00 (console), x86-64, 5 sections
target/x86_64-pc-windows-msvc/debug/deps/hexyl-b6ee24b2b5b74e62.pdb: MSVC program database ver 7.00, 4096*1655 bytes
target/x86_64-pc-windows-msvc/debug/deps/hexyl-ba814f80264cc325.d: TeX document, ASCII text
target/x86_64-pc-windows-msvc/debug/deps/hexyl-ba814f80264cc325.exe: PE32+ executable for MS Windows 6.00 (console), x86-64, 5 sections
target/x86_64-pc-windows-msvc/debug/deps/hexyl-ba814f80264cc325.pdb: MSVC program database ver 7.00, 4096*1735 bytes
target/x86_64-pc-windows-msvc/debug/deps/hexyl-f9dcda7bb9d9d5f4.d: TeX document, ASCII text
Unfortunately I lost the terminal history for the GNU version, but I remember the test executable was 14M (compared to < 1M for MSVC), and file reported it having 22 sections (compared to 5). You can see the size at least here. It seems that this is because the GNU toolchain embeds the debug info, whereas MSVC breaks it out into a .pdb file. Again, I have no idea if this is related, as it actually runs fine when I tried via SSH.