mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	
		
			
	
	
		
			31 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #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 */
 |