(check_consistency): Define.

This commit is contained in:
Ulrich Drepper 2005-02-08 06:48:30 +00:00
parent bc82059d34
commit dbfc1e0267
1 changed files with 23 additions and 0 deletions

View File

@ -540,6 +540,29 @@ asm (".L__X'%ebx = 1\n\t"
# define EXTRAVAR_5
#endif
/* Consistency check for position-independent code. */
#ifdef __PIC__
# define check_consistency() \
({ int __res; \
__asm__ __volatile__ \
("call __i686.get_pc_thunk.cx;" \
"addl $_GLOBAL_OFFSET_TABLE_, %%ecx;" \
"subl %%ebx, %%ecx;" \
"je 1f;" \
"ud2;" \
"1:\n" \
".section .gnu.linkonce.t.__i686.get_pc_thunk.cx,\"ax\",@progbits;" \
".globl __i686.get_pc_thunk.cx;" \
".hidden __i686.get_pc_thunk.cx;" \
".type __i686.get_pc_thunk.cx,@function;" \
"__i686.get_pc_thunk.cx:" \
"movl (%%esp), %%ecx;" \
"ret;" \
".previous" \
: "=c" (__res)); \
__res; })
#endif
#endif /* __ASSEMBLER__ */
#endif /* linux/i386/sysdep.h */