[Python-checkins] python/dist/src/PC pyconfig.h,1.13,1.14 _winreg.c,1.10,1.11

mhammond@users.sourceforge.net mhammond@users.sourceforge.net
2002年7月18日 23:55:43 -0700


Update of /cvsroot/python/python/dist/src/PC
In directory usw-pr-cvs1:/tmp/cvs-serv15103/PC
Modified Files:
	pyconfig.h _winreg.c 
Log Message:
Land Patch [ 566100 ] Rationalize DL_IMPORT and DL_EXPORT.
Index: pyconfig.h
===================================================================
RCS file: /cvsroot/python/python/dist/src/PC/pyconfig.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** pyconfig.h	17 Jul 2002 15:32:40 -0000	1.13
--- pyconfig.h	19 Jul 2002 06:55:41 -0000	1.14
***************
*** 15,22 ****
 MS_WIN32 - Code specific to the MS Win32 (and Win64) API (obsolete, this covers all supported APIs)
 MS_WINDOWS - Code specific to Windows, but all versions.
! MS_COREDLL - Code if the Python core is built as a DLL.
! 
! Note that the old defines "NT" and "WIN32" are still supported, but
! will soon be dropped.
 
 Also note that neither "_M_IX86" or "_MSC_VER" should be used for
--- 15,19 ----
 MS_WIN32 - Code specific to the MS Win32 (and Win64) API (obsolete, this covers all supported APIs)
 MS_WINDOWS - Code specific to Windows, but all versions.
! Py_ENABLE_SHARED - Code if the Python core is built as a DLL.
 
 Also note that neither "_M_IX86" or "_MSC_VER" should be used for
***************
*** 24,35 ****
 compiler specific". Therefore, these should be very rare.
 
- */
 
 
- /*
- Some systems require special declarations for data items imported
- or exported from dynamic link libraries. Note that the definition
- of DL_IMPORT covers both cases. Define USE_DL_IMPORT for the client
- of a DLL. Define USE_DL_EXPORT when making a DLL.
 */
 
--- 21,29 ----
 compiler specific". Therefore, these should be very rare.
 
 
+ NOTE: The following symbols are deprecated:
+ NT, WIN32, USE_DL_EXPORT, USE_DL_IMPORT, DL_EXPORT, DL_IMPORT
+ MS_CORE_DLL.
 
 */
 
***************
*** 41,50 ****
--- 35,62 ----
 #define HAVE_TMPFILE
 #define HAVE_TMPNAM
+ #define HAVE_CLOCK
+ #define HAVE_STRFTIME
+ #define HAVE_STRERROR
 #define DONT_HAVE_SIG_ALARM
 #define DONT_HAVE_SIG_PAUSE
 #define LONG_BIT	32
+ #define WORD_BIT 32
 #define PREFIX ""
 #define EXEC_PREFIX ""
 
+ #define MS_WIN32 /* only support win32 and greater. */
+ #define MS_WINDOWS
+ #ifndef PYTHONPATH
+ #	define PYTHONPATH ".\\DLLs;.\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
+ #endif
+ #define NT_THREADS
+ #define WITH_THREAD
+ #ifndef NETSCAPE_PI
+ #define USE_SOCKET
+ #endif
+ 
+ /* Compiler specific defines */
+ 
+ /* ------------------------------------------------------------------------*/
 /* Microsoft C defines _MSC_VER */
 #ifdef _MSC_VER
***************
*** 61,69 ****
 #define MS_WIN64
 #endif
- #ifdef _WIN32
- #define NT	/* NT is obsolete - please use MS_WIN32 instead */
- #define MS_WIN32
- #endif
- #define MS_WINDOWS
 
 /* set the COMPILER */
--- 73,76 ----
***************
*** 88,184 ****
 #endif /* MS_WIN32 && !MS_WIN64 */
 
- #endif /* _MSC_VER */
- 
- #if defined(_MSC_VER) && _MSC_VER > 850
- /* Start of defines for MS_WIN32 using VC++ 2.0 and up */
- 
- /* 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
- #pragma warning(disable:4113)
 #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 __int64
! #endif /* _MSC_VER && > 850 */
 
 /* The Borland compiler defines __BORLANDC__ */
 /* XXX These defines are likely incomplete, but should be easy to fix. */
 #ifdef __BORLANDC__
 #define COMPILER "[Borland]"
- #define HAVE_CLOCK
- #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
 
 #undef HAVE_SYS_UTIME_H
 #define HAVE_UTIME_H
 #define HAVE_DIRENT_H
! #define HAVE_CLOCK
 
 #else /* !_WIN32 */
--- 95,131 ----
 #endif /* MS_WIN32 && !MS_WIN64 */
 
 typedef int pid_t;
 #define hypot _hypot
 
! #endif /* _MSC_VER */
! 
! /* define some ANSI types that are not defined in earlier Win headers */
! #if defined(_MSC_VER) && _MSC_VER >= 1200
! /* This file only exists in VC 6.0 or higher */
! #include <basetsd.h>
! #endif
 
+ /* ------------------------------------------------------------------------*/
 /* The Borland compiler defines __BORLANDC__ */
 /* XXX These defines are likely incomplete, but should be easy to fix. */
 #ifdef __BORLANDC__
 #define COMPILER "[Borland]"
 
 #ifdef _WIN32
 /* tested with BCC 5.5 (__BORLANDC__ >= 0x0550)
 */
 
 typedef int pid_t;
 /* BCC55 seems to understand __declspec(dllimport), it is used in its
! own header files (winnt.h, ...) - so we can do nothing and get the default*/
 
 #undef HAVE_SYS_UTIME_H
 #define HAVE_UTIME_H
 #define HAVE_DIRENT_H
! 
! /* rename a few functions for the Borland compiler */
! #include <io.h>
! #define _chsize chsize
! #define _setmode setmode
 
 #else /* !_WIN32 */
***************
*** 188,191 ****
--- 135,139 ----
 #endif /* BORLANDC */
 
+ /* ------------------------------------------------------------------------*/
 /* egcs/gnu-win32 defines __GNUC__ and _WIN32 */
 #if defined(__GNUC__) && defined(_WIN32)
***************
*** 200,294 ****
 #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 */
 
! /* define some ANSI types that are not defined in earlier Win headers */
! #if _MSC_VER >= 1200 /* This file only exists in VC 6.0 or higher */
! #include <basetsd.h>
 #endif
 
 #if defined(MS_WIN64)
 /* maintain "win32" sys.platform for backward compatibility of Python code,
--- 148,212 ----
 #endif
 
 #define COMPILER "[gcc]"
 #define hypot _hypot
 #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 COMPILER "[lcc-win32]"
 typedef int pid_t;
! /* __declspec() is supported here too - do nothing to get the defaults */
 
 #endif /* LCC */
 
+ /* ------------------------------------------------------------------------*/
 /* End of compilers - finish up */
 
! #ifndef NO_STDIO_H
! #	include <stdio.h>
! #endif
! 
! /* 64 bit ints are usually spelt __int64 unless compiler has overridden */
! #define HAVE_LONG_LONG 1
! #ifndef LONG_LONG
! #	define LONG_LONG __int64
 #endif
 
+ /* For Windows the Python core is in a DLL by default. Test 
+ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
+ #if !defined(MS_NO_COREDLL) && !defined(Py_NO_ENABLE_SHARED)
+ #	define Py_ENABLE_SHARED 1 /* standard symbol for shared library */
+ #	define MS_COREDLL	/* deprecated old symbol */
+ #endif /* !MS_NO_COREDLL && ... */
+ 
+ /* Deprecated USE_DL_EXPORT macro - please use Py_BUILD_CORE */
+ #ifdef USE_DL_EXPORT
+ #	define Py_BUILD_CORE
+ #endif /* USE_DL_EXPORT */
+ 
+ /* All windows compilers that use this header support __declspec */
+ #define HAVE_DECLSPEC_DLL
+ 
+ /* For an MSVC DLL, we can nominate the .lib files used by extensions */
+ #ifdef MS_COREDLL
+ #	ifndef Py_BUILD_CORE /* not building the core - must be an ext */
+ #		if defined(_MSC_VER)
+ 			/* So MSVC users need not specify the .lib file in 
+ 			their Makefile (other compilers are generally
+ 			taken care of by distutils.) */
+ #			ifdef _DEBUG
+ #				pragma comment(lib,"python23_d.lib")
+ #			else
+ #				pragma comment(lib,"python23.lib")
+ #			endif /* _DEBUG */
+ #		endif /* _MSC_VER */
+ #	endif /* Py_BUILD_CORE */
+ #endif /* MS_COREDLL */
+ 
 #if defined(MS_WIN64)
 /* maintain "win32" sys.platform for backward compatibility of Python code,
***************
*** 322,342 ****
 #endif
 
- 
- #ifdef MS_WIN32
- 
- #if !defined(USE_DL_EXPORT) && defined(_MSC_VER)
- /* So nobody using MSVC needs to specify the .lib in their Makefile any
- more (other compilers will still need to do so, but that's taken care
- of by the Distutils, so it's not a problem). */
 #ifdef _DEBUG
! #pragma comment(lib,"python23_d.lib")
! #else
! #pragma comment(lib,"python23.lib")
 #endif
- #endif /* USE_DL_EXPORT */
 
! #ifdef _DEBUG
! #define Py_DEBUG
! #endif
 
 #define SIZEOF_SHORT 2
--- 240,249 ----
 #endif
 
 #ifdef _DEBUG
! #	define Py_DEBUG
 #endif
 
! 
! #ifdef MS_WIN32
 
 #define SIZEOF_SHORT 2
Index: _winreg.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/PC/_winreg.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** _winreg.c	13 Jun 2002 20:33:01 -0000	1.10
--- _winreg.c	19 Jul 2002 06:55:41 -0000	1.11
***************
*** 1424,1428 ****
 #define ADD_KEY(val) inskey(d, #val, val)
 
! __declspec(dllexport) void init_winreg(void)
 {
 	PyObject *m, *d;
--- 1424,1428 ----
 #define ADD_KEY(val) inskey(d, #val, val)
 
! PyMODINIT_FUNC init_winreg(void)
 {
 	PyObject *m, *d;

AltStyle によって変換されたページ (->オリジナル) /