[MINGW-W64]
[reactos.git] / reactos / include / reactos / mingw-w64 / sect_attribs.h
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 (__ia64__) || defined (__x86_64)
8 #define _ATTRIBUTES
9 #else
10 #define _ATTRIBUTES shared
11 #endif
12
13 #if defined(_MSC_VER)
14 /* Reference list of existing section for msvcrt. */
15 #pragma section(".CRTMP$XCA",long,_ATTRIBUTES)
16 #pragma section(".CRTMP$XCZ",long,_ATTRIBUTES)
17 #pragma section(".CRTMP$XIA",long,_ATTRIBUTES)
18 #pragma section(".CRTMP$XIZ",long,_ATTRIBUTES)
19
20 #pragma section(".CRTMA$XCA",long,_ATTRIBUTES)
21 #pragma section(".CRTMA$XCZ",long,_ATTRIBUTES)
22 #pragma section(".CRTMA$XIA",long,_ATTRIBUTES)
23 #pragma section(".CRTMA$XIZ",long,_ATTRIBUTES)
24
25 #pragma section(".CRTVT$XCA",long,_ATTRIBUTES)
26 #pragma section(".CRTVT$XCZ",long,_ATTRIBUTES)
27
28 #pragma section(".CRT$XCA",long,_ATTRIBUTES)
29 #pragma section(".CRT$XCAA",long,_ATTRIBUTES)
30 #pragma section(".CRT$XCC",long,_ATTRIBUTES)
31 #pragma section(".CRT$XCZ",long,_ATTRIBUTES)
32 #pragma section(".CRT$XDA",long,_ATTRIBUTES)
33 #pragma section(".CRT$XDC",long,_ATTRIBUTES)
34 #pragma section(".CRT$XDZ",long,_ATTRIBUTES)
35 #pragma section(".CRT$XIA",long,_ATTRIBUTES)
36 #pragma section(".CRT$XIAA",long,_ATTRIBUTES)
37 #pragma section(".CRT$XIC",long,_ATTRIBUTES)
38 #pragma section(".CRT$XID",long,_ATTRIBUTES)
39 #pragma section(".CRT$XIY",long,_ATTRIBUTES)
40 #pragma section(".CRT$XIZ",long,_ATTRIBUTES)
41 #pragma section(".CRT$XLA",long,_ATTRIBUTES)
42 #pragma section(".CRT$XLC",long,_ATTRIBUTES)
43 #pragma section(".CRT$XLD",long,_ATTRIBUTES)
44 #pragma section(".CRT$XLZ",long,_ATTRIBUTES)
45 #pragma section(".CRT$XPA",long,_ATTRIBUTES)
46 #pragma section(".CRT$XPX",long,_ATTRIBUTES)
47 #pragma section(".CRT$XPXA",long,_ATTRIBUTES)
48 #pragma section(".CRT$XPZ",long,_ATTRIBUTES)
49 #pragma section(".CRT$XTA",long,_ATTRIBUTES)
50 #pragma section(".CRT$XTB",long,_ATTRIBUTES)
51 #pragma section(".CRT$XTX",long,_ATTRIBUTES)
52 #pragma section(".CRT$XTZ",long,_ATTRIBUTES)
53 #pragma section(".rdata$T",long,read)
54 #pragma section(".rtc$IAA",long,read)
55 #pragma section(".rtc$IZZ",long,read)
56 #pragma section(".rtc$TAA",long,read)
57 #pragma section(".rtc$TZZ",long,read)
58 /* for tlssup.c: */
59 #pragma section(".tls",long,read,write)
60 #pragma section(".tls$AAA",long,read,write)
61 #pragma section(".tls$ZZZ",long,read,write)
62 #endif
63
64 #if defined(_MSC_VER)
65 #define _CRTALLOC(x) __declspec(allocate(x))
66 #elif defined(__GNUC__)
67 #define _CRTALLOC(x) __attribute__ ((section (x) ))
68 #else
69 #error Your compiler is not supported.
70 #endif