I did a deeper dive into OS/2 and I suspect that the current "OS/2"
support is actually for ArcaOS not OS/2. I was able to find some
VirtualBox ora images for OS/2, all the way up to Warp 4.5, but ArcaOS
is proprietary and I didn't find any free images available. But they do
have current releases, including one earlier this year.

So, someone else will need to provide support.

On Thu, 2025-08-21 at 10:50 -0700, Bahman Movaqar wrote:
> I wonder if we could modularise the OS support into separate loadable
> libraries (i.e. os-support-addon) and would it be worth the effort:

I don't see a reason to make loadable libraries. Even the technologies
behind creating shared libraries or dlopen()-style modules between
POSIX systems, MacOS, Windows, VMS, etc. are quite different and
difficult to configure/build for (or even completely unsupported).
Today GNU Make is a single stand-alone binary with no config files etc.
that need to be installed. Making it more complex would certainly be a
big change.

And, what's the use? A GNU Make binary built on Linux can only run on
Linux, so why force the "Linux-specific" bits into a shared library?

However, providing a more-or-less OS-agnostic API that had multiple
implementations, which can be chosen at configure time and linked
statically to avoid a lot of C preprocessor manipulation would be very
nice.

A few steps in this direction have been made, in the last few releases.
But, the reality is that GNU Make has a surprising amount of OS-
specific code and it's not so simple to create such an interface. There
are a LOT of areas where 90% of it is common to all OS's, but the last
10% needs to be custom... and it's not the same 10% for each OS. So,
you either have a lot of #ifdefs, or you have a lot of code
duplication.

It would have been amazing if the original authors of GNU Make and the
folks who first started porting it to non-POSIX OS's had held firm and
forced these types of APIs to be created, but that's not how it was
done (for the most part: the Windows port has some code that tries to
emulate POSIX interfaces).

It would also be nice to use more gnulib, but:
 * As Colin mentions, there's a catch-22 here because gnulib, to make
   their own lives easier, do a lot of their work in makefile snippets.
 * gnulib also doesn't support all the platforms that GNU Make does,
   including not just OS/2, but also VMS and DOS.

-- 
Paul D. Smith <psm...@gnu.org> Find some GNU Make tips at:
https://www.gnu.org http://make.mad-scientist.net "Please remain
calm...I may be mad, but I am a professional." --Mad Scientist

Reply via email to