SF patch #418147 Fixes to allow compiling w/ Borland, from Stephen Hansen.

This commit is contained in:
Tim Peters 2001-05-14 22:32:33 +00:00
parent 460f0691df
commit 58e0a8c130
5 changed files with 32 additions and 14 deletions

View File

@ -434,6 +434,15 @@ typedef struct fd_set {
#endif
#endif
/*
* Rename some functions for the Borland compiler
*/
#ifdef __BORLANDC__
# include <io.h>
# define _chsize chsize
# define _setmode setmode
#endif
#ifdef __cplusplus
}
#endif

View File

@ -105,6 +105,10 @@ Tests
pprint.isreadable() return sensible results. Also verifies that simple
cases produce correct output.
New platforms
- Python should compile and run out of the box using the Borland C
compiler (under Windows), thanks to Stephen Hansen.
What's New in Python 2.1 (final)?
=================================

View File

@ -63,12 +63,6 @@ corresponding Unix manual entries for more information on calls.";
#ifdef __BORLANDC__ /* Borland compiler */
#define HAVE_EXECV 1
#define HAVE_GETCWD 1
#define HAVE_GETEGID 1
#define HAVE_GETEUID 1
#define HAVE_GETGID 1
#define HAVE_GETPPID 1
#define HAVE_GETUID 1
#define HAVE_KILL 1
#define HAVE_OPENDIR 1
#define HAVE_PIPE 1
#define HAVE_POPEN 1
@ -152,7 +146,11 @@ extern int rmdir(char *);
extern int chdir(const char *);
extern int rmdir(const char *);
#endif
#ifdef __BORLANDC__
extern int chmod(const char *, int);
#else
extern int chmod(const char *, mode_t);
#endif
extern int chown(const char *, uid_t, gid_t);
extern char *getcwd(char *, int);
extern char *strerror(int);
@ -5666,18 +5664,18 @@ all_ins(PyObject *d)
}
#if ( defined(_MSC_VER) || defined(__WATCOMC__) ) && !defined(__QNX__)
#if (defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__)) && !defined(__QNX__)
#define INITFUNC initnt
#define MODNAME "nt"
#else
#if defined(PYOS_OS2)
#elif defined(PYOS_OS2)
#define INITFUNC initos2
#define MODNAME "os2"
#else
#define INITFUNC initposix
#define MODNAME "posix"
#endif
#endif
DL_EXPORT(void)
INITFUNC(void)

View File

@ -41,17 +41,19 @@ extern int ftime(struct timeb *);
#else
#ifdef MS_WINDOWS
#include <windows.h>
#ifdef MS_WIN16
#if defined(MS_WIN16) || defined(__BORLANDC__)
/* These overrides not needed for Win32 */
#define timezone _timezone
#define tzname _tzname
#define daylight _daylight
#endif /* MS_WIN16 || __BORLANDC__ */
#ifdef MS_WIN16
#define altzone _altzone
#endif /* MS_WIN16 */
#endif /* MS_WINDOWS */
#endif /* !__WATCOMC__ || __QNX__ */
#if defined(MS_WIN32) && !defined(MS_WIN64)
#if defined(MS_WIN32) && !defined(MS_WIN64) && !defined(__BORLANDC__)
/* Win32 has better clock replacement
XXX Win64 does not yet, but might when the platform matures. */
#include <largeint.h>
@ -146,7 +148,7 @@ time_clock(PyObject *self, PyObject *args)
}
#endif /* HAVE_CLOCK */
#if defined(MS_WIN32) && !defined(MS_WIN64)
#if defined(MS_WIN32) && !defined(MS_WIN64) && !defined(__BORLANDC__)
/* Due to Mark Hammond */
static PyObject *
time_clock(PyObject *self, PyObject *args)

View File

@ -36,6 +36,7 @@ compiler specific". Therefore, these should be very rare.
#include <io.h>
#define HAVE_LIMITS_H
#define HAVE_SYS_UTIME_H
#define HAVE_HYPOT
#define DONT_HAVE_SIG_ALARM
#define DONT_HAVE_SIG_PAUSE
@ -177,6 +178,10 @@ typedef int pid_t;
#define LONG_LONG __int64
#undef HAVE_HYPOT
#undef HAVE_SYS_UTIME_H
#define HAVE_UTIME_H
#define HAVE_DIRENT_H
#define HAVE_CLOCK
#else /* !_WIN32 */
#error "Only Win32 and later are supported"
@ -593,7 +598,7 @@ typedef unsigned long uintptr_t;
/* #define HAVE_SYS_UN_H 1 */
/* Define if you have the <sys/utime.h> header file. */
#define HAVE_SYS_UTIME_H 1
/* #define HAVE_SYS_UTIME_H 1 */
/* Define if you have the <sys/utsname.h> header file. */
/* #define HAVE_SYS_UTSNAME_H 1 */