mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
(check_consistency): Define.
This commit is contained in:
parent
bc82059d34
commit
dbfc1e0267
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user