mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 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 */
 |