compilers

DJGPP C compiler (Aug. 18, 2012; for 1.44 MB floppy, similar to old v1's EZ-GCC; DOS 32-bit only):


djgpp203.7z (main archive, needs either DJGPPv2 or OW compile of 7ZDECODE from the LZMA SDK)

djgpp203.txt (readme / changes) dj203lst.txt (list of all files included; everything is 8.3 friendly!)


(uses djdev 2.03p2 "current" + gcc 2.95.3 [2001] + bnu 2.16.1 plus various misc. files, see archive's contents above)

This GCC supports -mcpu=pentiumpro  and -march=k6 , so 686+ CMOV.. are okay but nothing else (e.g. no 3dnow! or SSE or almost any C99 stuff).


Full sources:  

bnu2161s.tbz (9.2 MB), gcc2953s.tbz (8.3 MB), fil41s.tbz (1.3 MB), djlsr204.tbz (946k)

djlsr203.tbz (761k), mak3791s.tbz (751k), wmemu21s.tbz (62k), csdpmi7s.zip (86k)

ed-16s.zip (132k), 7zdec912.zip (355k)

 

  • used .tar.bz2 because DJTAR (2.04 only) supports it (even in-place decompression, which means you don't need to unpack the entire thing first), and it's better compression than .ZIP 
    • Yes, 7-Zip or UHarc is better, and PAQ8 or LPAQ is usually better still, but those are less friendly with LFNs, RAM, decompression speed, and free space, respectively; besides, you already have DJTAR (included in the toolchain), so might as well use it    ;-)
  • all these srcs take 20+ MB of space, so I'm lucky it fits my Google Pages allotment !!
  • pretty sure lib srcs and WMemu don't compile with latest GCCs (except maybe CVS versions ... but I haven't tried)
  • didn't remove any redundant src files at all, even if I maybe would've liked to (actually much simpler for me not to), so there are some non-DOS srcs in there
 
  • for comparison, if you want to try (-m486 only, circa 1997) GCC 2.7.2.3 (built with GCC 2.95.3 + DJGPP 2.03p2), the package (compiler proper only) is here:   
  • also, DJ's old, wimpy 16-bit .OBJ compiler hack using GCC 2.7.2.3, NASM, and DJLINK can be found pre-compiled with full patches and utils (except NASM) here:   dj16bit.zip  (694k)
  • an old Linux libc5 cross compiler for DJGPP (GCC 2.7.2, BinUtils 2.7, DJDEV 2.00 ... not built by me!) can be found here:   http://www.ibiblio.org/pub/linux/devel/msdos/ 
  • other interesting compilers for producing bound .EXEs (e.g. for more than one OS) are EMX (DOS + OS/2, e.g. FPC 1.0.10 for OS/2 used it) and RSXNT (DOS + Win32 using DJGPP) although hard to find some pieces and no longer updated 
  • there's also some help (and downloads) for cross compiling on Cygwin for Linux (IA-32 and x86-64)
  • mentioned elsewhere, D3X is a nice DJGPP or Watcom extender (and see here for 3rd-party tweak)

 DOS-hosted MOSS target GCC w/ BinUtils + DOS extender + libs + target srcs

 moss-dj.7z  (2.8 MB, needs LFNs and 13 MB of HD space to unpack)

  • ELF-based "Mach on DOS", abandoned since 1996, buggy DPMI (e.g. hates WinXP)
  • GCC dropped explicit support for it after 3.3.6, BinUtils 2.19 still has it though
    • I only rebuilt GCC 2.95.3 + BinUtils 2.16.1 (good / fast enough for basic C stuff)
    • note that I didn't (and couldn't) recompile MOSS.EXE itself, sadly
  • uses Flux OS toolkit, parts of Mach4 OS, FreeBSD libs
  • fully buildable with GPL tools (untested), extender itself is fully GPL
  • old pre-built cross-compilers from Linux (libc5) and FreeBSD are available on FTP here
  • written by Bryan Ford, used for Sleepless Software's DOS game: Inner Worlds (N.B. use DOSBox)
  • some old discussion by me and Rod Pemberton on comp.os.msdos.djgpp here
  • other ELF tools for DOS: Josh Vanderhoof's Cross ELF (old, buggy), Daniel Borca's DJELF (good)

 

OpenWatcom C compiler (also 1.44 MB, floppy-sized; DOS only [32-bit host / 16-bit targets]):

ow13-286.7z (oldie-but-goodie 1.3) | ow17a286.7z (1.7a RC1, see changes here)

(links to the main site):    ow_license.txt   /zips-1.3/   /archive/    /source/

(Note that the Sybase license 1.0 is OSI approved, but Debian and Fedora still call it "non-free", meh)

 

P.S. Here's my full DOS-only install:  open-watcom-c-dos-1.9.7z   (7 MB; 45 MB unpacked)

(OW 1.9, C/C++, includes all samples, startup srcs, extenders, tools, helpfiles; 386 DOS host)

Comments