| ... | @@ -155,6 +155,18 @@ | ... | @@ -155,6 +155,18 @@ |
| 155 | extern __typeof (name) aliasname __attribute__ ((weak, alias (#name))) \ | 155 | extern __typeof (name) aliasname __attribute__ ((weak, alias (#name))) \ |
| 156 | __attribute_copy__ (name); | 156 | __attribute_copy__ (name); |
| 157 | | 157 | |
| | 158 | /* Zig patch. weak_hidden_alias was removed from glibc v2.36 (v2.37?), Zig |
| | 159 | needs it for the v2.32 and earlier {f,l,}stat wrappers, so only include |
| | 160 | in this header for 2.32 and earlier. */ |
| | 161 | #if (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 32) || __GLIBC__ < 2 |
| | 162 | # define weak_hidden_alias(name, aliasname) \ |
| | 163 | _weak_hidden_alias (name, aliasname) |
| | 164 | # define _weak_hidden_alias(name, aliasname) \ |
| | 165 | extern __typeof (name) aliasname \ |
| | 166 | __attribute__ ((weak, alias (#name), __visibility__ ("hidden"))) \ |
| | 167 | __attribute_copy__ (name); |
| | 168 | #endif |
| | 169 | |
| 158 | /* Declare SYMBOL as weak undefined symbol (resolved to 0 if not defined). */ | 170 | /* Declare SYMBOL as weak undefined symbol (resolved to 0 if not defined). */ |
| 159 | # define weak_extern(symbol) _weak_extern (weak symbol) | 171 | # define weak_extern(symbol) _weak_extern (weak symbol) |
| 160 | # define _weak_extern(expr) _Pragma (#expr) | 172 | # define _weak_extern(expr) _Pragma (#expr) |