VOGONS


First post, by lmemsm

User metadata
Rank Newbie
Rank
Newbie

There may be no one interested in this type of thing besides me, but I thought I'd mention it just in case someone else out there does have similar interests. I still use the original MinGW compiler for most of my FOSS builds on Windows. I just got the gcc 6.3.0 32 bit compiler to build from source using the last original MinGW public domain versions of mingwrt and w32api. I'm considering whether to replace the mingwrt completely with a win32 based runtime instead of using msvcrt or ucrt. That would make it more like midipix which only needs nt.dll. I build/port a large number of lightweight FOSS software, so it'll be nice to have more modern C++ support for my builds. I was using the original MinGW 4.7.2 and that became rather limiting. I have builds of nano, htop, calcurse, putty, curl, several SDL 1.x and 2.x programs (including some lightweight games) and several FLTK programs. I'm wondering how far the toolchain and FOSS programs can be modernized but still work on or provide support for older versions of Windows such as Windows XP. Also wondering how well some of the console programs I've built would run on FreeDOS using HX DOS extender. I'm curious how well some of these programs work on older versions of Windows too. It would be nice to help keep some older operating systems working by using more modern FOSS programs built to run on them. Anyone else interested working on similar projects or interested in these types of topics?

Reply 1 of 9, by gerwin

User metadata
Rank l33t
Rank
l33t
lmemsm wrote on 2026-08-15, 15:54:

I'm wondering how far the toolchain and FOSS programs can be modernized but still work on or provide support for older versions of Windows such as Windows XP.

That part is a bit of a hobby of mine. See my website
https://www.gb-homepage.nl/ back-ports section
I use mostly gcc-10.3.0 for Windows XP targetted builds.

--> ISA Soundcard Overview // Doom MBF 2.04 // SetMul

Reply 2 of 9, by leileilol

User metadata
Rank l33t++
Rank
l33t++

I use 4.7.2 because Windows 95 is still a personal target for me. I feel it's adequate as it could build PCem up to v17 just fine (well, up until manley changed it to ninja whatever and clang anyway. sigh)

apsosig.png
long live PCem
FUCK "AI". It is a tool of fascism. We do not need it. We do not use it.
Debian's fucked

Reply 3 of 9, by lmemsm

User metadata
Rank Newbie
Rank
Newbie
leileilol wrote on 2026-08-15, 23:20:

I use 4.7.2 because Windows 95 is still a personal target for me. I feel it's adequate as it could build PCem up to v17 just fine (well, up until manley changed it to ninja whatever and clang anyway. sigh)

Cool. I've been going through and rewriting build scripts if they've changed to cmake or ninja. I could use them, but they make the build far more complicated than they need to be. So far, I haven't found any C or C++ programs I couldn't create a build for using CDetect and GNU make. It's not fast to rewrite a build script. Takes me 2 to 3 days sometimes. However, it makes it so much easier to build and port a FOSS application when I do so. When libressl stopped building on Windows with their build system, I switched it over to my own. I put in a bug report and they eventually fixed the issue, but I don't see a point in going back to their build system at this time. I have nano, putty and several other programs switched over to using custom build scripts.

Reply 4 of 9, by lmemsm

User metadata
Rank Newbie
Rank
Newbie
gerwin wrote on 2026-08-15, 23:14:

That part is a bit of a hobby of mine. See my website
https://www.gb-homepage.nl/ back-ports section
I use mostly gcc-10.3.0 for Windows XP targetted builds.

You have a nice selection of programs at your site. Do you do anything special with settings to make sure your programs work on Windows XP?
The mingw-std-threads link looks really interesting. I haven't needed C++11 threading yet myself. Also, I build MinGW with Posix threading enabled so I think that's supposed to enable C++11 threading natively with gcc.

I have some games built, but I typically build programs more on the style card and puzzle games. I have hangman, concentration, yahtzee, drac solitaire, mastermind, wordsearch, qubix, anagramarama, etc.

Reply 5 of 9, by gerwin

User metadata
Rank l33t
Rank
l33t
lmemsm wrote on 2026-08-16, 13:54:

You have a nice selection of programs at your site. Do you do anything special with settings to make sure your programs work on Windows XP?

No settings necessary, but a lot of investigating and cherry picking and modding of dependencies, of the libraries that is. Especially because GNU MSYS libraries
can result in a whole chain of dependencies being dependent on other dependencies.
Microsoft Depends.exe is essential for checking NT5 API compatibility.

lmemsm wrote on 2026-08-16, 13:54:

The mingw-std-threads link looks really interesting. I haven't needed C++11 threading yet myself.
Also, I build MinGW with Posix threading enabled so I think that's supposed to enable C++11 threading natively with gcc.

I also have the posix veriant of MinGW 10.3, but it is not my default. So I don't know by head, but my success rate with the WinThread compiler seemed better.
So I manually change the threading headers in the source code:

fheroes2\timing.cpp:
//#include <thread>
#include "mingw.thread.h"

otherwise: "error: 'std::this_thread' has not been declared"

lmemsm wrote on 2026-08-16, 13:54:

I have some games built, but I typically build programs more on the style card and puzzle games. I have hangman, concentration, yahtzee, drac solitaire, mastermind, wordsearch, qubix, anagramarama, etc.

These should not have much in the way of dependencies.
Do you offer your builds for download somewhere?

--> ISA Soundcard Overview // Doom MBF 2.04 // SetMul

Reply 6 of 9, by davidrg

User metadata
Rank Member
Rank
Member
lmemsm wrote on 2026-08-16, 13:32:
leileilol wrote on 2026-08-15, 23:20:

I use 4.7.2 because Windows 95 is still a personal target for me. I feel it's adequate as it could build PCem up to v17 just fine (well, up until manley changed it to ninja whatever and clang anyway. sigh)

I've been going through and rewriting build scripts if they've changed to cmake or ninja.

I kind of wish current cmake was available for vintage windows. At the moment I primarily use nmake makefiles, but that means my IDE (CLion) has limited knowledge of the codebase and I also have to maintain an entirely separate makefile just for GCC which can be a pain. It feels like I'll eventually be maintaining three build systems: cmake for the IDE, nmake for Visual C++ and Watcom, and GNU make for GCC.

Reply 8 of 9, by lmemsm

User metadata
Rank Newbie
Rank
Newbie
gerwin wrote on 2026-08-16, 14:40:

These should not have much in the way of dependencies.
Do you offer your builds for download somewhere?

I try to collect lightweight, low dependency programs.

I'd like to share the builds somewhere. I tried using Google Drive but I pretty much used up the space with a lot of the source and the compiler and didn't get very far in uploading the actual programs. Have to come up with a better way to share software. Also, there really haven't been that many people interested in builds of FOSS programs for Windows, so I keep wondering if it's worth the work to try to package everything someplace if no one is even interested in programs of that nature.

It would be nice to find a community (or at least a small group of interested people) to share interesting, lightweight, low dependency FOSS and be able to share build scripts, patches, programs and libraries.

Reply 9 of 9, by lmemsm

User metadata
Rank Newbie
Rank
Newbie
davidrg wrote on 2026-08-16, 23:22:

I kind of wish current cmake was available for vintage windows. At the moment I primarily use nmake makefiles, but that means my IDE (CLion) has limited knowledge of the codebase and I also have to maintain an entirely separate makefile just for GCC which can be a pain. It feels like I'll eventually be maintaining three build systems: cmake for the IDE, nmake for Visual C++ and Watcom, and GNU make for GCC.

I had some older copies of cmake, but I have a feeling the newer cmake builds probably won't work right with the older versions of the program. Even with the older versions, it's hard to get it to find the libraries it needs in the right paths. I had to pass long strings of locations for libraries and it still had issues. They keep adding dependencies to cmake that make it harder to build or work on older versions of Windows. I gave up on using cmake years ago when I tried to bootstrap build it and couldn't. I remember asking the developer about it and he said just download a working version of cmake and bootstrap it from there. Kind of defeats the purpose of bootstrapping. GNU make can be built by bootstrapping. Recently tried building muon on Windows and it builds without needing to have muon or a lot of other tools on the system.

When I was doing development with Watcom (and 3 other C/C++ compilers), I used to just use GNU make. It worked fine for all of them. I use SciTE in place of an IDE so it doesn't lock me into any particular build system. I also wrote some build tools (in bash and using gpp) that generate a lot of the makefile based on templates so I don't have to keep all the particulars of how to create one in mind. I managed to find a working port of BSD make on Windows. Was recently experimenting with changing it to output a BSD style makefile in place of a GNU makefile and that worked as well. It's easier to switch makefile formats that way.