mirror of https://github.com/python/cpython.git
From Rene Liebscher:
This patch makes it possible to use gnu-win32 and lcc-win32 (http://www.cs.virginia.edu/~lcc-win32/) compilers to build extension modules. It adds compiler specific sections to PC/config.h . It also extends the Borland compiler section. This has then two parts, one for Win32 and the other one for the rest. The Win32 part should be almost complete. *** This patch is not intended to make it possible to compile Python with these compilers, it is intended to be able to use these compilers to build extension modules. ****
This commit is contained in:
parent
caa658d047
commit
c756bdb66c
155
PC/config.h
155
PC/config.h
|
@ -26,13 +26,6 @@ compiler specific". Therefore, these should be very rare.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Suggested by Rene Liebscher <R.Liebscher@gmx.de> to avoid a GCC 2.91.*
|
|
||||||
bug that requires structure imports. More recent versions of the
|
|
||||||
compiler don't exhibit this bug.
|
|
||||||
*/
|
|
||||||
#if (__GNUC__==2) && (__GNUC_MINOR__<=91)
|
|
||||||
#warning "Please use an up-to-date version of gcc! (>2.91 recommended)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Some systems require special declarations for data items imported
|
Some systems require special declarations for data items imported
|
||||||
|
@ -230,15 +223,159 @@ typedef int pid_t;
|
||||||
/* XXX These defines are likely incomplete, but should be easy to fix. */
|
/* XXX These defines are likely incomplete, but should be easy to fix. */
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#define COMPILER "[Borland]"
|
#define COMPILER "[Borland]"
|
||||||
#define PYTHONPATH ".;.\\lib;.\\lib\\plat-win;.\\lib\\dos-8x3"
|
|
||||||
#define IMPORT_8x3_NAMES
|
|
||||||
#define HAVE_CLOCK
|
#define HAVE_CLOCK
|
||||||
#define HAVE_STRFTIME
|
#define HAVE_STRFTIME
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
|
||||||
|
/* tested with BCC 5.5 (__BORLANDC__ >= 0x0550)
|
||||||
|
*/
|
||||||
|
#define NT /* NT is obsolete - please use MS_WIN32 instead */
|
||||||
|
#define MS_WIN32
|
||||||
|
#define MS_WINDOWS
|
||||||
|
|
||||||
|
/* For NT the Python core is in a DLL by default. Test the
|
||||||
|
standard macro MS_COREDLL to find out. If you have an exception
|
||||||
|
you must define MS_NO_COREDLL (do not test this macro) */
|
||||||
|
#ifndef MS_NO_COREDLL
|
||||||
|
#define MS_COREDLL /* Python core is in a DLL */
|
||||||
|
#ifndef USE_DL_EXPORT
|
||||||
|
#define USE_DL_IMPORT
|
||||||
|
#endif /* !USE_DL_EXPORT */
|
||||||
|
#endif /* !MS_NO_COREDLL */
|
||||||
|
|
||||||
|
#define PYTHONPATH ".\\DLLs;.\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
|
||||||
|
typedef int pid_t;
|
||||||
|
#define WORD_BIT 32
|
||||||
|
#include <stdio.h>
|
||||||
|
#define HAVE_STRERROR
|
||||||
|
#define NT_THREADS
|
||||||
|
#define WITH_THREAD
|
||||||
|
#ifndef NETSCAPE_PI
|
||||||
|
#define USE_SOCKET
|
||||||
|
#endif
|
||||||
|
/* BCC55 seems to understand __declspec(dllimport), it is used in its
|
||||||
|
own header files (winnt.h, ...) */
|
||||||
|
#ifdef USE_DL_IMPORT
|
||||||
|
#define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
|
||||||
|
#endif
|
||||||
|
#ifdef USE_DL_EXPORT
|
||||||
|
#define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||||
|
#define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define HAVE_LONG_LONG 1
|
||||||
|
#define LONG_LONG __int64
|
||||||
|
|
||||||
|
#else /* !_WIN32 */
|
||||||
|
/* XXX These defines are likely incomplete, but should be easy to fix. */
|
||||||
|
|
||||||
|
#define PYTHONPATH ".;.\\lib;.\\lib\\plat-win;.\\lib\\dos-8x3"
|
||||||
|
#define IMPORT_8x3_NAMES
|
||||||
#ifdef USE_DL_IMPORT
|
#ifdef USE_DL_IMPORT
|
||||||
#define DL_IMPORT(RTYPE) RTYPE __import
|
#define DL_IMPORT(RTYPE) RTYPE __import
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif /* !_WIN32 */
|
||||||
|
|
||||||
#endif /* BORLANDC */
|
#endif /* BORLANDC */
|
||||||
|
|
||||||
|
/* egcs/gnu-win32 defines __GNUC__ and _WIN32 */
|
||||||
|
#if defined(__GNUC__) && defined(_WIN32)
|
||||||
|
/* XXX These defines are likely incomplete, but should be easy to fix.
|
||||||
|
They should be complete enough to build extension modules. */
|
||||||
|
/* Suggested by Rene Liebscher <R.Liebscher@gmx.de> to avoid a GCC 2.91.*
|
||||||
|
bug that requires structure imports. More recent versions of the
|
||||||
|
compiler don't exhibit this bug.
|
||||||
|
*/
|
||||||
|
#if (__GNUC__==2) && (__GNUC_MINOR__<=91)
|
||||||
|
#warning "Please use an up-to-date version of gcc! (>2.91 recommended)"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define NT /* NT is obsolete - please use MS_WIN32 instead */
|
||||||
|
#define MS_WIN32
|
||||||
|
#define MS_WINDOWS
|
||||||
|
|
||||||
|
/* For NT the Python core is in a DLL by default. Test the
|
||||||
|
standard macro MS_COREDLL to find out. If you have an exception
|
||||||
|
you must define MS_NO_COREDLL (do not test this macro) */
|
||||||
|
#ifndef MS_NO_COREDLL
|
||||||
|
#define MS_COREDLL /* Python core is in a DLL */
|
||||||
|
#ifndef USE_DL_EXPORT
|
||||||
|
#define USE_DL_IMPORT
|
||||||
|
#endif /* !USE_DL_EXPORT */
|
||||||
|
#endif /* !MS_NO_COREDLL */
|
||||||
|
|
||||||
|
#define COMPILER "[gcc]"
|
||||||
|
#define PYTHONPATH ".\\DLLs;.\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
|
||||||
|
#define WORD_BIT 32
|
||||||
|
#define hypot _hypot
|
||||||
|
#include <stdio.h>
|
||||||
|
#define HAVE_CLOCK
|
||||||
|
#define HAVE_STRFTIME
|
||||||
|
#define HAVE_STRERROR
|
||||||
|
#define NT_THREADS
|
||||||
|
#define WITH_THREAD
|
||||||
|
#ifndef NETSCAPE_PI
|
||||||
|
#define USE_SOCKET
|
||||||
|
#endif
|
||||||
|
#ifdef USE_DL_IMPORT
|
||||||
|
#define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
|
||||||
|
#endif
|
||||||
|
#ifdef USE_DL_EXPORT
|
||||||
|
#define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||||
|
#define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define HAVE_LONG_LONG 1
|
||||||
|
#define LONG_LONG long long
|
||||||
|
#endif /* GNUC */
|
||||||
|
|
||||||
|
/* lcc-win32 defines __LCC__ */
|
||||||
|
|
||||||
|
#if defined(__LCC__)
|
||||||
|
/* XXX These defines are likely incomplete, but should be easy to fix.
|
||||||
|
They should be complete enough to build extension modules. */
|
||||||
|
|
||||||
|
#define NT /* NT is obsolete - please use MS_WIN32 instead */
|
||||||
|
#define MS_WIN32
|
||||||
|
#define MS_WINDOWS
|
||||||
|
|
||||||
|
/* For NT the Python core is in a DLL by default. Test the
|
||||||
|
standard macro MS_COREDLL to find out. If you have an exception
|
||||||
|
you must define MS_NO_COREDLL (do not test this macro) */
|
||||||
|
#ifndef MS_NO_COREDLL
|
||||||
|
#define MS_COREDLL /* Python core is in a DLL */
|
||||||
|
#ifndef USE_DL_EXPORT
|
||||||
|
#define USE_DL_IMPORT
|
||||||
|
#endif /* !USE_DL_EXPORT */
|
||||||
|
#endif /* !MS_NO_COREDLL */
|
||||||
|
|
||||||
|
#define COMPILER "[lcc-win32]"
|
||||||
|
#define PYTHONPATH ".\\DLLs;.\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
|
||||||
|
typedef int pid_t;
|
||||||
|
#define WORD_BIT 32
|
||||||
|
#include <stdio.h>
|
||||||
|
#define HAVE_CLOCK
|
||||||
|
#define HAVE_STRFTIME
|
||||||
|
#define HAVE_STRERROR
|
||||||
|
#define NT_THREADS
|
||||||
|
#define WITH_THREAD
|
||||||
|
#ifndef NETSCAPE_PI
|
||||||
|
#define USE_SOCKET
|
||||||
|
#endif
|
||||||
|
#ifdef USE_DL_IMPORT
|
||||||
|
#define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
|
||||||
|
#endif
|
||||||
|
#ifdef USE_DL_EXPORT
|
||||||
|
#define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||||
|
#define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define HAVE_LONG_LONG 1
|
||||||
|
#define LONG_LONG __int64
|
||||||
|
#endif /* LCC */
|
||||||
|
|
||||||
/* End of compilers - finish up */
|
/* End of compilers - finish up */
|
||||||
|
|
||||||
/* define some ANSI types that are not defined in earlier Win headers */
|
/* define some ANSI types that are not defined in earlier Win headers */
|
||||||
|
|
Loading…
Reference in New Issue