1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the w64 mingw-runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 
7 #if defined(_MSC_VER)
8 
9 #if defined(_M_IA64) || defined(_M_AMD64)
10 #define _ATTRIBUTES read
11 #else
12 #define _ATTRIBUTES read
13 #endif
14 
15 /* Reference list of existing section for msvcrt.  */
16 #pragma section(".CRTMP$XCA",long,_ATTRIBUTES)
17 #pragma section(".CRTMP$XCZ",long,_ATTRIBUTES)
18 #pragma section(".CRTMP$XIA",long,_ATTRIBUTES)
19 #pragma section(".CRTMP$XIZ",long,_ATTRIBUTES)
20 
21 #pragma section(".CRTMA$XCA",long,_ATTRIBUTES)
22 #pragma section(".CRTMA$XCZ",long,_ATTRIBUTES)
23 #pragma section(".CRTMA$XIA",long,_ATTRIBUTES)
24 #pragma section(".CRTMA$XIZ",long,_ATTRIBUTES)
25 
26 #pragma section(".CRTVT$XCA",long,_ATTRIBUTES)
27 #pragma section(".CRTVT$XCZ",long,_ATTRIBUTES)
28 
29 #pragma section(".CRT$XCA",long,_ATTRIBUTES)
30 #pragma section(".CRT$XCAA",long,_ATTRIBUTES)
31 #pragma section(".CRT$XCC",long,_ATTRIBUTES)
32 #pragma section(".CRT$XCZ",long,_ATTRIBUTES)
33 #pragma section(".CRT$XDA",long,_ATTRIBUTES)
34 #pragma section(".CRT$XDC",long,_ATTRIBUTES)
35 #pragma section(".CRT$XDZ",long,_ATTRIBUTES)
36 #pragma section(".CRT$XIA",long,_ATTRIBUTES)
37 #pragma section(".CRT$XIAA",long,_ATTRIBUTES)
38 #pragma section(".CRT$XIC",long,_ATTRIBUTES)
39 #pragma section(".CRT$XID",long,_ATTRIBUTES)
40 #pragma section(".CRT$XIY",long,_ATTRIBUTES)
41 #pragma section(".CRT$XIZ",long,_ATTRIBUTES)
42 #pragma section(".CRT$XLA",long,_ATTRIBUTES)
43 #pragma section(".CRT$XLC",long,_ATTRIBUTES)
44 #pragma section(".CRT$XLD",long,_ATTRIBUTES)
45 #pragma section(".CRT$XLZ",long,_ATTRIBUTES)
46 #pragma section(".CRT$XPA",long,_ATTRIBUTES)
47 #pragma section(".CRT$XPX",long,_ATTRIBUTES)
48 #pragma section(".CRT$XPXA",long,_ATTRIBUTES)
49 #pragma section(".CRT$XPZ",long,_ATTRIBUTES)
50 #pragma section(".CRT$XTA",long,_ATTRIBUTES)
51 #pragma section(".CRT$XTB",long,_ATTRIBUTES)
52 #pragma section(".CRT$XTX",long,_ATTRIBUTES)
53 #pragma section(".CRT$XTZ",long,_ATTRIBUTES)
54 #pragma section(".rdata$T",long,read)
55 #pragma section(".rtc$IAA",long,read)
56 #pragma section(".rtc$IZZ",long,read)
57 #pragma section(".rtc$TAA",long,read)
58 #pragma section(".rtc$TZZ",long,read)
59 /* for tlssup.c: */
60 #pragma section(".tls",long,read,write)
61 #pragma section(".tls$AAA",long,read,write)
62 #pragma section(".tls$ZZZ",long,read,write)
63 #endif /* _MSC_VER */
64 
65 #if defined(_MSC_VER)
66 #define _CRTALLOC(x) __declspec(allocate(x))
67 #elif defined(__GNUC__)
68 #define _CRTALLOC(x) __attribute__ ((section (x) ))
69 #else
70 #error Your compiler is not supported.
71 #endif
72 
73