mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 18:28:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef Py_EXPORTS_H
 | |
| #define Py_EXPORTS_H
 | |
| 
 | |
| #if defined(_WIN32) || defined(__CYGWIN__)
 | |
|     #if defined(Py_ENABLE_SHARED)
 | |
|         #define Py_IMPORTED_SYMBOL __declspec(dllimport)
 | |
|         #define Py_EXPORTED_SYMBOL __declspec(dllexport)
 | |
|         #define Py_LOCAL_SYMBOL
 | |
|     #else
 | |
|         #define Py_IMPORTED_SYMBOL
 | |
|         #define Py_EXPORTED_SYMBOL
 | |
|         #define Py_LOCAL_SYMBOL
 | |
|     #endif
 | |
| #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 */
 | 
