1#include <string.h>
2#include <stdint.h>
3#include "pthread_impl.h"
4
5uintptr_t __stack_chk_guard;
6
7void __init_ssp(void *entropy)
8{
9	if (entropy) memcpy(&__stack_chk_guard, entropy, sizeof(uintptr_t));
10	else __stack_chk_guard = (uintptr_t)&__stack_chk_guard * 1103515245;
11
12	__pthread_self()->CANARY = __stack_chk_guard;
13}
14
15void __stack_chk_fail(void)
16{
17	a_crash();
18}
19
20__attribute__((__visibility__("hidden")))
21void __stack_chk_fail_local(void);
22
23weak_alias(__stack_chk_fail, __stack_chk_fail_local);
24