|
14 | 14 | #ifdef __GNUC__ |
15 | 15 | #ifndef __strong_reference |
16 | 16 | #ifdef __APPLE__ |
17 | | -#define __strong_reference(sym,aliassym) __weak_reference(sym,aliassym) |
| 17 | +#define __strong_reference(sym,aliassym) __weak_reference_compat(sym,aliassym) |
18 | 18 | #else |
19 | 19 | #define __strong_reference(sym,aliassym) \ |
20 | 20 | OLM_DLLEXPORT extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym))); |
21 | 21 | #endif /* __APPLE__ */ |
22 | 22 | #endif /* __strong_reference */ |
23 | 23 |
|
24 | 24 | #ifdef __wasm__ |
25 | | -# define __weak_reference(sym,alias) __strong_reference(sym,alias) |
| 25 | +# define __weak_reference_compat(sym,alias) __strong_reference(sym,alias) |
26 | 26 | #endif |
27 | 27 |
|
28 | | -#ifndef __weak_reference |
| 28 | +#ifdef __weak_reference |
| 29 | +#ifdef __NetBSD__ |
| 30 | +#define __weak_reference_compat(sym,alias) __weak_reference(sym) |
| 31 | +#else |
| 32 | +#define __weak_reference_compat(sym,alias) __weak_reference(sym,alias) |
| 33 | +#endif |
| 34 | +#else |
29 | 35 | #ifdef __ELF__ |
30 | 36 | #ifdef __STDC__ |
31 | | -#define __weak_reference(sym,alias) \ |
| 37 | +#define __weak_reference_compat(sym,alias) \ |
32 | 38 | __asm__(".weak " #alias); \ |
33 | 39 | __asm__(".equ " #alias ", " #sym) |
34 | 40 | #ifndef __warn_references |
|
38 | 44 | __asm__(".previous") |
39 | 45 | #endif /* __warn_references */ |
40 | 46 | #else |
41 | | -#define __weak_reference(sym,alias) \ |
| 47 | +#define __weak_reference_compat(sym,alias) \ |
42 | 48 | __asm__(".weak alias"); \ |
43 | 49 | __asm__(".equ alias, sym") |
44 | 50 | #ifndef __warn_references |
|
50 | 56 | #endif /* __STDC__ */ |
51 | 57 | #elif defined(__clang__) /* CLANG */ |
52 | 58 | #ifdef __STDC__ |
53 | | -#define __weak_reference(sym,alias) \ |
| 59 | +#define __weak_reference_compat(sym,alias) \ |
54 | 60 | __asm__(".weak_reference " #alias); \ |
55 | 61 | __asm__(".set " #alias ", " #sym) |
56 | 62 | #else |
57 | | -#define __weak_reference(sym,alias) \ |
| 63 | +#define __weak_referenc_compate(sym,alias) \ |
58 | 64 | __asm__(".weak_reference alias");\ |
59 | 65 | __asm__(".set alias, sym") |
60 | 66 | #endif |
61 | 67 | #else /* !__ELF__ */ |
62 | 68 | #ifdef __STDC__ |
63 | | -#define __weak_reference(sym,alias) \ |
| 69 | +#define __weak_reference_compat(sym,alias) \ |
64 | 70 | __asm__(".stabs \"_" #alias "\",11,0,0,0"); \ |
65 | 71 | __asm__(".stabs \"_" #sym "\",1,0,0,0") |
66 | 72 | #ifndef __warn_references |
|
69 | 75 | __asm__(".stabs \"_" #sym "\",1,0,0,0") |
70 | 76 | #endif /* __warn_references */ |
71 | 77 | #else |
72 | | -#define __weak_reference(sym,alias) \ |
| 78 | +#define __weak_reference_compat(sym,alias) \ |
73 | 79 | __asm__(".stabs \"_/**/alias\",11,0,0,0"); \ |
74 | 80 | __asm__(".stabs \"_/**/sym\",1,0,0,0") |
75 | 81 | #ifndef __warn_references |
|
0 commit comments