]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Changes for dynamic linking under NT
authorGuido van Rossum <guido@python.org>
Thu, 18 Aug 1994 16:18:13 +0000 (16:18 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 18 Aug 1994 16:18:13 +0000 (16:18 +0000)
21 files changed:
Include/accessobject.h
Include/allobjects.h
Include/classobject.h
Include/compile.h
Include/errors.h
Include/fileobject.h
Include/floatobject.h
Include/frameobject.h
Include/funcobject.h
Include/intobject.h
Include/listobject.h
Include/longobject.h
Include/mappingobject.h
Include/methodobject.h
Include/moduleobject.h
Include/object.h
Include/pyerrors.h
Include/rangeobject.h
Include/stringobject.h
Include/sysmodule.h
Include/tupleobject.h

index fd8c2e910e3d2e7a49ab707a5e97a60aa64a8651..56193087b8ac7ea05d2be415904b9829a95fe295 100644 (file)
@@ -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
 }
index 2b361c1afd6841e0f3e918d8e37c858ec24a1cfa..3d555d00e93bcd8fbb679d77fc727d4f6ec2800c 100644 (file)
@@ -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
index 6b1b85b44ee3069352601cd49ae32957df9d482f..f6193458509f03a9021ef22b21f379a52fee38a6 100644 (file)
@@ -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)
index 4526523df34974c09761becd547539025ed4fe9e..6c782da9a418ec2512704ec6122381cd4a49af60 100644 (file)
@@ -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)
 
index 050ff192f268d5487edba8f2b6933287a4e69d3d..33c7806ac8007b6b9a84c79458a6abc18bb3298c 100755 (executable)
@@ -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 */
 
index c52a6aa6fb27633a5ab6716b6e3fc0f8f554c481..7cdd63a067874179d3ef61ac986767191cbfe05a 100644 (file)
@@ -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)
 
index 1d0484fd181cce59839de480ae22c6793edc3070..f6999bd236d580e4ea42e56b13e6ff694e2fd337 100644 (file)
@@ -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)
 
index 24588811f900b1558c2f76850b6d55394972aa57..d9b375a1a84eaa7e89548694e4ea6cf4bdccba5b 100644 (file)
@@ -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)
 
index 84b0dcf34bb3ee535f97ab7ff409f57be01bc676..cb36518db5031ad51be11246685d149c1638c2ec 100644 (file)
@@ -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)
 
index 2ede41e2773cf100b46250f6b4450147df551b33..28471b54ed622f61b999981144886ddd1cbead9f 100644 (file)
@@ -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)
index 610096bba83f4ab003d7cab9545a6046a4c37e2d..212e3ce96ee05044d280e54112c5381bc05b3cb5 100644 (file)
@@ -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)
 
index ce2cd0b8eeae3a366829b2c76ff0ba5dbc47bba8..4c21e7a665c5a628e55da0d09c0d13e5e504d3f4 100644 (file)
@@ -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)
 
index 8844c77165e912e6a61efc559d5623244cbc70df..caedbc754992180a1df6e03688a7ef331c3dbd7c 100644 (file)
@@ -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)
 
index 1ef19aab46382d70c6c7568e69f12e51973bc860..5799a185909f60bcfeed09740239715c06c8c904 100644 (file)
@@ -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)
 
index 0605d314c11fb3351dce84c33e4e9bf4a52a673f..3bd264272904428743423399d3d69a28937a3413 100644 (file)
@@ -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)
 
index cf10ec518177851dfc4d7661217702801c3f2b24..e4195674c95fb952279808974e58e9d3a8e94998 100644 (file)
@@ -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)
 
index 050ff192f268d5487edba8f2b6933287a4e69d3d..33c7806ac8007b6b9a84c79458a6abc18bb3298c 100644 (file)
@@ -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 */
 
index 9befd9b7294686bf05dec3e0e231cc4e39031086..50d660b2139309a020b9a124e1db1466e62dfee6 100644 (file)
@@ -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)
 
index 6896a557f759303786394926065758538cef4a2a..b6ec1c8ca3e695e91b19759b552852405068d188 100644 (file)
@@ -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)
 
index 93e3a51d449e60260a315ca0c77ae24dc85a050b..e48e4a32e768f0f0e4e365d95f5ee2df197a69f4 100644 (file)
@@ -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
 }
index b422a402404a5ba8f36a40b1265a59a9c1af1822..f89c655b2f01982906d79279320a307be57512b9 100644 (file)
@@ -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)