[CMake] What is the status of CMake on DJGPP?

Alan W. Irwin irwin at beluga.phys.uvic.ca
Fri Nov 17 01:39:24 EST 2006


I forward below Andrew's response to Bill's and Alex's questions and
comments.

Just to make a comment of my own in response to Andrew's poor experiences
with DJGPP on modern DOS emulators available from windows, I wonder how well
DJGPP works on FreeDOS?  I noticed the other day that is one of the
platforms mentioned on the DJGPP website, and apparently FreeDOS is a real
OS (not an emulator) that purports to do everything that DOS did.

Alan

---------- Forwarded message ----------
Date: Fri, 17 Nov 2006 14:51:09 +1000
From: Andrew Roach <aroach.geo at yahoo.com>
To: Alan W. Irwin <irwin at beluga.phys.uvic.ca>
Subject: Re: [CMake] What is the status of CMake on DJGPP? (fwd)

At 02:46 PM 16/11/2006 -0800, you wrote:
>> I really have never used DJGPP as well....   Maybe you can toss the
>> question back to the DJGPP developers.
>> Can you build a DOS executable with the MS compiler,
> 
> I'm not sure, but I think you can't.

That is right.

> So actually I think a cmake for DOS should also be built under DOS. And 
> actually this can't be that hard with DJGPP. I "used" it like 10 years ago 
> for a few weeks, when I started to learn C and switched from DOS to Linux. 
> At this time it felt very unDOSish, so probably quite UNIXish.
> Maybe it's even still on my old AMD K6 box...
> And it really doesn't support long filenames ? Doesn't FreeDOS support them 
> ? I think good old Novell DOS 7 already supported them.

I am just assuming it was a problem with the longer names, it might have been 
the mixed case file names, or it might have been something else. But whatever 
it was, the script would not create the directories when mkdir was given the 
command to do so.

As for supporting LFNs, support is good under Win95,98 and ME. Under XP, 2K, 
and NT support isn't as good and periodically gets flaky. Indeed, just using 
DJGPP under XP, 2K, and NT isn't really very good at all, just as one random 
example with no connection to this problem, you can't change the file-time of a 
file from a DJGPP compiled program under XP, where as you can using the same 
program in 95. It is because file-system level interrupts are used to do that 
and NT flavours of Windows block a lot of interrupts for security reasons (and 
because they are only done through an emulation layer).

Another real problem is that DJGPP uses it's own "virtual pipes" to get around 
limitations with DOS. That worked well with DOS, Win3.1, 95,98 and ME, but with 
XP (and 2k, NT) problems sometimes arise when you have multiple sub-processes 
(for example, Bash calling something, which might in turn call something else
 
the whole thing can fall apart and you segfault). It also makes mixing 
executables made with different compilers impractiable
 you could not take the 
MingW compiled make and use it with DJGPP even though they are both GCC make.

In short, if you are using an old version of DOS, say 7 or 6, DJGPP runs 
perfectly; under XP and the other NT based windows, both DJGPP and the 
executables it produces can run unpredictably (but at least consistently) and 
with functional limitations because it is only in an emulation layer. Under XP, 
DJGPP is hard to use, and I don't have a "legacy DOS" system to develop with 
any more after a HD crash about two years ago.

-Andrew



More information about the CMake mailing list