DJGPP

From Wikipedia, the free encyclopedia
  (Redirected from Djgpp)
Jump to: navigation, search
DJGPP
Djgpp logo.svg
GCC DJGPP Windows.png
The DJGPP environment, utilizing GCC
Developer(s) DJ Delorie
Stable release 2.0.3p2 / June 10, 2002; 9 years ago (2002-06-10)
Operating system DOS and Windows
Type Compiler
License GNU GPL
Website http://www.delorie.com/djgpp/

DJGPP (DJ's GNU Programming Platform)[1] is a development suite for 386+ IBM PC compatibles which supports DOS-enabled operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a port of the popular GCC compiler, as well as mostly GNU utilities such as bash, find, tar, ls, awk, sed, and ld to DPMI. Languages available include C, C++, Objective-C/C++, Ada, Fortran, and Pascal.

Contents

[edit] Design

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 OpenWatcom, 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).

[edit] Compatibility

DJGPP presents the programmer an interface which is compatible with the ANSI C and C99 standards, unofficial DOS standards, and an older POSIX Unix standard. Compiled binaries are long file name-aware and handle such filenames under Win32 by default. TSRs to support LFNs under Windows NT 4 or pure DOS are available. As of July 2011, the newest GCC supported by DJGPP is 4.6.1, providing under DOS the standards C99/1x, C++98/11, as well as the first release of support for Ada2012.

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,[2] there is no NTVDM, and DJGPP apps cannot be run. Under x86-64 systems these apps only function through emulation (e.g. DOSBox), virtualization (e.g. VirtualBox), or similar (e.g. Linux's DOSEMU). This problem arises because x86-64 processors in long mode do not support the virtual 8086 mode used to run 16-bit code in IA-32 processors.

[edit] Uses

The original Quake for DOS was compiled with DJGPP, as well as other programs such as GNU Emacs, p7zip, Vim, beye, UPX, NASM, THE, Linley's Dungeon Crawl, NetHack, Perl, Python, and auxiliary applications within Arachne.[3]

[edit] See also

[edit] References

[edit] External links

Personal tools
Namespaces

Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages