@@ -17,31 +17,32 @@ extern "C" {
17
17
18
18
// Macros to burn global values in custom sections so out-of-process
19
19
// 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)
26
25
27
26
#if defined(MS_WINDOWS )
28
27
#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)))
31
30
#else
32
31
#define _GENERATE_DEBUG_SECTION_WINDOWS (name )
33
32
#endif
34
33
35
34
#if defined(__APPLE__ )
36
35
#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))
38
38
#else
39
39
#define _GENERATE_DEBUG_SECTION_APPLE (name )
40
40
#endif
41
41
42
42
#if defined(__linux__ ) && (defined(__GNUC__ ) || defined(__clang__ ))
43
43
#define _GENERATE_DEBUG_SECTION_LINUX (name ) \
44
- __attribute__((section("." Py_STRINGIFY(name))))
44
+ __attribute__((section("." Py_STRINGIFY(name)))) \
45
+ __attribute__((used))
45
46
#else
46
47
#define _GENERATE_DEBUG_SECTION_LINUX (name )
47
48
#endif
0 commit comments