@@ -17,31 +17,32 @@ extern "C" {
1717
1818// Macros to burn global values in custom sections so out-of-process
1919// profilers can locate them easily.
20-
21- #define GENERATE_DEBUG_SECTION (name , declaration ) \
22- _GENERATE_DEBUG_SECTION_WINDOWS(name) \
23- _GENERATE_DEBUG_SECTION_APPLE(name) \
24- declaration \
25- _GENERATE_DEBUG_SECTION_LINUX(name)
20+ #define GENERATE_DEBUG_SECTION (name , declaration ) \
21+ _GENERATE_DEBUG_SECTION_WINDOWS(name) \
22+ _GENERATE_DEBUG_SECTION_APPLE(name) \
23+ declaration \
24+ _GENERATE_DEBUG_SECTION_LINUX(name)
2625
2726#if defined(MS_WINDOWS )
2827#define _GENERATE_DEBUG_SECTION_WINDOWS (name ) \
29- _Pragma(Py_STRINGIFY(section(Py_STRINGIFY(name), read, write))) \
30- __declspec(allocate(Py_STRINGIFY(name)))
28+ _Pragma(Py_STRINGIFY(section(Py_STRINGIFY(name), read, write))) \
29+ __declspec(allocate(Py_STRINGIFY(name)))
3130#else
3231#define _GENERATE_DEBUG_SECTION_WINDOWS (name )
3332#endif
3433
3534#if defined(__APPLE__ )
3635#define _GENERATE_DEBUG_SECTION_APPLE (name ) \
37- __attribute__((section(SEG_DATA "," Py_STRINGIFY(name))))
36+ __attribute__((section(SEG_DATA "," Py_STRINGIFY(name)))) \
37+ __attribute__((used))
3838#else
3939#define _GENERATE_DEBUG_SECTION_APPLE (name )
4040#endif
4141
4242#if defined(__linux__ ) && (defined(__GNUC__ ) || defined(__clang__ ))
4343#define _GENERATE_DEBUG_SECTION_LINUX (name ) \
44- __attribute__((section("." Py_STRINGIFY(name))))
44+ __attribute__((section("." Py_STRINGIFY(name)))) \
45+ __attribute__((used))
4546#else
4647#define _GENERATE_DEBUG_SECTION_LINUX (name )
4748#endif
0 commit comments