1 #ifndef _SYS_CDEFS_H 2 3 #include <misc/sys/cdefs.h> 4 5 #ifndef _ISOMAC 6 /* The compiler will optimize based on the knowledge the parameter is 7 not NULL. This will omit tests. A robust implementation cannot allow 8 this so when compiling glibc itself we ignore this attribute. */ 9 # undef __nonnull 10 # define __nonnull(params) 11 12 extern void __chk_fail (void) __attribute__ ((__noreturn__)); 13 libc_hidden_proto (__chk_fail) 14 rtld_hidden_proto (__chk_fail) 15 16 /* If we are using redirects internally to support long double, 17 we need to tweak some macros to ensure the PLT bypass tricks 18 continue to work in libc. */ 19 #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 && IS_IN (libc) && defined SHARED 20 21 # undef __LDBL_REDIR_DECL 22 # define __LDBL_REDIR_DECL(func) \ 23 extern __typeof(func) func __asm (__ASMNAME ("__GI____ieee128_" #func)); 24 25 # undef libc_hidden_ldbl_proto 26 # define libc_hidden_ldbl_proto(func, attrs...) \ 27 extern __typeof(func) ___ieee128_ ## func; \ 28 libc_hidden_proto (___ieee128_ ## func, ##attrs); 29 30 # undef __LDBL_REDIR2_DECL 31 # define __LDBL_REDIR2_DECL(func) \ 32 extern __typeof(__ ## func) __ ## func __asm (__ASMNAME ("__GI____ieee128___" #func)); 33 34 #endif 35 36 #endif /* !defined _ISOMAC */ 37 38 #endif 39