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