Packages for DJGPP

I am using the following DJGPP package

You can get this C compiler at http://www.delorie.com/djgpp.

I.e. if you have installed DJGPP in D:\gnu, add in your autoexec.bat,

set DJGPP=D:\gnu\djgpp.env
set PATH=D:\GNU\BIN;%PATH%

Patching DJGPP

In include/signal.h, add

#ifndef SIGCONT
#define SIGCONT 18
#endif

In include/mntent.h, add

#ifndef MOUNTED
#define MOUNTED "/etc/mtab"
#endif
#ifndef MNTOPT_RO
#define MNTOPT_RO "ro"
#endif

In include/errno.h, add

#ifndef EMSGSIZE
#define EMSGSIZE        90
#endif
#ifndef EOPNOTSUPP
#define EOPNOTSUPP      95
#endif
#ifndef ENOTSUPP
#define ENOTSUPP        524
#endif
#ifndef ENOTSUP
#define ENOTSUP         524
#endif
#ifndef ECANCELED
#define ECANCELED       125
#endif
#ifndef EILSEQ
#define EILSEQ          84
#endif
#ifndef EOVERFLOW
#define EOVERFLOW       600
#endif

In include/fcntl.h, add

#define O_LARGEFILE     0100000

Add the file include/stdint.h

typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long int uint64_t;
typedef char int8_t;
typedef short int int16_t;
typedef int int32_t;
typedef long long int int64_t;

ln -s gpp.exe g++.exe

TestDisk is a true 32-bit program (compiled under DJGPP), so a DPMI server program (cwsdpmi.exe) is included in the download which allows TestDisk to run under 16-bit DOS. If you want to work under real (16-bit) DOS, you'll need to have a DPMI server running; to do that, get: csdpmi*b.zip and simply place the executable (cwsdpmi.exe) in your bin directory (which must be in the PATH).

Back to TestDisk compilation