aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/src/Include/exports.h
blob: 12b9d329084baff8884c8a291df77344860ff774 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef Py_EXPORTS_H 
#define Py_EXPORTS_H 
 
#if defined(_WIN32) || defined(__CYGWIN__) 
    #define Py_IMPORTED_SYMBOL __declspec(dllimport) 
    #define Py_EXPORTED_SYMBOL __declspec(dllexport) 
    #define Py_LOCAL_SYMBOL 
#else 
/* 
 * If we only ever used gcc >= 5, we could use __has_attribute(visibility) 
 * as a cross-platform way to determine if visibility is supported. However, 
 * we may still need to support gcc >= 4, as some Ubuntu LTS and Centos versions 
 * have 4 < gcc < 5. 
 */ 
    #ifndef __has_attribute 
      #define __has_attribute(x) 0  // Compatibility with non-clang compilers. 
    #endif 
    #if (defined(__GNUC__) && (__GNUC__ >= 4)) ||\ 
        (defined(__clang__) && __has_attribute(visibility)) 
        #define Py_IMPORTED_SYMBOL __attribute__ ((visibility ("default"))) 
        #define Py_EXPORTED_SYMBOL __attribute__ ((visibility ("default"))) 
        #define Py_LOCAL_SYMBOL  __attribute__ ((visibility ("hidden"))) 
    #else 
        #define Py_IMPORTED_SYMBOL 
        #define Py_EXPORTED_SYMBOL 
        #define Py_LOCAL_SYMBOL 
    #endif 
#endif 
 
#endif /* Py_EXPORTS_H */