Commit e89bc750 authored by Guido van Rossum's avatar Guido van Rossum

Changes for dynamic linking under NT

parent 14aa5da8
......@@ -46,7 +46,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define AC_R_PUBLIC 0004
#define AC_W_PUBLIC 0002
extern typeobject Accesstype;
extern DL_IMPORT typeobject Accesstype;
#define is_accessobject(v) ((v)->ob_type == &Accesstype)
......@@ -58,7 +58,7 @@ void setaccessowner PROTO((object *, object *));
object *cloneaccessobject PROTO((object *));
int hasaccessvalue PROTO((object *));
extern typeobject Anynumbertype, Anysequencetype, Anymappingtype;
extern DL_IMPORT typeobject Anynumbertype, Anysequencetype, Anymappingtype;
#ifdef __cplusplus
}
......
......@@ -30,6 +30,19 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* "allobjects.c" -- Source for precompiled header "allobjects.h" */
/* Some systems (well, NT anyway!) require special declarations for
data items imported from dynamic modules. Note that this defn is
only turned on for the modules built as DL modules, not for python
itself.
*/
#define DL_IMPORT /* Save lots of #else/#if's */
#ifdef USE_DL_IMPORT
#ifdef NT
#undef DL_IMPORT
#define DL_IMPORT __declspec(dllimport)
#endif /* NT */
#endif /* USE_DL_IMPORT */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
......
......@@ -57,7 +57,7 @@ typedef struct {
#endif
} instanceobject;
extern typeobject Classtype, Instancetype, Instancemethodtype;
extern DL_IMPORT typeobject Classtype, Instancetype, Instancemethodtype;
#define is_classobject(op) ((op)->ob_type == &Classtype)
#define is_instanceobject(op) ((op)->ob_type == &Instancetype)
......
......@@ -47,7 +47,7 @@ typedef struct {
object *co_name; /* string */
} codeobject;
extern typeobject Codetype;
extern DL_IMPORT typeobject Codetype;
#define is_codeobject(op) ((op)->ob_type == &Codetype)
......
......@@ -39,25 +39,25 @@ void err_clear PROTO((void));
/* Predefined exceptions */
extern object *AccessError;
extern object *AttributeError;
extern object *ConflictError;
extern object *EOFError;
extern object *IOError;
extern object *ImportError;
extern object *IndexError;
extern object *KeyError;
extern object *KeyboardInterrupt;
extern object *MemoryError;
extern object *NameError;
extern object *OverflowError;
extern object *RuntimeError;
extern object *SyntaxError;
extern object *SystemError;
extern object *SystemExit;
extern object *TypeError;
extern object *ValueError;
extern object *ZeroDivisionError;
extern DL_IMPORT object *AccessError;
extern DL_IMPORT object *AttributeError;
extern DL_IMPORT object *ConflictError;
extern DL_IMPORT object *EOFError;
extern DL_IMPORT object *IOError;
extern DL_IMPORT object *ImportError;
extern DL_IMPORT object *IndexError;
extern DL_IMPORT object *KeyError;
extern DL_IMPORT object *KeyboardInterrupt;
extern DL_IMPORT object *MemoryError;
extern DL_IMPORT object *NameError;
extern DL_IMPORT object *OverflowError;
extern DL_IMPORT object *RuntimeError;
extern DL_IMPORT object *SyntaxError;
extern DL_IMPORT object *SystemError;
extern DL_IMPORT object *SystemExit;
extern DL_IMPORT object *TypeError;
extern DL_IMPORT object *ValueError;
extern DL_IMPORT object *ZeroDivisionError;
/* Convenience functions */
......
......@@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* File object interface */
extern typeobject Filetype;
extern DL_IMPORT typeobject Filetype;
#define is_fileobject(op) ((op)->ob_type == &Filetype)
......
......@@ -39,7 +39,7 @@ typedef struct {
double ob_fval;
} floatobject;
extern typeobject Floattype;
extern DL_IMPORT typeobject Floattype;
#define is_floatobject(op) ((op)->ob_type == &Floattype)
......
......@@ -58,7 +58,7 @@ typedef struct _frame {
/* Standard object interface */
extern typeobject Frametype;
extern DL_IMPORT typeobject Frametype;
#define is_frameobject(op) ((op)->ob_type == &Frametype)
......
......@@ -39,7 +39,7 @@ typedef struct {
object *func_argdefs;
} funcobject;
extern typeobject Functype;
extern DL_IMPORT typeobject Functype;
#define is_funcobject(op) ((op)->ob_type == &Functype)
......
......@@ -50,7 +50,7 @@ typedef struct {
long ob_ival;
} intobject;
extern typeobject Inttype;
extern DL_IMPORT typeobject Inttype;
#define is_intobject(op) ((op)->ob_type == &Inttype)
......@@ -69,7 +69,7 @@ Hope these macros don't conflict with other people's.
Don't forget to apply INCREF() when returning True or False!!!
*/
extern intobject FalseObject, TrueObject; /* Don't use these directly */
extern DL_IMPORT intobject FalseObject, TrueObject; /* Don't use these directly */
#define False ((object *) &FalseObject)
#define True ((object *) &TrueObject)
......
......@@ -49,7 +49,7 @@ typedef struct {
object **ob_item;
} listobject;
extern typeobject Listtype;
extern DL_IMPORT typeobject Listtype;
#define is_listobject(op) ((op)->ob_type == &Listtype)
......
......@@ -32,7 +32,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
typedef struct _longobject longobject; /* Revealed in longintrepr.h */
extern typeobject Longtype;
extern DL_IMPORT typeobject Longtype;
#define is_longobject(op) ((op)->ob_type == &Longtype)
......
......@@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* Mapping object type -- mapping from hashable object to object */
extern typeobject Mappingtype;
extern DL_IMPORT typeobject Mappingtype;
#define is_mappingobject(op) ((op)->ob_type == &Mappingtype)
......
......@@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* Method object interface */
extern typeobject Methodtype;
extern DL_IMPORT typeobject Methodtype;
#define is_methodobject(op) ((op)->ob_type == &Methodtype)
......
......@@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* Module object interface */
extern typeobject Moduletype;
extern DL_IMPORT typeobject Moduletype;
#define is_moduleobject(op) ((op)->ob_type == &Moduletype)
......
......@@ -227,7 +227,7 @@ typedef struct _typeobject {
#endif
} typeobject;
extern typeobject Typetype; /* The type of type objects */
extern DL_IMPORT typeobject Typetype; /* The type of type objects */
#define is_typeobject(op) ((op)->ob_type == &Typetype)
......@@ -341,7 +341,7 @@ where NULL (nil) is not suitable (since NULL often means 'error').
Don't forget to apply INCREF() when returning this value!!!
*/
extern object NoObject; /* Don't use this directly */
extern DL_IMPORT object NoObject; /* Don't use this directly */
#define None (&NoObject)
......
......@@ -39,25 +39,25 @@ void err_clear PROTO((void));
/* Predefined exceptions */
extern object *AccessError;
extern object *AttributeError;
extern object *ConflictError;
extern object *EOFError;
extern object *IOError;
extern object *ImportError;
extern object *IndexError;
extern object *KeyError;
extern object *KeyboardInterrupt;
extern object *MemoryError;
extern object *NameError;
extern object *OverflowError;
extern object *RuntimeError;
extern object *SyntaxError;
extern object *SystemError;
extern object *SystemExit;
extern object *TypeError;
extern object *ValueError;
extern object *ZeroDivisionError;
extern DL_IMPORT object *AccessError;
extern DL_IMPORT object *AttributeError;
extern DL_IMPORT object *ConflictError;
extern DL_IMPORT object *EOFError;
extern DL_IMPORT object *IOError;
extern DL_IMPORT object *ImportError;
extern DL_IMPORT object *IndexError;
extern DL_IMPORT object *KeyError;
extern DL_IMPORT object *KeyboardInterrupt;
extern DL_IMPORT object *MemoryError;
extern DL_IMPORT object *NameError;
extern DL_IMPORT object *OverflowError;
extern DL_IMPORT object *RuntimeError;
extern DL_IMPORT object *SyntaxError;
extern DL_IMPORT object *SystemError;
extern DL_IMPORT object *SystemExit;
extern DL_IMPORT object *TypeError;
extern DL_IMPORT object *ValueError;
extern DL_IMPORT object *ZeroDivisionError;
/* Convenience functions */
......
......@@ -34,7 +34,7 @@ Range objects behave like the corresponding tuple objects except that
they are represented by a start, stop, and step datamembers.
*/
extern typeobject Rangetype;
extern DL_IMPORT typeobject Rangetype;
#define is_rangeobject(op) ((op)->ob_type == &Rangetype)
......
......@@ -57,7 +57,7 @@ typedef struct {
char ob_sval[1];
} stringobject;
extern typeobject Stringtype;
extern DL_IMPORT typeobject Stringtype;
#define is_stringobject(op) ((op)->ob_type == &Stringtype)
......
......@@ -35,7 +35,7 @@ int sysset PROTO((char *, object *));
FILE *sysgetfile PROTO((char *, FILE *));
void initsys PROTO((void));
extern object *sys_trace, *sys_profile;
extern DL_IMPORT object *sys_trace, *sys_profile;
#ifdef __cplusplus
}
......
......@@ -49,7 +49,7 @@ typedef struct {
object *ob_item[1];
} tupleobject;
extern typeobject Tupletype;
extern DL_IMPORT typeobject Tupletype;
#define is_tupleobject(op) ((op)->ob_type == &Tupletype)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment