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 5 asm ("memmove = __GI_memmove"); 6 asm ("memset = __GI_memset"); 7 asm ("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 17 asm (".hidden __stack_chk_fail_local\n" 18 "__stack_chk_fail = __stack_chk_fail_local"); 19 # endif 20 #endif 21