1/* Some compiler optimizations may transform loops into memset/memmove
2 calls and without proper declaration it may generate PLT calls. */
3#if !defined __ASSEMBLER__ && IS_IN (libc) && defined SHARED \
4 && !defined LIBC_NONSHARED
5asm ("memmove = __GI_memmove");
6asm ("memset = __GI_memset");
7asm ("memcpy = __GI_memcpy");
8
9/* Some targets do not use __stack_chk_fail_local. In libc.so,
10 redirect __stack_chk_fail to a hidden reference
11 __stack_chk_fail_local, to avoid the PLT reference.
12 __stack_chk_fail itself is a global symbol, exported from libc.so,
13 and cannot be made hidden. */
14
15# if IS_IN (libc) && defined SHARED \
16 && defined STACK_PROTECTOR_LEVEL && STACK_PROTECTOR_LEVEL > 0
17asm (".hidden __stack_chk_fail_local\n"
18 "__stack_chk_fail = __stack_chk_fail_local");
19# endif
20#endif
21

source code of glibc/sysdeps/generic/symbol-hacks.h