Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

msvc-compilers

Containerized historical Microsoft Visual C++ command-line tools for modern Linux, running under wibo.

This is a curated compiler suite, not an attempt to preserve every MSVC release. Its scope is Visual C++ 4.0, 4.2, 5.0 RTM/SP3, and Visual C++ 6.0 compiler builds 8168, 8447, and 8966. VC5 and VC6 images carry the original static MFC include/library trees needed by period MFC applications.

Versions

Image Compiler Linker Status
msvc-4.00-wibo 10.00.5270 3.00.5270 available
msvc-4.20-wibo 10.20.6166 4.20.6164 available
msvc-5.00-wibo 11.00.7022 5.00.7022 available
msvc-5.10-wibo 11.00.7022 5.10.7303 available
msvc-6.00-8168-wibo 12.00.8168 / build 8168 6.00.8168 available
msvc-6.00-8447-wibo 12.00.8168 / build 8447 6.00.8447 available
msvc-6.00-8966-wibo 12.00.8804 / build 8966 6.00.8447 available

This repository contains no Microsoft media or binaries. scripts/fetch-sources.sh downloads eight original media artifacts from the Internet Archive into the ignored archives/ directory and verifies every complete file against scripts/SHA256SUMS. Command-line trees are extracted only inside container build stages. See THIRD_PARTY.md.

Quick start

scripts/fetch-sources.sh
scripts/build-images.sh
tests/run-tests.sh

Compile a translation unit through the suite's standard /src mount:

podman run --rm -v "$PWD:/src" msvc-4.00-wibo \
  cl.exe /nologo /c /Od /Zp1 source.c

Published images use the corresponding registry-qualified name:

podman pull ghcr.io/second-impressions/msvc-4.00-wibo
podman pull ghcr.io/second-impressions/msvc-4.20-wibo
podman pull ghcr.io/second-impressions/msvc-5.00-wibo
podman pull ghcr.io/second-impressions/msvc-5.10-wibo
podman pull ghcr.io/second-impressions/msvc-6.00-8168-wibo
podman pull ghcr.io/second-impressions/msvc-6.00-8447-wibo
podman pull ghcr.io/second-impressions/msvc-6.00-8966-wibo

Published images use the same names beneath the ghcr.io/second-impressions registry. Local builds use the bare names shown in the table.

Image contract

  • working directory: /src
  • bind mount: -v HOST_DIRECTORY:/src
  • entrypoint: accepts cl, cl.exe, link, lib, or nmake
  • INCLUDE: Z:\\opt\\msvc\\INCLUDE, plus Z:\\opt\\msvc\\MFC\\INCLUDE when the image supplies MFC
  • LIB: Z:\\opt\\msvc\\LIB, plus Z:\\opt\\msvc\\MFC\\LIB when present wibo maps Windows drive paths such as Z:\\opt\\msvc onto the container filesystem. The shim supplies Windows-style PATH, INCLUDE, and LIB values so cl.exe can spawn c1.exe, c2.exe, and link.exe normally. With no arguments, the entrypoint opens an interactive Bash shell.

Provenance

Local file Internet Archive item Size SHA-256 IA SHA-1
MSVC40.iso msvc4x 555,663,360 961326efbfbd299794e2cbb102e9ff3bfe78ebf91a11b89978095f59e0aea93e 81e139ac41d76740a6ba6d474355b37ed2e46c66
MSVC42EE1.iso msvc4x 482,951,168 fdf6c4f696f80759a9a1d7d1aa0b6b6d455debd4fa12b6d1711799a2ca1320a3 49c53f4385cdc9bbd7e7262431c656c9f34e2334
MSVC50.iso microsoft-visual-cpp-5.0-enterprise 663,525,376 b570a6733f4bd50af4b01594c063294d0808ac2708d66daa34ce176c673c981a 0892a7bd6f5d38f1e4d857a1101b79f5f3f6b13f
VS97SP3.zip vs97sp3 95,851,751 bd47cf619297b3d4b27b5a5fe60d9c0df09b1519e0e7e2c8ea8a09cf98cf882c 10a818f34b7223d4cbd2c99efb0e52c9efcd3bfc
VS6RTM.iso visualstudiov60enterpriseedition_199807 643,291,136 fbcc23765fd3377b8e05f4c1f90151e2f7b3c928b1d4f2595242c92ebe99fab8 05baa55f04d57567e57bc159495e387013fecb95
VS6SP3.iso msvs6sp3 681,895,936 92122f31beb62d99eb6a0545f5af0366caaa940b46515cd393ca15fe03741814 b2ca07951bf6460dc5c2a1b64faac71ff3af2b3e
VS6SP3-TechNet.iso ms-technet-tnsb9908 593,764,352 f3eefbd0b7d7958a44ef63c2bb28bcf75ef8d5adcd2e65082f54fb399004a928 bf599ed15861b69ea89ffa52626eb252df2053be
VS6SP5.exe vs6sp5 136,410,832 10a834041223ad21181c0e87c0a90930d976498556af2e8f959a044101e6a604 6af12fb3e2c7c271be67c9c9833c63b82bb7b9bf

The 4.x images extract MSDEV/{BIN,INCLUDE,LIB} directly from their ISOs. The 5.00 image extracts DEVSTUDIO/VC/{BIN,INCLUDE,LIB,MFC/{INCLUDE,LIB}} plus MSPDB50.DLL from the RTM ISO. The 5.10 image derives from that RTM tree and overlays the English VC files, common headers, CRT/MFC libraries, and PDB support from the original SP3 CAB set. Extraction scripts verify representative compiler, code-generator, linker, CRT and MFC hashes in addition to the complete-media hashes above. The SP3 LIBCMT.LIB and NAFXCW.LIB identities are asserted explicitly so downstream matching projects cannot silently use a different library revision.

The VC6 RTM image extracts VC98/{BIN,INCLUDE,LIB,MFC/{INCLUDE,LIB}} and MSPDB60.DLL from original Disc 1. Build 8447 overlays the normal English SP3 files from the pressed multilingual SP3 CD and the C/C++ back end from Microsoft's Internet/Core SP3 distribution preserved on TechNet. Microsoft ships that back end as msvcep.dll; setup installs it as VC98/BIN/C2.DLL. Build 8966 then overlays the original cumulative SP5 package in the same way. Every layer verifies full-media SHA-256 plus exact front end, back end, linker, CRT, and MFC library hashes. The tests also compile a probe and assert the Rich compiler build, so an incomplete or incorrectly ordered service-pack overlay fails the build.

Repository layout

containers/wibo-runtime/             pinned wibo build + slim runtime
containers/msvc-*/                   extraction and shipping image definitions
containers/cmd-shim/                  minimal command processor for nmake
scripts/fetch-sources.sh              media download + SHA-256 verification
scripts/sources.tsv                   durable source URL manifest
scripts/build-images.sh               reproducible dependency-order build
scripts/push-images.sh                explicit registry publication step
tests/run-tests.sh                    banner, COFF, C/C++, link, and nmake checks
archives/                              ignored download target

License

Copyright (C) 2026 Simon Brakhane

The authored files are licensed under AGPL-3.0-or-later. Microsoft Visual C++ and the other third-party components are not covered by that licence; see THIRD_PARTY.md.

About

Containerized historical Microsoft Visual C++ command-line toolchains under wibo

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages