diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libc/include/namespace.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/lib/libc/include/namespace.h b/src/lib/libc/include/namespace.h index 980c1a8dd6..73b845e10f 100644 --- a/src/lib/libc/include/namespace.h +++ b/src/lib/libc/include/namespace.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: namespace.h,v 1.10 2016/05/07 19:05:22 guenther Exp $ */ | 1 | /* $OpenBSD: namespace.h,v 1.11 2017/11/29 05:13:57 guenther Exp $ */ |
| 2 | 2 | ||
| 3 | #ifndef _LIBC_NAMESPACE_H_ | 3 | #ifndef _LIBC_NAMESPACE_H_ |
| 4 | #define _LIBC_NAMESPACE_H_ | 4 | #define _LIBC_NAMESPACE_H_ |
| @@ -154,23 +154,35 @@ | |||
| 154 | #define DEF_CANCEL(x) __weak_alias(x, CANCEL(x)) | 154 | #define DEF_CANCEL(x) __weak_alias(x, CANCEL(x)) |
| 155 | #define DEF_WRAP(x) __weak_alias(x, WRAP(x)) | 155 | #define DEF_WRAP(x) __weak_alias(x, WRAP(x)) |
| 156 | #define DEF_SYS(x) __strong_alias(_thread_sys_##x, HIDDEN(x)) | 156 | #define DEF_SYS(x) __strong_alias(_thread_sys_##x, HIDDEN(x)) |
| 157 | #ifdef __clang__ | ||
| 158 | #define DEF_BUILTIN(x) __asm("") | ||
| 159 | #define BUILTIN __attribute__((__visibility__("protected"))) | ||
| 160 | #else | ||
| 161 | #define DEF_BUILTIN(x) DEF_STRONG(x) | ||
| 162 | #define BUILTIN | ||
| 163 | #endif | ||
| 157 | 164 | ||
| 158 | #define MAKE_CLONE(dst, src) __dso_hidden typeof(dst) HIDDEN(dst) \ | 165 | #define MAKE_CLONE(dst, src) __dso_hidden typeof(dst) HIDDEN(dst) \ |
| 159 | __attribute__((alias (HIDDEN_STRING(src)))) | 166 | __attribute__((alias (HIDDEN_STRING(src)))) |
| 160 | 167 | ||
| 161 | 168 | ||
| 162 | /* | 169 | /* |
| 163 | * gcc will generate calls to the functions below. | 170 | * gcc and clang will generate calls to the functions below. |
| 164 | * Declare and redirect them here so we always go | 171 | * Declare and redirect them here so we always go |
| 165 | * directly to our hidden aliases. | 172 | * directly to our hidden aliases. |
| 166 | */ | 173 | */ |
| 167 | #include <sys/_types.h> | 174 | #include <sys/_types.h> |
| 168 | void *memcpy(void *__restrict, const void *__restrict, __size_t); | 175 | BUILTIN void *memmove(void *, const void *, __size_t); |
| 169 | void *memset(void *, int, __size_t); | 176 | BUILTIN void *memcpy(void *__restrict, const void *__restrict, __size_t); |
| 170 | void __stack_smash_handler(const char [], int __attribute__((__unused__))); | 177 | BUILTIN void *memset(void *, int, __size_t); |
| 178 | BUILTIN void __stack_smash_handler(const char [], int __unused); | ||
| 179 | #ifndef __clang__ | ||
| 180 | PROTO_NORMAL(memmove); | ||
| 171 | PROTO_NORMAL(memcpy); | 181 | PROTO_NORMAL(memcpy); |
| 172 | PROTO_NORMAL(memset); | 182 | PROTO_NORMAL(memset); |
| 173 | PROTO_NORMAL(__stack_smash_handler); | 183 | PROTO_NORMAL(__stack_smash_handler); |
| 184 | #endif | ||
| 185 | #undef BUILTIN | ||
| 174 | 186 | ||
| 175 | #endif /* _LIBC_NAMESPACE_H_ */ | 187 | #endif /* _LIBC_NAMESPACE_H_ */ |
| 176 | 188 | ||
