From Wikipedia, the free encyclopedia
Jump to: navigation, search
Djgpp logo.svg
GCC DJGPP Windows.png
The DJGPP environment, utilizing GCC
Developer(s) DJ Delorie
Stable release 2.0.5 / November 3, 2015; 2 months ago (2015-11-03)[1]
Operating system DOS and Windows
Type Compiler
License GNU GPL

DJGPP (DJ's GNU Programming Platform)[2] is a software development suite for 386-based IBM PC compatibles which supports MS-DOS-compatible operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a port of the GNU Compiler Collection (GCC), as well as mostly GNU utilities such as Bash, find, tar, ls, Gawk, sed, and ld to DPMI. Languages available include C, C++, Objective-C/C++, Ada, Fortran, and Pascal. DJGPP was described as an "aging" product in 2004.[3]


The compiler generates 32-bit code, which runs natively in 32-bit protected mode while switching back to 16-bit DOS calls for basic OS support. However, unlike Open Watcom, it is not a zero-based flat model due to preferring NULL pointer protection for better stability. It is currently based upon a variant of the COFF format. It can access up to 4 GB of RAM in pure DOS when using a suitable DPMI host (e.g. CWSDPMI r7 or HDPMI32).


DJGPP presents the programmer an interface which is compatible with the ANSI C and C99 standards, MS-DOS APIs, and an older POSIX-like environment. Compiled binaries are long file name-aware and handle such filenames under Win32 by default, but they cannot use the Win16 or Win32 APIs that graphical programs on Windows need.[3] TSRs to support LFNs under plain DOS or Windows NT 4 are available.

While DJGPP runs in 32-bit protected mode, its stub and library heavily rely upon many 16-bit DOS and BIOS calls. Because the x86-64 versions of Windows lack support for 16-bit programs,[4][5] there is no NTVDM, and DJGPP applications cannot be run. Under x86-64 systems these applications function only through emulation (e.g. DOSBox), virtualization (e.g. VirtualBox), or similar (e.g. Linux's DOSEMU). This problem arises because in long mode x86-64 processors do not support the virtual 8086 mode used to run 16-bit code in IA-32 processors. Newer x86 CPUs with VT-x do support paged real mode and unrestricted guest mode execution.

See also[edit]


  1. ^ ANNOUNCE: DJGPP V2.05 Released, comp.os.msdos.djgpp, 3 November 2015
  2. ^ Eli Zaretskii (Jul 1999). "The DJGPP Project". Retrieved 20 Jul 2009. 
  3. ^ a b Wall, Kurt; Von Hagen, William (2004). The Definitive Guide to GCC. Apress. pp. 47–48. 
  4. ^ "Guide: What is DJGPP?". Retrieved November 22, 2015. The target hardware platform for DJGPP programs is a PC platform ... running DOS ... or a DOS-compatible operating system DJGPP programs run under Windows' "dos prompt" boxes. 
  5. ^ Microsoft (Oct 2007). "List of limitations in 64-Bit Windows". Retrieved 18 May 2010. 16-bit MS-DOS and Microsoft Windows 3.x utilities will not start. If you attempt to start such a program, you receive a "Program.exe is not a valid Win32 application" error message. 

External links[edit]