/* Some compiler optimizations may transform loops into memset/memmove calls and without proper declaration it may generate PLT calls. */ #if !defined __ASSEMBLER__ && IS_IN (libc) && defined SHARED asm ("memmove = __GI_memmove"); asm ("memset = __GI_memset"); asm ("memcpy = __GI_memcpy"); /* Some targets do not use __stack_chk_fail_local. In libc.so, redirect __stack_chk_fail to a hidden reference __stack_chk_fail_local, to avoid the PLT reference. __stack_chk_fail itself is a global symbol, exported from libc.so, and cannot be made hidden. */ # if IS_IN (libc) && defined SHARED \ && defined STACK_PROTECTOR_LEVEL && STACK_PROTECTOR_LEVEL > 0 asm (".hidden __stack_chk_fail_local\n" "__stack_chk_fail = __stack_chk_fail_local"); # endif #endif