path: root/c/README.DOS
diff options
authorJoel Sherrill <>1995-07-12 19:47:25 +0000
committerJoel Sherrill <>1995-07-12 19:47:25 +0000
commit637df35f96d8023056369fcf2c9943419f1a1b74 (patch)
treea12bd461bf892ccaff6c67571432f0535eb03e96 /c/README.DOS
parent68931b5dc1b9f875bbaf6efbf206b90e6c0275ed (diff)
Ada95, gnat, go32
Diffstat (limited to 'c/README.DOS')
1 files changed, 75 insertions, 0 deletions
diff --git a/c/README.DOS b/c/README.DOS
new file mode 100644
index 0000000000..54a4411a5b
--- /dev/null
+++ b/c/README.DOS
@@ -0,0 +1,75 @@
+# $Id$
+The RTEMS build procedure was designed with the capabilitiies of a
+typical UNIX computer in mind. Making this procedure work under MS-DOS
+is not that difficult but requires that MS-DOS versions of a number
+of UNIX utilities be acquired and installed. For time being, the
+best advice which can be offered is:
+ "This is a nasty question, since when I first set up the DOS machine
+ (long before I acquired RTEMS) I ftp'd a bunch of different tool
+ sets (all from SimTel), and then picked individual tools from each
+ set that worked best for me. The djgpp tools are probably a good
+ starting point, especially to get a working sed. Next the gnu tools
+ in SimTel/msdos/gnuish, and then others. Sorry I can't give you more
+ specific names. The only real requirement for the tools is that
+ they *must* accept redirection of command line arguments from a file
+ using the '@' notation (i.e., "mkdir @/tmp/args" reads the argument
+ list from file /tmp/args)."
+There is a special version (source and executable) of GNU make 3.71 for
+MS-DOS which minimizes the amount of memory used by recursive makes
+available on in the directory: ... XXX
+go32 dumps the stack when a program seg-faults, and if this happens while
+on an alternate stack an infinite loop can ensue. Setting the environment
+variable GO32="core /tmp/core" will prevent more than 20 lines or
+so of stack information from being dumped after a crash, and the output
+will go to a file rather than the screen.
+The go32 debuggers get confused by the relocated stacks used by tasks,
+and tend to crash when variables are inspected.
+make directory
+gcc-go32.cfg is used for cross compiling to the go32 environment under RTEMS,
+while djgcc.cfg is used for "native" compilation; i.e. under MSDOS rather
+than under RTEMS. The difference is that "native" compilation uses the djgpp
+I/O libraries, while "cross" compilation uses the RTEMS I/O libraries.
+djgcc.cfg is identical to gcc.cfg, except for the omission of the -pipe
+djgcc include files
+In general, we use RTEMS include files because these contain the proper
+declarations for the libc, and in particular, the stdio functions.
+When calling go32-specific functions it is necessary to include some
+djgpp include files, as well. Unfortunately, there are some disagreements
+between RTEMS and djgpp as to how certain functions and types are
+declared. In these cases, I have modified to RTEMS source to special-
+case the differences.
+cpu-specific files
+rtems/c/src/exec/cpu/i80386 is intended to contain 386-specific
+functions for RTEMS. Since under djgpp we do not have *complete*
+control of the processor, we must cooperate with the djgpp runtime
+environment, this directory cannot be shared between the go32 port
+and other 386 BSPs.
+* F12 will immediately abort the program.
+See libbsp/i80386/go32/iosupp/inch.c.
+* libbsp/i80386/go32/timer uses the on-board timer chip by default.
+However, if executing on a Pentium processor you can use the on-chip
+64-bit cycle counter, which counts at whatever clock rate your processor
+runs at. To use this, compile with -DPENTIUM