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