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.
| 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.shdownloads eight original media artifacts from the Internet Archive into the ignoredarchives/directory and verifies every complete file againstscripts/SHA256SUMS. Command-line trees are extracted only inside container build stages. SeeTHIRD_PARTY.md.
scripts/fetch-sources.sh
scripts/build-images.sh
tests/run-tests.shCompile 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.cPublished 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-wiboPublished images use the same names beneath the
ghcr.io/second-impressions registry. Local builds use the bare names shown in
the table.
- working directory:
/src - bind mount:
-v HOST_DIRECTORY:/src - entrypoint: accepts
cl,cl.exe,link,lib, ornmake INCLUDE:Z:\\opt\\msvc\\INCLUDE, plusZ:\\opt\\msvc\\MFC\\INCLUDEwhen the image supplies MFCLIB:Z:\\opt\\msvc\\LIB, plusZ:\\opt\\msvc\\MFC\\LIBwhen presentwibomaps Windows drive paths such asZ:\\opt\\msvconto the container filesystem. The shim supplies Windows-stylePATH,INCLUDE, andLIBvalues socl.execan spawnc1.exe,c2.exe, andlink.exenormally. With no arguments, the entrypoint opens an interactive Bash shell.
| 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.
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
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.