|
1 | 1 | #ifndef _CDEFS_COMPAT_H_ |
2 | 2 | #define _CDEFS_COMPAT_H_ |
3 | 3 |
|
| 4 | +#if !defined(__BEGIN_DECLS) |
4 | 5 | #if defined(__cplusplus) |
5 | 6 | #define __BEGIN_DECLS extern "C" { |
6 | 7 | #define __END_DECLS } |
7 | 8 | #else |
8 | 9 | #define __BEGIN_DECLS |
9 | 10 | #define __END_DECLS |
10 | 11 | #endif |
| 12 | +#endif /* !defined(__BEGIN_DECLS) */ |
11 | 13 |
|
12 | 14 | #ifdef __GNUC__ |
13 | 15 | #ifndef __strong_reference |
|
25 | 27 | #define __weak_reference(sym,alias) \ |
26 | 28 | __asm__(".weak " #alias); \ |
27 | 29 | __asm__(".equ " #alias ", " #sym) |
| 30 | +#ifndef __warn_references |
28 | 31 | #define __warn_references(sym,msg) \ |
29 | 32 | __asm__(".section .gnu.warning." #sym); \ |
30 | 33 | __asm__(".asciz \"" msg "\""); \ |
31 | 34 | __asm__(".previous") |
| 35 | +#endif /* __warn_references */ |
32 | 36 | #else |
33 | 37 | #define __weak_reference(sym,alias) \ |
34 | 38 | __asm__(".weak alias"); \ |
35 | 39 | __asm__(".equ alias, sym") |
| 40 | +#ifndef __warn_references |
36 | 41 | #define __warn_references(sym,msg) \ |
37 | 42 | __asm__(".section .gnu.warning.sym"); \ |
38 | 43 | __asm__(".asciz \"msg\""); \ |
39 | 44 | __asm__(".previous") |
| 45 | +#endif /* __warn_references */ |
40 | 46 | #endif /* __STDC__ */ |
41 | 47 | #elif defined(__clang__) /* CLANG */ |
42 | 48 | #ifdef __STDC__ |
|
53 | 59 | #define __weak_reference(sym,alias) \ |
54 | 60 | __asm__(".stabs \"_" #alias "\",11,0,0,0"); \ |
55 | 61 | __asm__(".stabs \"_" #sym "\",1,0,0,0") |
| 62 | +#ifndef __warn_references |
56 | 63 | #define __warn_references(sym,msg) \ |
57 | 64 | __asm__(".stabs \"" msg "\",30,0,0,0"); \ |
58 | 65 | __asm__(".stabs \"_" #sym "\",1,0,0,0") |
| 66 | +#endif /* __warn_references */ |
59 | 67 | #else |
60 | 68 | #define __weak_reference(sym,alias) \ |
61 | 69 | __asm__(".stabs \"_/**/alias\",11,0,0,0"); \ |
62 | 70 | __asm__(".stabs \"_/**/sym\",1,0,0,0") |
| 71 | +#ifndef __warn_references |
63 | 72 | #define __warn_references(sym,msg) \ |
64 | 73 | __asm__(".stabs msg,30,0,0,0"); \ |
65 | 74 | __asm__(".stabs \"_/**/sym\",1,0,0,0") |
| 75 | +#endif /* __warn_references */ |
66 | 76 | #endif /* __STDC__ */ |
67 | 77 | #endif /* __ELF__ */ |
68 | 78 | #endif /* __weak_reference */ |
|
0 commit comments