Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 930372 Details for
Bug 1133134
init_tls switches around esp around set_thread_area syscall
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
rtld.i
rtld.i (text/plain), 393.79 KB, created by
Florian Weimer
on 2014-08-25 08:32:10 UTC
(
hide
)
Description:
rtld.i
Filename:
MIME Type:
Creator:
Florian Weimer
Created:
2014-08-25 08:32:10 UTC
Size:
393.79 KB
patch
obsolete
># 1 "rtld.c" ># 1 "/builddir/build/BUILD/glibc-2.19-883-g7e54fd0/elf//" ># 1 "<built-in>" ># 1 "<command-line>" ># 1 "./../include/libc-symbols.h" 1 ># 49 "./../include/libc-symbols.h" ># 1 "/builddir/build/BUILD/glibc-2.19-883-g7e54fd0/build-i686-redhat-linux/config.h" 1 ># 50 "./../include/libc-symbols.h" 2 ># 783 "./../include/libc-symbols.h" ># 1 "../sysdeps/wordsize-32/symbol-hacks.h" 1 ># 19 "../sysdeps/wordsize-32/symbol-hacks.h" ># 1 "../sysdeps/generic/symbol-hacks.h" 1 ># 20 "../sysdeps/wordsize-32/symbol-hacks.h" 2 ># 784 "./../include/libc-symbols.h" 2 ># 1 "<command-line>" 2 ># 1 "rtld.c" ># 19 "rtld.c" ># 1 "../include/errno.h" 1 > > ># 1 "../stdlib/errno.h" 1 ># 28 "../stdlib/errno.h" ># 1 "../include/features.h" 1 ># 343 "../include/features.h" ># 1 "../include/stdc-predef.h" 1 ># 344 "../include/features.h" 2 ># 365 "../include/features.h" ># 1 "../include/sys/cdefs.h" 1 > > ># 1 "../misc/sys/cdefs.h" 1 ># 393 "../misc/sys/cdefs.h" ># 1 "../sysdeps/x86/bits/wordsize.h" 1 ># 394 "../misc/sys/cdefs.h" 2 ># 4 "../include/sys/cdefs.h" 2 ># 12 "../include/sys/cdefs.h" >extern void __chk_fail (void) __attribute__ ((__noreturn__)); > >extern __typeof (__chk_fail) __chk_fail __asm__ ("" "__GI___chk_fail") __attribute__ ((visibility ("hidden"))); ># 366 "../include/features.h" 2 ># 389 "../include/features.h" ># 1 "../include/gnu/stubs.h" 1 ># 390 "../include/features.h" 2 ># 29 "../stdlib/errno.h" 2 > > > > > > ># 1 "../sysdeps/unix/sysv/linux/bits/errno.h" 1 ># 24 "../sysdeps/unix/sysv/linux/bits/errno.h" ># 1 "/usr/include/linux/errno.h" 1 3 4 ># 1 "/usr/include/asm/errno.h" 1 3 4 ># 1 "/usr/include/asm-generic/errno.h" 1 3 4 > > > ># 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 ># 5 "/usr/include/asm-generic/errno.h" 2 3 4 ># 1 "/usr/include/asm/errno.h" 2 3 4 ># 1 "/usr/include/linux/errno.h" 2 3 4 ># 25 "../sysdeps/unix/sysv/linux/bits/errno.h" 2 ># 50 "../sysdeps/unix/sysv/linux/bits/errno.h" >extern int *__errno_location (void) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); ># 36 "../stdlib/errno.h" 2 ># 54 "../stdlib/errno.h" >extern char *program_invocation_name, *program_invocation_short_name; > > > > ># 68 "../stdlib/errno.h" >typedef int error_t; ># 4 "../include/errno.h" 2 > > > > ># 1 "../sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h" 1 ># 23 "../sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h" ># 1 "../sysdeps/unix/sysv/linux/i386/dl-sysdep.h" 1 ># 21 "../sysdeps/unix/sysv/linux/i386/dl-sysdep.h" ># 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1 ># 19 "../sysdeps/unix/sysv/linux/dl-sysdep.h" ># 1 "../sysdeps/generic/dl-sysdep.h" 1 ># 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2 ># 31 "../sysdeps/unix/sysv/linux/dl-sysdep.h" >extern int _dl_discover_osversion (void) __attribute__ ((visibility ("hidden"))); ># 22 "../sysdeps/unix/sysv/linux/i386/dl-sysdep.h" 2 ># 31 "../sysdeps/unix/sysv/linux/i386/dl-sysdep.h" >extern void _dl_sysinfo_int80 (void) __attribute__ ((visibility ("hidden"))); ># 24 "../sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h" 2 ># 9 "../include/errno.h" 2 ># 23 "../include/errno.h" >extern int rtld_errno __attribute__ ((visibility ("hidden"))); ># 42 "../include/errno.h" >extern int *__errno_location (void) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) > > __attribute__ ((visibility ("hidden"))) > >; > ># 20 "rtld.c" 2 ># 1 "../include/dlfcn.h" 1 > ># 1 "../dlfcn/dlfcn.h" 1 ># 24 "../dlfcn/dlfcn.h" ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 212 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 3 4 >typedef unsigned int size_t; ># 25 "../dlfcn/dlfcn.h" 2 > > ># 1 "../include/bits/dlfcn.h" 1 ># 1 "../bits/dlfcn.h" 1 ># 57 "../bits/dlfcn.h" > > > >extern void _dl_mcount_wrapper_check (void *__selfpc) __attribute__ ((__nothrow__ )); > > ># 2 "../include/bits/dlfcn.h" 2 > > > ># 28 "../dlfcn/dlfcn.h" 2 ># 44 "../dlfcn/dlfcn.h" >typedef long int Lmid_t; > > > > > > > > > > > >extern void *dlopen (const char *__file, int __mode) __attribute__ ((__nothrow__)); > > > >extern int dlclose (void *__handle) __attribute__ ((__nothrow__)) ; > > > >extern void *dlsym (void *__restrict __handle, > const char *__restrict __name) __attribute__ ((__nothrow__ )) ; > > > >extern void *dlmopen (Lmid_t __nsid, const char *__file, int __mode) __attribute__ ((__nothrow__)); > > > >extern void *dlvsym (void *__restrict __handle, > const char *__restrict __name, > const char *__restrict __version) > __attribute__ ((__nothrow__ )) ; > > > > > >extern char *dlerror (void) __attribute__ ((__nothrow__ )); > > > > > >typedef struct >{ > const char *dli_fname; > void *dli_fbase; > const char *dli_sname; > void *dli_saddr; >} Dl_info; > > > >extern int dladdr (const void *__address, Dl_info *__info) > __attribute__ ((__nothrow__ )) ; > > >extern int dladdr1 (const void *__address, Dl_info *__info, > void **__extra_info, int __flags) __attribute__ ((__nothrow__ )) ; > > > > >enum > { > > RTLD_DL_SYMENT = 1, > > > RTLD_DL_LINKMAP = 2 > }; > > > > > > > >extern int dlinfo (void *__restrict __handle, > int __request, void *__restrict __arg) > __attribute__ ((__nothrow__ )) ; > > >enum > { > > RTLD_DI_LMID = 1, > > > > RTLD_DI_LINKMAP = 2, > > RTLD_DI_CONFIGADDR = 3, > > > > > > > RTLD_DI_SERINFO = 4, > RTLD_DI_SERINFOSIZE = 5, > > > > RTLD_DI_ORIGIN = 6, > > RTLD_DI_PROFILENAME = 7, > RTLD_DI_PROFILEOUT = 8, > > > > > RTLD_DI_TLS_MODID = 9, > > > > > > RTLD_DI_TLS_DATA = 10, > > RTLD_DI_MAX = 10 > }; > > > > >typedef struct >{ > char *dls_name; > unsigned int dls_flags; >} Dl_serpath; > > > >typedef struct >{ > size_t dls_size; > unsigned int dls_cnt; > Dl_serpath dls_serpath[1]; >} Dl_serinfo; > > > > ># 3 "../include/dlfcn.h" 2 > ># 1 "../include/link.h" 1 ># 32 "../include/link.h" ># 1 "../elf/link.h" 1 ># 24 "../elf/link.h" ># 1 "../include/elf.h" 1 > ># 1 "../elf/elf.h" 1 ># 24 "../elf/elf.h" > > > > ># 1 "../sysdeps/generic/stdint.h" 1 ># 26 "../sysdeps/generic/stdint.h" ># 1 "../bits/wchar.h" 1 ># 27 "../sysdeps/generic/stdint.h" 2 ># 1 "../sysdeps/x86/bits/wordsize.h" 1 ># 28 "../sysdeps/generic/stdint.h" 2 ># 36 "../sysdeps/generic/stdint.h" >typedef signed char int8_t; >typedef short int int16_t; >typedef int int32_t; > > > >__extension__ >typedef long long int int64_t; > > > > >typedef unsigned char uint8_t; >typedef unsigned short int uint16_t; > >typedef unsigned int uint32_t; > > > > > >__extension__ >typedef unsigned long long int uint64_t; > > > > > > >typedef signed char int_least8_t; >typedef short int int_least16_t; >typedef int int_least32_t; > > > >__extension__ >typedef long long int int_least64_t; > > > >typedef unsigned char uint_least8_t; >typedef unsigned short int uint_least16_t; >typedef unsigned int uint_least32_t; > > > >__extension__ >typedef unsigned long long int uint_least64_t; > > > > > > >typedef signed char int_fast8_t; > > > > > >typedef int int_fast16_t; >typedef int int_fast32_t; >__extension__ >typedef long long int int_fast64_t; > > > >typedef unsigned char uint_fast8_t; > > > > > >typedef unsigned int uint_fast16_t; >typedef unsigned int uint_fast32_t; >__extension__ >typedef unsigned long long int uint_fast64_t; ># 125 "../sysdeps/generic/stdint.h" >typedef int intptr_t; > > >typedef unsigned int uintptr_t; ># 137 "../sysdeps/generic/stdint.h" >__extension__ >typedef long long int intmax_t; >__extension__ >typedef unsigned long long int uintmax_t; ># 29 "../elf/elf.h" 2 > > >typedef uint16_t Elf32_Half; >typedef uint16_t Elf64_Half; > > >typedef uint32_t Elf32_Word; >typedef int32_t Elf32_Sword; >typedef uint32_t Elf64_Word; >typedef int32_t Elf64_Sword; > > >typedef uint64_t Elf32_Xword; >typedef int64_t Elf32_Sxword; >typedef uint64_t Elf64_Xword; >typedef int64_t Elf64_Sxword; > > >typedef uint32_t Elf32_Addr; >typedef uint64_t Elf64_Addr; > > >typedef uint32_t Elf32_Off; >typedef uint64_t Elf64_Off; > > >typedef uint16_t Elf32_Section; >typedef uint16_t Elf64_Section; > > >typedef Elf32_Half Elf32_Versym; >typedef Elf64_Half Elf64_Versym; > > > > > > >typedef struct >{ > unsigned char e_ident[(16)]; > Elf32_Half e_type; > Elf32_Half e_machine; > Elf32_Word e_version; > Elf32_Addr e_entry; > Elf32_Off e_phoff; > Elf32_Off e_shoff; > Elf32_Word e_flags; > Elf32_Half e_ehsize; > Elf32_Half e_phentsize; > Elf32_Half e_phnum; > Elf32_Half e_shentsize; > Elf32_Half e_shnum; > Elf32_Half e_shstrndx; >} Elf32_Ehdr; > >typedef struct >{ > unsigned char e_ident[(16)]; > Elf64_Half e_type; > Elf64_Half e_machine; > Elf64_Word e_version; > Elf64_Addr e_entry; > Elf64_Off e_phoff; > Elf64_Off e_shoff; > Elf64_Word e_flags; > Elf64_Half e_ehsize; > Elf64_Half e_phentsize; > Elf64_Half e_phnum; > Elf64_Half e_shentsize; > Elf64_Half e_shnum; > Elf64_Half e_shstrndx; >} Elf64_Ehdr; ># 272 "../elf/elf.h" >typedef struct >{ > Elf32_Word sh_name; > Elf32_Word sh_type; > Elf32_Word sh_flags; > Elf32_Addr sh_addr; > Elf32_Off sh_offset; > Elf32_Word sh_size; > Elf32_Word sh_link; > Elf32_Word sh_info; > Elf32_Word sh_addralign; > Elf32_Word sh_entsize; >} Elf32_Shdr; > >typedef struct >{ > Elf64_Word sh_name; > Elf64_Word sh_type; > Elf64_Xword sh_flags; > Elf64_Addr sh_addr; > Elf64_Off sh_offset; > Elf64_Xword sh_size; > Elf64_Word sh_link; > Elf64_Word sh_info; > Elf64_Xword sh_addralign; > Elf64_Xword sh_entsize; >} Elf64_Shdr; ># 381 "../elf/elf.h" >typedef struct >{ > Elf32_Word st_name; > Elf32_Addr st_value; > Elf32_Word st_size; > unsigned char st_info; > unsigned char st_other; > Elf32_Section st_shndx; >} Elf32_Sym; > >typedef struct >{ > Elf64_Word st_name; > unsigned char st_info; > unsigned char st_other; > Elf64_Section st_shndx; > Elf64_Addr st_value; > Elf64_Xword st_size; >} Elf64_Sym; > > > > >typedef struct >{ > Elf32_Half si_boundto; > Elf32_Half si_flags; >} Elf32_Syminfo; > >typedef struct >{ > Elf64_Half si_boundto; > Elf64_Half si_flags; >} Elf64_Syminfo; ># 496 "../elf/elf.h" >typedef struct >{ > Elf32_Addr r_offset; > Elf32_Word r_info; >} Elf32_Rel; > > > > > > >typedef struct >{ > Elf64_Addr r_offset; > Elf64_Xword r_info; >} Elf64_Rel; > > > >typedef struct >{ > Elf32_Addr r_offset; > Elf32_Word r_info; > Elf32_Sword r_addend; >} Elf32_Rela; > >typedef struct >{ > Elf64_Addr r_offset; > Elf64_Xword r_info; > Elf64_Sxword r_addend; >} Elf64_Rela; ># 541 "../elf/elf.h" >typedef struct >{ > Elf32_Word p_type; > Elf32_Off p_offset; > Elf32_Addr p_vaddr; > Elf32_Addr p_paddr; > Elf32_Word p_filesz; > Elf32_Word p_memsz; > Elf32_Word p_flags; > Elf32_Word p_align; >} Elf32_Phdr; > >typedef struct >{ > Elf64_Word p_type; > Elf64_Word p_flags; > Elf64_Off p_offset; > Elf64_Addr p_vaddr; > Elf64_Addr p_paddr; > Elf64_Xword p_filesz; > Elf64_Xword p_memsz; > Elf64_Xword p_align; >} Elf64_Phdr; ># 652 "../elf/elf.h" >typedef struct >{ > Elf32_Sword d_tag; > union > { > Elf32_Word d_val; > Elf32_Addr d_ptr; > } d_un; >} Elf32_Dyn; > >typedef struct >{ > Elf64_Sxword d_tag; > union > { > Elf64_Xword d_val; > Elf64_Addr d_ptr; > } d_un; >} Elf64_Dyn; ># 828 "../elf/elf.h" >typedef struct >{ > Elf32_Half vd_version; > Elf32_Half vd_flags; > Elf32_Half vd_ndx; > Elf32_Half vd_cnt; > Elf32_Word vd_hash; > Elf32_Word vd_aux; > Elf32_Word vd_next; > >} Elf32_Verdef; > >typedef struct >{ > Elf64_Half vd_version; > Elf64_Half vd_flags; > Elf64_Half vd_ndx; > Elf64_Half vd_cnt; > Elf64_Word vd_hash; > Elf64_Word vd_aux; > Elf64_Word vd_next; > >} Elf64_Verdef; ># 870 "../elf/elf.h" >typedef struct >{ > Elf32_Word vda_name; > Elf32_Word vda_next; > >} Elf32_Verdaux; > >typedef struct >{ > Elf64_Word vda_name; > Elf64_Word vda_next; > >} Elf64_Verdaux; > > > > >typedef struct >{ > Elf32_Half vn_version; > Elf32_Half vn_cnt; > Elf32_Word vn_file; > > Elf32_Word vn_aux; > Elf32_Word vn_next; > >} Elf32_Verneed; > >typedef struct >{ > Elf64_Half vn_version; > Elf64_Half vn_cnt; > Elf64_Word vn_file; > > Elf64_Word vn_aux; > Elf64_Word vn_next; > >} Elf64_Verneed; ># 917 "../elf/elf.h" >typedef struct >{ > Elf32_Word vna_hash; > Elf32_Half vna_flags; > Elf32_Half vna_other; > Elf32_Word vna_name; > Elf32_Word vna_next; > >} Elf32_Vernaux; > >typedef struct >{ > Elf64_Word vna_hash; > Elf64_Half vna_flags; > Elf64_Half vna_other; > Elf64_Word vna_name; > Elf64_Word vna_next; > >} Elf64_Vernaux; ># 951 "../elf/elf.h" >typedef struct >{ > uint32_t a_type; > union > { > uint32_t a_val; > > > > } a_un; >} Elf32_auxv_t; > >typedef struct >{ > uint64_t a_type; > union > { > uint64_t a_val; > > > > } a_un; >} Elf64_auxv_t; ># 1038 "../elf/elf.h" >typedef struct >{ > Elf32_Word n_namesz; > Elf32_Word n_descsz; > Elf32_Word n_type; >} Elf32_Nhdr; > >typedef struct >{ > Elf64_Word n_namesz; > Elf64_Word n_descsz; > Elf64_Word n_type; >} Elf64_Nhdr; ># 1102 "../elf/elf.h" >typedef struct >{ > Elf32_Xword m_value; > Elf32_Word m_info; > Elf32_Word m_poffset; > Elf32_Half m_repeat; > Elf32_Half m_stride; >} Elf32_Move; > >typedef struct >{ > Elf64_Xword m_value; > Elf64_Xword m_info; > Elf64_Xword m_poffset; > Elf64_Half m_repeat; > Elf64_Half m_stride; >} Elf64_Move; ># 1488 "../elf/elf.h" >typedef union >{ > struct > { > Elf32_Word gt_current_g_value; > Elf32_Word gt_unused; > } gt_header; > struct > { > Elf32_Word gt_g_value; > Elf32_Word gt_bytes; > } gt_entry; >} Elf32_gptab; > > > >typedef struct >{ > Elf32_Word ri_gprmask; > Elf32_Word ri_cprmask[4]; > Elf32_Sword ri_gp_value; >} Elf32_RegInfo; > > > >typedef struct >{ > unsigned char kind; > > unsigned char size; > Elf32_Section section; > > Elf32_Word info; >} Elf_Options; ># 1564 "../elf/elf.h" >typedef struct >{ > Elf32_Word hwp_flags1; > Elf32_Word hwp_flags2; >} Elf_Options_Hw; ># 1725 "../elf/elf.h" >typedef struct >{ > Elf32_Word l_name; > Elf32_Word l_time_stamp; > Elf32_Word l_checksum; > Elf32_Word l_version; > Elf32_Word l_flags; >} Elf32_Lib; > >typedef struct >{ > Elf64_Word l_name; > Elf64_Word l_time_stamp; > Elf64_Word l_checksum; > Elf64_Word l_version; > Elf64_Word l_flags; >} Elf64_Lib; ># 1756 "../elf/elf.h" >typedef Elf32_Addr Elf32_Conflict; ># 3361 "../elf/elf.h" > ># 3 "../include/elf.h" 2 > > ># 1 "../sysdeps/generic/dl-dtprocnum.h" 1 ># 6 "../include/elf.h" 2 ># 25 "../elf/link.h" 2 ># 1 "../include/dlfcn.h" 1 ># 26 "../elf/link.h" 2 ># 1 "../include/sys/types.h" 1 ># 1 "../posix/sys/types.h" 1 ># 27 "../posix/sys/types.h" > > ># 1 "../bits/types.h" 1 ># 27 "../bits/types.h" ># 1 "../sysdeps/x86/bits/wordsize.h" 1 ># 28 "../bits/types.h" 2 > > >typedef unsigned char __u_char; >typedef unsigned short int __u_short; >typedef unsigned int __u_int; >typedef unsigned long int __u_long; > > >typedef signed char __int8_t; >typedef unsigned char __uint8_t; >typedef signed short int __int16_t; >typedef unsigned short int __uint16_t; >typedef signed int __int32_t; >typedef unsigned int __uint32_t; > > > > >__extension__ typedef signed long long int __int64_t; >__extension__ typedef unsigned long long int __uint64_t; > > > > > > > >__extension__ typedef long long int __quad_t; >__extension__ typedef unsigned long long int __u_quad_t; ># 121 "../bits/types.h" ># 1 "../sysdeps/unix/sysv/linux/x86/bits/typesizes.h" 1 ># 122 "../bits/types.h" 2 > > >__extension__ typedef __u_quad_t __dev_t; >__extension__ typedef unsigned int __uid_t; >__extension__ typedef unsigned int __gid_t; >__extension__ typedef unsigned long int __ino_t; >__extension__ typedef __u_quad_t __ino64_t; >__extension__ typedef unsigned int __mode_t; >__extension__ typedef unsigned int __nlink_t; >__extension__ typedef long int __off_t; >__extension__ typedef __quad_t __off64_t; >__extension__ typedef int __pid_t; >__extension__ typedef struct { int __val[2]; } __fsid_t; >__extension__ typedef long int __clock_t; >__extension__ typedef unsigned long int __rlim_t; >__extension__ typedef __u_quad_t __rlim64_t; >__extension__ typedef unsigned int __id_t; >__extension__ typedef long int __time_t; >__extension__ typedef unsigned int __useconds_t; >__extension__ typedef long int __suseconds_t; > >__extension__ typedef int __daddr_t; >__extension__ typedef int __key_t; > > >__extension__ typedef int __clockid_t; > > >__extension__ typedef void * __timer_t; > > >__extension__ typedef long int __blksize_t; > > > > >__extension__ typedef long int __blkcnt_t; >__extension__ typedef __quad_t __blkcnt64_t; > > >__extension__ typedef unsigned long int __fsblkcnt_t; >__extension__ typedef __u_quad_t __fsblkcnt64_t; > > >__extension__ typedef unsigned long int __fsfilcnt_t; >__extension__ typedef __u_quad_t __fsfilcnt64_t; > > >__extension__ typedef int __fsword_t; > >__extension__ typedef int __ssize_t; > > >__extension__ typedef long int __syscall_slong_t; > >__extension__ typedef unsigned long int __syscall_ulong_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >__extension__ typedef int __intptr_t; > > >__extension__ typedef unsigned int __socklen_t; ># 30 "../posix/sys/types.h" 2 > > > >typedef __u_char u_char; >typedef __u_short u_short; >typedef __u_int u_int; >typedef __u_long u_long; >typedef __quad_t quad_t; >typedef __u_quad_t u_quad_t; >typedef __fsid_t fsid_t; > > > > >typedef __loff_t loff_t; > > > >typedef __ino_t ino_t; > > > > > > >typedef __ino64_t ino64_t; > > > > >typedef __dev_t dev_t; > > > > >typedef __gid_t gid_t; > > > > >typedef __mode_t mode_t; > > > > >typedef __nlink_t nlink_t; > > > > >typedef __uid_t uid_t; > > > > > >typedef __off_t off_t; > > > > > > >typedef __off64_t off64_t; > > > > >typedef __pid_t pid_t; > > > > > >typedef __id_t id_t; > > > > >typedef __ssize_t ssize_t; > > > > > >typedef __daddr_t daddr_t; >typedef __caddr_t caddr_t; > > > > > >typedef __key_t key_t; ># 132 "../posix/sys/types.h" ># 1 "../include/time.h" 1 > > ># 1 "../time/time.h" 1 ># 57 "../time/time.h" > > >typedef __clock_t clock_t; > > > ># 73 "../time/time.h" > > >typedef __time_t time_t; > > > ># 91 "../time/time.h" >typedef __clockid_t clockid_t; ># 103 "../time/time.h" >typedef __timer_t timer_t; ># 4 "../include/time.h" 2 ># 133 "../posix/sys/types.h" 2 > > > >typedef __useconds_t useconds_t; > > > >typedef __suseconds_t suseconds_t; > > > > > ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 147 "../posix/sys/types.h" 2 > > > >typedef unsigned long int ulong; >typedef unsigned short int ushort; >typedef unsigned int uint; ># 200 "../posix/sys/types.h" >typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); >typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); > >typedef int register_t __attribute__ ((__mode__ (__word__))); ># 216 "../posix/sys/types.h" ># 1 "../include/endian.h" 1 ># 1 "../string/endian.h" 1 ># 36 "../string/endian.h" ># 1 "../sysdeps/x86/bits/endian.h" 1 ># 37 "../string/endian.h" 2 ># 60 "../string/endian.h" ># 1 "../sysdeps/x86/bits/byteswap.h" 1 ># 28 "../sysdeps/x86/bits/byteswap.h" ># 1 "../sysdeps/x86/bits/wordsize.h" 1 ># 29 "../sysdeps/x86/bits/byteswap.h" 2 > > > > > > ># 1 "../sysdeps/x86/bits/byteswap-16.h" 1 ># 36 "../sysdeps/x86/bits/byteswap.h" 2 ># 44 "../sysdeps/x86/bits/byteswap.h" >static __inline unsigned int >__bswap_32 (unsigned int __bsx) >{ > return __builtin_bswap32 (__bsx); >} ># 108 "../sysdeps/x86/bits/byteswap.h" >static __inline __uint64_t >__bswap_64 (__uint64_t __bsx) >{ > return __builtin_bswap64 (__bsx); >} ># 61 "../string/endian.h" 2 ># 2 "../include/endian.h" 2 ># 217 "../posix/sys/types.h" 2 > > ># 1 "../include/sys/select.h" 1 > ># 1 "../misc/sys/select.h" 1 ># 30 "../misc/sys/select.h" ># 1 "../sysdeps/x86/bits/select.h" 1 ># 22 "../sysdeps/x86/bits/select.h" ># 1 "../sysdeps/x86/bits/wordsize.h" 1 ># 23 "../sysdeps/x86/bits/select.h" 2 ># 31 "../misc/sys/select.h" 2 > > ># 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1 ># 22 "../sysdeps/unix/sysv/linux/bits/sigset.h" >typedef int __sig_atomic_t; > > > > >typedef struct > { > unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; > } __sigset_t; ># 34 "../misc/sys/select.h" 2 > > > >typedef __sigset_t sigset_t; > > > > > ># 1 "../include/time.h" 1 > > ># 1 "../time/time.h" 1 ># 120 "../time/time.h" >struct timespec > { > __time_t tv_sec; > __syscall_slong_t tv_nsec; > }; ># 4 "../include/time.h" 2 ># 44 "../misc/sys/select.h" 2 > ># 1 "../sysdeps/unix/sysv/linux/bits/time.h" 1 ># 30 "../sysdeps/unix/sysv/linux/bits/time.h" >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 46 "../misc/sys/select.h" 2 ># 54 "../misc/sys/select.h" >typedef long int __fd_mask; ># 64 "../misc/sys/select.h" >typedef struct > { > > > > __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; > > > > > > } fd_set; > > > > > > >typedef __fd_mask fd_mask; ># 96 "../misc/sys/select.h" > ># 106 "../misc/sys/select.h" >extern int select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout); ># 118 "../misc/sys/select.h" >extern int pselect (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > const struct timespec *__restrict __timeout, > const __sigset_t *__restrict __sigmask); ># 131 "../misc/sys/select.h" > ># 3 "../include/sys/select.h" 2 > > > >extern int __pselect (int __nfds, fd_set *__readfds, > fd_set *__writefds, fd_set *__exceptfds, > const struct timespec *__timeout, > const __sigset_t *__sigmask); > >extern int __select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout); > ># 220 "../posix/sys/types.h" 2 > > ># 1 "../sysdeps/unix/sysv/linux/sys/sysmacros.h" 1 ># 24 "../sysdeps/unix/sysv/linux/sys/sysmacros.h" > > >__extension__ >extern unsigned int gnu_dev_major (unsigned long long int __dev) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); >__extension__ >extern unsigned int gnu_dev_minor (unsigned long long int __dev) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); >__extension__ >extern unsigned long long int gnu_dev_makedev (unsigned int __major, > unsigned int __minor) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); > > >__extension__ extern __inline __attribute__ ((__const__)) unsigned int >__attribute__ ((__nothrow__ )) gnu_dev_major (unsigned long long int __dev) >{ > return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); >} > >__extension__ extern __inline __attribute__ ((__const__)) unsigned int >__attribute__ ((__nothrow__ )) gnu_dev_minor (unsigned long long int __dev) >{ > return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); >} > >__extension__ extern __inline __attribute__ ((__const__)) unsigned long long int >__attribute__ ((__nothrow__ )) gnu_dev_makedev (unsigned int __major, unsigned int __minor) >{ > return ((__minor & 0xff) | ((__major & 0xfff) << 8) > | (((unsigned long long int) (__minor & ~0xff)) << 12) > | (((unsigned long long int) (__major & ~0xfff)) << 32)); >} > > ># 223 "../posix/sys/types.h" 2 > > > > > >typedef __blksize_t blksize_t; > > > > > > >typedef __blkcnt_t blkcnt_t; > > > >typedef __fsblkcnt_t fsblkcnt_t; > > > >typedef __fsfilcnt_t fsfilcnt_t; ># 262 "../posix/sys/types.h" >typedef __blkcnt64_t blkcnt64_t; >typedef __fsblkcnt64_t fsblkcnt64_t; >typedef __fsfilcnt64_t fsfilcnt64_t; > > > > > ># 1 "../sysdeps/x86/bits/pthreadtypes.h" 1 ># 21 "../sysdeps/x86/bits/pthreadtypes.h" ># 1 "../sysdeps/x86/bits/wordsize.h" 1 ># 22 "../sysdeps/x86/bits/pthreadtypes.h" 2 ># 60 "../sysdeps/x86/bits/pthreadtypes.h" >typedef unsigned long int pthread_t; > > >union pthread_attr_t >{ > char __size[36]; > long int __align; >}; > >typedef union pthread_attr_t pthread_attr_t; ># 81 "../sysdeps/x86/bits/pthreadtypes.h" >typedef struct __pthread_internal_slist >{ > struct __pthread_internal_slist *__next; >} __pthread_slist_t; > > > > > >typedef union >{ > struct __pthread_mutex_s > { > int __lock; > unsigned int __count; > int __owner; > > > > > > int __kind; ># 111 "../sysdeps/x86/bits/pthreadtypes.h" > unsigned int __nusers; > __extension__ union > { > struct > { > short __espins; > short __elision; > > > > } __elision_data; > __pthread_slist_t __list; > }; > > } __data; > char __size[24]; > long int __align; >} pthread_mutex_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_mutexattr_t; > > > > >typedef union >{ > struct > { > int __lock; > unsigned int __futex; > __extension__ unsigned long long int __total_seq; > __extension__ unsigned long long int __wakeup_seq; > __extension__ unsigned long long int __woken_seq; > void *__mutex; > unsigned int __nwaiters; > unsigned int __broadcast_seq; > } __data; > char __size[48]; > __extension__ long long int __align; >} pthread_cond_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_condattr_t; > > > >typedef unsigned int pthread_key_t; > > > >typedef int pthread_once_t; > > > > > >typedef union >{ ># 202 "../sysdeps/x86/bits/pthreadtypes.h" > struct > { > int __lock; > unsigned int __nr_readers; > unsigned int __readers_wakeup; > unsigned int __writer_wakeup; > unsigned int __nr_readers_queued; > unsigned int __nr_writers_queued; > > > unsigned char __flags; > unsigned char __shared; > signed char __rwelision; > > unsigned char __pad2; > int __writer; > } __data; > > char __size[32]; > long int __align; >} pthread_rwlock_t; > >typedef union >{ > char __size[8]; > long int __align; >} pthread_rwlockattr_t; > > > > > >typedef volatile int pthread_spinlock_t; > > > > >typedef union >{ > char __size[20]; > long int __align; >} pthread_barrier_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_barrierattr_t; ># 271 "../posix/sys/types.h" 2 > > > ># 1 "../include/sys/types.h" 2 ># 27 "../elf/link.h" 2 > > > > > > > ># 1 "../bits/elfclass.h" 1 ># 9 "../bits/elfclass.h" ># 1 "../sysdeps/x86/bits/wordsize.h" 1 ># 10 "../bits/elfclass.h" 2 > > > > >typedef uint32_t Elf_Symndx; ># 35 "../elf/link.h" 2 ># 1 "../sysdeps/x86/bits/link.h" 1 ># 25 "../sysdeps/x86/bits/link.h" >typedef struct La_i86_regs >{ > uint32_t lr_edx; > uint32_t lr_ecx; > uint32_t lr_eax; > uint32_t lr_ebp; > uint32_t lr_esp; >} La_i86_regs; > > >typedef struct La_i86_retval >{ > uint32_t lrv_eax; > uint32_t lrv_edx; > long double lrv_st0; > long double lrv_st1; >} La_i86_retval; > > > > >extern Elf32_Addr la_i86_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx, > uintptr_t *__refcook, > uintptr_t *__defcook, > La_i86_regs *__regs, > unsigned int *__flags, > const char *__symname, > long int *__framesizep); >extern unsigned int la_i86_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx, > uintptr_t *__refcook, > uintptr_t *__defcook, > const La_i86_regs *__inregs, > La_i86_retval *__outregs, > const char *symname); > > ># 36 "../elf/link.h" 2 > > > > > > >struct r_debug > { > int r_version; > > struct link_map_public *r_map; > > > > > > > Elf32_Addr r_brk; > enum > { > > > RT_CONSISTENT, > RT_ADD, > RT_DELETE > } r_state; > > Elf32_Addr r_ldbase; > }; > > >extern struct r_debug _r_debug; ># 76 "../elf/link.h" >extern Elf32_Dyn _DYNAMIC[]; > > > > > > > >struct link_map_public > { > > > > Elf32_Addr l_addr; > > char *l_name; > Elf32_Dyn *l_ld; > struct link_map_public *l_next, *l_prev; > }; > > > > > > > >enum > { > LA_ACT_CONSISTENT, > LA_ACT_ADD, > LA_ACT_DELETE > }; > > >enum > { > LA_SER_ORIG = 0x01, > LA_SER_LIBPATH = 0x02, > LA_SER_RUNPATH = 0x04, > LA_SER_CONFIG = 0x08, > LA_SER_DEFAULT = 0x40, > LA_SER_SECURE = 0x80 > }; > > >enum > { > LA_FLG_BINDTO = 0x01, > LA_FLG_BINDFROM = 0x02 > }; > > >enum > { > LA_SYMB_NOPLTENTER = 0x01, > LA_SYMB_NOPLTEXIT = 0x02, > LA_SYMB_STRUCTCALL = 0x04, > LA_SYMB_DLSYM = 0x08, > LA_SYMB_ALTVALUE = 0x10 > > }; > >struct dl_phdr_info > { > Elf32_Addr dlpi_addr; > const char *dlpi_name; > const Elf32_Phdr *dlpi_phdr; > Elf32_Half dlpi_phnum; > > > > > > > > __extension__ unsigned long long int dlpi_adds; > > __extension__ unsigned long long int dlpi_subs; > > > > size_t dlpi_tls_modid; > > > > > void *dlpi_tls_data; > }; > > > >extern int dl_iterate_phdr (int (*__callback) (struct dl_phdr_info *, > size_t, void *), > void *__data); > > > > > >extern unsigned int la_version (unsigned int __version); >extern void la_activity (uintptr_t *__cookie, unsigned int __flag); >extern char *la_objsearch (const char *__name, uintptr_t *__cookie, > unsigned int __flag); >extern unsigned int la_objopen_wrongproto (struct link_map_public *__map, Lmid_t __lmid, > uintptr_t *__cookie); >extern void la_preinit (uintptr_t *__cookie); >extern uintptr_t la_symbind32 (Elf32_Sym *__sym, unsigned int __ndx, > uintptr_t *__refcook, uintptr_t *__defcook, > unsigned int *__flags, const char *__symname); >extern uintptr_t la_symbind64 (Elf64_Sym *__sym, unsigned int __ndx, > uintptr_t *__refcook, uintptr_t *__defcook, > unsigned int *__flags, const char *__symname); >extern unsigned int la_objclose (uintptr_t *__cookie); > > ># 33 "../include/link.h" 2 > > > >struct link_map; >extern unsigned int la_objopen (struct link_map *__map, Lmid_t __lmid, > uintptr_t *__cookie); > > ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 147 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 3 4 >typedef int ptrdiff_t; ># 324 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 3 4 >typedef long int wchar_t; ># 42 "../include/link.h" 2 ># 1 "../sysdeps/x86/bits/linkmap.h" 1 ># 10 "../sysdeps/x86/bits/linkmap.h" >struct link_map_machine > { > Elf32_Addr plt; > Elf32_Addr gotplt; > void *tlsdesc_table; > }; ># 43 "../include/link.h" 2 ># 1 "../sysdeps/i386/dl-lookupcfg.h" 1 ># 21 "../sysdeps/i386/dl-lookupcfg.h" ># 1 "../sysdeps/generic/dl-lookupcfg.h" 1 ># 22 "../sysdeps/i386/dl-lookupcfg.h" 2 > >struct link_map; > >extern void __attribute__ ((regparm (3), stdcall)) _dl_unmap (struct link_map *map); ># 44 "../include/link.h" 2 ># 1 "../sysdeps/i386/i686/nptl/tls.h" 1 ># 33 "../sysdeps/i386/i686/nptl/tls.h" ># 1 "../sysdeps/i386/nptl/tls.h" 1 ># 24 "../sysdeps/i386/nptl/tls.h" ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stdbool.h" 1 3 4 ># 25 "../sysdeps/i386/nptl/tls.h" 2 ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 26 "../sysdeps/i386/nptl/tls.h" 2 > ># 1 "../include/stdlib.h" 1 > > > > > > > ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 9 "../include/stdlib.h" 2 > ># 1 "../stdlib/stdlib.h" 1 ># 32 "../stdlib/stdlib.h" ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 33 "../stdlib/stdlib.h" 2 > > > > > > > > ># 1 "../sysdeps/unix/sysv/linux/bits/waitflags.h" 1 ># 42 "../stdlib/stdlib.h" 2 ># 1 "../bits/waitstatus.h" 1 ># 64 "../bits/waitstatus.h" ># 1 "../include/endian.h" 1 ># 65 "../bits/waitstatus.h" 2 > >union wait > { > int w_status; > struct > { > > unsigned int __w_termsig:7; > unsigned int __w_coredump:1; > unsigned int __w_retcode:8; > unsigned int:16; > > > > > > > > } __wait_terminated; > struct > { > > unsigned int __w_stopval:8; > unsigned int __w_stopsig:8; > unsigned int:16; > > > > > > > } __wait_stopped; > }; ># 43 "../stdlib/stdlib.h" 2 ># 67 "../stdlib/stdlib.h" >typedef union > { > union wait *__uptr; > int *__iptr; > } __WAIT_STATUS __attribute__ ((__transparent_union__)); ># 95 "../stdlib/stdlib.h" > > >typedef struct > { > int quot; > int rem; > } div_t; > > > >typedef struct > { > long int quot; > long int rem; > } ldiv_t; > > > > > > > >__extension__ typedef struct > { > long long int quot; > long long int rem; > } lldiv_t; > > ># 139 "../stdlib/stdlib.h" >extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ )) ; > > > > >extern double atof (const char *__nptr) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > >extern int atoi (const char *__nptr) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > >extern long int atol (const char *__nptr) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > > >__extension__ extern long long int atoll (const char *__nptr) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > > >extern double strtod (const char *__restrict __nptr, > char **__restrict __endptr) > __attribute__ ((__nothrow__ )) ; > > > > > >extern float strtof (const char *__restrict __nptr, > char **__restrict __endptr) __attribute__ ((__nothrow__ )) ; > >extern long double strtold (const char *__restrict __nptr, > char **__restrict __endptr) > __attribute__ ((__nothrow__ )) ; > > > > > >extern long int strtol (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ )) ; > >extern unsigned long int strtoul (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ )) ; > > > > >__extension__ >extern long long int strtoq (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ )) ; > >__extension__ >extern unsigned long long int strtouq (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ )) ; > > > > > >__extension__ >extern long long int strtoll (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ )) ; > >__extension__ >extern unsigned long long int strtoull (const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__ )) ; > ># 235 "../stdlib/stdlib.h" ># 1 "../include/xlocale.h" 1 ># 1 "../locale/xlocale.h" 1 ># 27 "../locale/xlocale.h" >typedef struct __locale_struct >{ > > struct __locale_data *__locales[13]; > > > const unsigned short int *__ctype_b; > const int *__ctype_tolower; > const int *__ctype_toupper; > > > const char *__names[13]; >} *__locale_t; > > >typedef __locale_t locale_t; ># 1 "../include/xlocale.h" 2 ># 236 "../stdlib/stdlib.h" 2 > > > >extern long int strtol_l (const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) __attribute__ ((__nothrow__ )) ; > >extern unsigned long int strtoul_l (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > __attribute__ ((__nothrow__ )) ; > >__extension__ >extern long long int strtoll_l (const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) > __attribute__ ((__nothrow__ )) ; > >__extension__ >extern unsigned long long int strtoull_l (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > __attribute__ ((__nothrow__ )) ; > >extern double strtod_l (const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > __attribute__ ((__nothrow__ )) ; > >extern float strtof_l (const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > __attribute__ ((__nothrow__ )) ; > >extern long double strtold_l (const char *__restrict __nptr, > char **__restrict __endptr, > __locale_t __loc) > __attribute__ ((__nothrow__ )) ; > > > > > >extern __inline int >__attribute__ ((__nothrow__ )) atoi (const char *__nptr) >{ > return (int) strtol (__nptr, (char **) ((void *)0), 10); >} >extern __inline long int >__attribute__ ((__nothrow__ )) atol (const char *__nptr) >{ > return strtol (__nptr, (char **) ((void *)0), 10); >} > > > > >__extension__ extern __inline long long int >__attribute__ ((__nothrow__ )) atoll (const char *__nptr) >{ > return strtoll (__nptr, (char **) ((void *)0), 10); >} > ># 305 "../stdlib/stdlib.h" >extern char *l64a (long int __n) __attribute__ ((__nothrow__ )) ; > > >extern long int a64l (const char *__s) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > ># 1 "../include/sys/types.h" 1 ># 315 "../stdlib/stdlib.h" 2 > > > > > > >extern long int random (void) __attribute__ ((__nothrow__ )); > > >extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ )); > > > > > >extern char *initstate (unsigned int __seed, char *__statebuf, > size_t __statelen) __attribute__ ((__nothrow__ )) ; > > > >extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ )) ; > > > > > > > >struct random_data > { > int32_t *fptr; > int32_t *rptr; > int32_t *state; > int rand_type; > int rand_deg; > int rand_sep; > int32_t *end_ptr; > }; > >extern int random_r (struct random_data *__restrict __buf, > int32_t *__restrict __result) __attribute__ ((__nothrow__ )) ; > >extern int srandom_r (unsigned int __seed, struct random_data *__buf) > __attribute__ ((__nothrow__ )) ; > >extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, > size_t __statelen, > struct random_data *__restrict __buf) > __attribute__ ((__nothrow__ )) ; > >extern int setstate_r (char *__restrict __statebuf, > struct random_data *__restrict __buf) > __attribute__ ((__nothrow__ )) ; > > > > > > >extern int rand (void) __attribute__ ((__nothrow__ )); > >extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ )); > > > > >extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ )); > > > > > > > >extern double drand48 (void) __attribute__ ((__nothrow__ )); >extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ )) ; > > >extern long int lrand48 (void) __attribute__ ((__nothrow__ )); >extern long int nrand48 (unsigned short int __xsubi[3]) > __attribute__ ((__nothrow__ )) ; > > >extern long int mrand48 (void) __attribute__ ((__nothrow__ )); >extern long int jrand48 (unsigned short int __xsubi[3]) > __attribute__ ((__nothrow__ )) ; > > >extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ )); >extern unsigned short int *seed48 (unsigned short int __seed16v[3]) > __attribute__ ((__nothrow__ )) ; >extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ )) ; > > > > > >struct drand48_data > { > unsigned short int __x[3]; > unsigned short int __old_x[3]; > unsigned short int __c; > unsigned short int __init; > __extension__ unsigned long long int __a; > > }; > > >extern int drand48_r (struct drand48_data *__restrict __buffer, > double *__restrict __result) __attribute__ ((__nothrow__ )) ; >extern int erand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > double *__restrict __result) __attribute__ ((__nothrow__ )) ; > > >extern int lrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__ )) ; >extern int nrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__ )) ; > > >extern int mrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__ )) ; >extern int jrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__ )) ; > > >extern int srand48_r (long int __seedval, struct drand48_data *__buffer) > __attribute__ ((__nothrow__ )) ; > >extern int seed48_r (unsigned short int __seed16v[3], > struct drand48_data *__buffer) __attribute__ ((__nothrow__ )) ; > >extern int lcong48_r (unsigned short int __param[7], > struct drand48_data *__buffer) > __attribute__ ((__nothrow__ )) ; > > > > > > > > > >extern void *malloc (size_t __size) __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) ; > >extern void *calloc (size_t __nmemb, size_t __size) > __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) ; > > > > > > > > > > >extern void *realloc (void *__ptr, size_t __size) > __attribute__ ((__nothrow__ )) __attribute__ ((__warn_unused_result__)); > >extern void free (void *__ptr) __attribute__ ((__nothrow__ )); > > > > >extern void cfree (void *__ptr) __attribute__ ((__nothrow__ )); > > > ># 1 "../include/alloca.h" 1 > > ># 1 "../stdlib/alloca.h" 1 ># 24 "../stdlib/alloca.h" ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 25 "../stdlib/alloca.h" 2 > > > > > > > >extern void *alloca (size_t __size) __attribute__ ((__nothrow__ )); > > > > > > ># 4 "../include/alloca.h" 2 ># 1 "../include/stackinfo.h" 1 ># 24 "../include/stackinfo.h" ># 1 "../sysdeps/i386/stackinfo.h" 1 ># 25 "../include/stackinfo.h" 2 ># 5 "../include/alloca.h" 2 > > > > >extern void *__alloca (size_t __size); > > > > > >extern int __libc_use_alloca (size_t size) __attribute__ ((const)); >extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const)); > > > > ># 1 "../sysdeps/pthread/allocalim.h" 1 ># 19 "../sysdeps/pthread/allocalim.h" ># 1 "../include/alloca.h" 1 ># 20 "../sysdeps/pthread/allocalim.h" 2 ># 1 "../include/limits.h" 1 ># 123 "../include/limits.h" ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/limits.h" 1 3 4 ># 124 "../include/limits.h" 2 ># 143 "../include/limits.h" ># 1 "../include/bits/posix1_lim.h" 1 ># 1 "../posix/bits/posix1_lim.h" 1 ># 160 "../posix/bits/posix1_lim.h" ># 1 "../sysdeps/unix/sysv/linux/bits/local_lim.h" 1 ># 38 "../sysdeps/unix/sysv/linux/bits/local_lim.h" ># 1 "/usr/include/linux/limits.h" 1 3 4 ># 39 "../sysdeps/unix/sysv/linux/bits/local_lim.h" 2 ># 161 "../posix/bits/posix1_lim.h" 2 ># 1 "../include/bits/posix1_lim.h" 2 ># 144 "../include/limits.h" 2 > > > ># 1 "../include/bits/posix2_lim.h" 1 ># 1 "../posix/bits/posix2_lim.h" 1 ># 1 "../include/bits/posix2_lim.h" 2 ># 148 "../include/limits.h" 2 > > > ># 1 "../include/bits/xopen_lim.h" 1 ># 33 "../include/bits/xopen_lim.h" ># 1 "/builddir/build/BUILD/glibc-2.19-883-g7e54fd0/build-i686-redhat-linux/bits/stdio_lim.h" 1 ># 34 "../include/bits/xopen_lim.h" 2 ># 152 "../include/limits.h" 2 ># 21 "../sysdeps/pthread/allocalim.h" 2 > > >extern __inline __attribute__ ((__always_inline__)) >int >__libc_use_alloca (size_t size) >{ > return (__builtin_expect (size <= 16384 / 4, 1) > || __builtin_expect (__libc_alloca_cutoff (size), 1)); >} ># 22 "../include/alloca.h" 2 ># 493 "../stdlib/stdlib.h" 2 > > > > > >extern void *valloc (size_t __size) __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) ; > > > > >extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) > __attribute__ ((__nothrow__ )) ; > > > > >extern void *aligned_alloc (size_t __alignment, size_t __size) > __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) ; > > > > >extern void abort (void) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > > >extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ )) ; > > > > > > > >extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ )) ; > > > > > > > >extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) > __attribute__ ((__nothrow__ )) ; > > > > > > >extern void exit (int __status) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > > > > >extern void quick_exit (int __status) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > > > > > > >extern void _Exit (int __status) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > > > > > >extern char *getenv (const char *__name) __attribute__ ((__nothrow__ )) ; > > > > > >extern char *secure_getenv (const char *__name) > __attribute__ ((__nothrow__ )) ; > > > > > > >extern int putenv (char *__string) __attribute__ ((__nothrow__ )) ; > > > > > >extern int setenv (const char *__name, const char *__value, int __replace) > __attribute__ ((__nothrow__ )) ; > > >extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ )) ; > > > > > > >extern int clearenv (void) __attribute__ ((__nothrow__ )); ># 606 "../stdlib/stdlib.h" >extern char *mktemp (char *__template) __attribute__ ((__nothrow__ )) ; ># 619 "../stdlib/stdlib.h" >extern int mkstemp (char *__template) ; ># 629 "../stdlib/stdlib.h" >extern int mkstemp64 (char *__template) ; ># 641 "../stdlib/stdlib.h" >extern int mkstemps (char *__template, int __suffixlen) ; ># 651 "../stdlib/stdlib.h" >extern int mkstemps64 (char *__template, int __suffixlen) > ; ># 662 "../stdlib/stdlib.h" >extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ )) ; ># 673 "../stdlib/stdlib.h" >extern int mkostemp (char *__template, int __flags) ; ># 683 "../stdlib/stdlib.h" >extern int mkostemp64 (char *__template, int __flags) ; ># 693 "../stdlib/stdlib.h" >extern int mkostemps (char *__template, int __suffixlen, int __flags) > ; ># 705 "../stdlib/stdlib.h" >extern int mkostemps64 (char *__template, int __suffixlen, int __flags) > ; > > > > > > > > > >extern int system (const char *__command) ; > > > > > > >extern char *canonicalize_file_name (const char *__name) > __attribute__ ((__nothrow__ )) ; ># 733 "../stdlib/stdlib.h" >extern char *realpath (const char *__restrict __name, > char *__restrict __resolved) __attribute__ ((__nothrow__ )) ; > > > > > > >typedef int (*__compar_fn_t) (const void *, const void *); > > >typedef __compar_fn_t comparison_fn_t; > > > >typedef int (*__compar_d_fn_t) (const void *, const void *, void *); > > > > > >extern void *bsearch (const void *__key, const void *__base, > size_t __nmemb, size_t __size, __compar_fn_t __compar) > ; > > ># 1 "../bits/stdlib-bsearch.h" 1 ># 19 "../bits/stdlib-bsearch.h" >extern __inline void * >bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, > __compar_fn_t __compar) >{ > size_t __l, __u, __idx; > const void *__p; > int __comparison; > > __l = 0; > __u = __nmemb; > while (__l < __u) > { > __idx = (__l + __u) / 2; > __p = (void *) (((const char *) __base) + (__idx * __size)); > __comparison = (*__compar) (__key, __p); > if (__comparison < 0) > __u = __idx; > else if (__comparison > 0) > __l = __idx + 1; > else > return (void *) __p; > } > > return ((void *)0); >} ># 760 "../stdlib/stdlib.h" 2 > > > > >extern void qsort (void *__base, size_t __nmemb, size_t __size, > __compar_fn_t __compar) ; > >extern void qsort_r (void *__base, size_t __nmemb, size_t __size, > __compar_d_fn_t __compar, void *__arg) > ; > > > > >extern int abs (int __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; >extern long int labs (long int __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; > > > >__extension__ extern long long int llabs (long long int __x) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; > > > > > > > >extern div_t div (int __numer, int __denom) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; >extern ldiv_t ldiv (long int __numer, long int __denom) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; > > > > >__extension__ extern lldiv_t lldiv (long long int __numer, > long long int __denom) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ; > ># 811 "../stdlib/stdlib.h" >extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) __attribute__ ((__nothrow__ )) ; > > > > >extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) __attribute__ ((__nothrow__ )) ; > > > > >extern char *gcvt (double __value, int __ndigit, char *__buf) > __attribute__ ((__nothrow__ )) ; > > > > >extern char *qecvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > __attribute__ ((__nothrow__ )) ; >extern char *qfcvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > __attribute__ ((__nothrow__ )) ; >extern char *qgcvt (long double __value, int __ndigit, char *__buf) > __attribute__ ((__nothrow__ )) ; > > > > >extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) __attribute__ ((__nothrow__ )) ; >extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) __attribute__ ((__nothrow__ )) ; > >extern int qecvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__ )) ; >extern int qfcvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__ )) ; > > > > > > >extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ )); > > >extern int mbtowc (wchar_t *__restrict __pwc, > const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ )); > > >extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ )); > > > >extern size_t mbstowcs (wchar_t *__restrict __pwcs, > const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ )); > >extern size_t wcstombs (char *__restrict __s, > const wchar_t *__restrict __pwcs, size_t __n) > __attribute__ ((__nothrow__ )); > > > > > > > > >extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ )) ; ># 898 "../stdlib/stdlib.h" >extern int getsubopt (char **__restrict __optionp, > char *const *__restrict __tokens, > char **__restrict __valuep) > __attribute__ ((__nothrow__ )) ; > > > > > >extern void setkey (const char *__key) __attribute__ ((__nothrow__ )) ; > > > > > > > >extern int posix_openpt (int __oflag) ; > > > > > > > >extern int grantpt (int __fd) __attribute__ ((__nothrow__ )); > > > >extern int unlockpt (int __fd) __attribute__ ((__nothrow__ )); > > > > >extern char *ptsname (int __fd) __attribute__ ((__nothrow__ )) ; > > > > > > >extern int ptsname_r (int __fd, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__ )) ; > > >extern int getpt (void); > > > > > > >extern int getloadavg (double __loadavg[], int __nelem) > __attribute__ ((__nothrow__ )) ; > > ># 1 "../include/bits/stdlib-float.h" 1 ># 955 "../stdlib/stdlib.h" 2 ># 967 "../stdlib/stdlib.h" > ># 11 "../include/stdlib.h" 2 > > > ># 1 "../include/sys/stat.h" 1 > ># 1 "../io/sys/stat.h" 1 ># 36 "../io/sys/stat.h" ># 1 "../include/time.h" 1 > > ># 1 "../time/time.h" 1 ># 4 "../include/time.h" 2 ># 37 "../io/sys/stat.h" 2 ># 102 "../io/sys/stat.h" > > ># 1 "../sysdeps/unix/sysv/linux/x86/bits/stat.h" 1 ># 46 "../sysdeps/unix/sysv/linux/x86/bits/stat.h" >struct stat > { > __dev_t st_dev; > > unsigned short int __pad1; > > > __ino_t st_ino; > > > > > __mode_t st_mode; > __nlink_t st_nlink; > > > > > __uid_t st_uid; > __gid_t st_gid; > > > > __dev_t st_rdev; > > unsigned short int __pad2; > > > __off_t st_size; > > > > __blksize_t st_blksize; > > __blkcnt_t st_blocks; ># 91 "../sysdeps/unix/sysv/linux/x86/bits/stat.h" > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; ># 109 "../sysdeps/unix/sysv/linux/x86/bits/stat.h" > unsigned long int __glibc_reserved4; > unsigned long int __glibc_reserved5; > > > > > }; > > > >struct stat64 > { > __dev_t st_dev; > > > > > > unsigned int __pad1; > __ino_t __st_ino; > __mode_t st_mode; > __nlink_t st_nlink; > > __uid_t st_uid; > __gid_t st_gid; > > > > > > __dev_t st_rdev; > unsigned int __pad2; > __off64_t st_size; > > __blksize_t st_blksize; > __blkcnt64_t st_blocks; > > > > > > > > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; ># 166 "../sysdeps/unix/sysv/linux/x86/bits/stat.h" > __ino64_t st_ino; > > }; ># 105 "../io/sys/stat.h" 2 ># 208 "../io/sys/stat.h" >extern int stat (const char *__restrict __file, > struct stat *__restrict __buf) __attribute__ ((__nothrow__ )) ; > > > >extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__ )) ; ># 227 "../io/sys/stat.h" >extern int stat64 (const char *__restrict __file, > struct stat64 *__restrict __buf) __attribute__ ((__nothrow__ )) ; >extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__ )) ; > > > > > > > >extern int fstatat (int __fd, const char *__restrict __file, > struct stat *__restrict __buf, int __flag) > __attribute__ ((__nothrow__ )) ; ># 252 "../io/sys/stat.h" >extern int fstatat64 (int __fd, const char *__restrict __file, > struct stat64 *__restrict __buf, int __flag) > __attribute__ ((__nothrow__ )) ; > > > > > > > >extern int lstat (const char *__restrict __file, > struct stat *__restrict __buf) __attribute__ ((__nothrow__ )) ; ># 275 "../io/sys/stat.h" >extern int lstat64 (const char *__restrict __file, > struct stat64 *__restrict __buf) > __attribute__ ((__nothrow__ )) ; > > > > > >extern int chmod (const char *__file, __mode_t __mode) > __attribute__ ((__nothrow__ )) ; > > > > > >extern int lchmod (const char *__file, __mode_t __mode) > __attribute__ ((__nothrow__ )) ; > > > > >extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ )); > > > > > >extern int fchmodat (int __fd, const char *__file, __mode_t __mode, > int __flag) > __attribute__ ((__nothrow__ )) ; > > > > > > >extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ )); > > > > >extern __mode_t getumask (void) __attribute__ ((__nothrow__ )); > > > >extern int mkdir (const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__ )) ; > > > > > >extern int mkdirat (int __fd, const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__ )) ; > > > > > > >extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev) > __attribute__ ((__nothrow__ )) ; > > > > > >extern int mknodat (int __fd, const char *__path, __mode_t __mode, > __dev_t __dev) __attribute__ ((__nothrow__ )) ; > > > > > >extern int mkfifo (const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__ )) ; > > > > > >extern int mkfifoat (int __fd, const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__ )) ; > > > > > >extern int utimensat (int __fd, const char *__path, > const struct timespec __times[2], > int __flags) > __attribute__ ((__nothrow__ )) ; > > > > >extern int futimens (int __fd, const struct timespec __times[2]) __attribute__ ((__nothrow__ )); ># 398 "../io/sys/stat.h" >extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) > __attribute__ ((__nothrow__ )) ; >extern int __xstat (int __ver, const char *__filename, > struct stat *__stat_buf) __attribute__ ((__nothrow__ )) ; >extern int __lxstat (int __ver, const char *__filename, > struct stat *__stat_buf) __attribute__ ((__nothrow__ )) ; >extern int __fxstatat (int __ver, int __fildes, const char *__filename, > struct stat *__stat_buf, int __flag) > __attribute__ ((__nothrow__ )) ; ># 431 "../io/sys/stat.h" >extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) > __attribute__ ((__nothrow__ )) ; >extern int __xstat64 (int __ver, const char *__filename, > struct stat64 *__stat_buf) __attribute__ ((__nothrow__ )) ; >extern int __lxstat64 (int __ver, const char *__filename, > struct stat64 *__stat_buf) __attribute__ ((__nothrow__ )) ; >extern int __fxstatat64 (int __ver, int __fildes, const char *__filename, > struct stat64 *__stat_buf, int __flag) > __attribute__ ((__nothrow__ )) ; > >extern int __xmknod (int __ver, const char *__path, __mode_t __mode, > __dev_t *__dev) __attribute__ ((__nothrow__ )) ; > >extern int __xmknodat (int __ver, int __fd, const char *__path, > __mode_t __mode, __dev_t *__dev) > __attribute__ ((__nothrow__ )) ; > > > > >extern __inline int >__attribute__ ((__nothrow__ )) stat (const char *__path, struct stat *__statbuf) >{ > return __xstat (3, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ )) lstat (const char *__path, struct stat *__statbuf) >{ > return __lxstat (3, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ )) fstat (int __fd, struct stat *__statbuf) >{ > return __fxstat (3, __fd, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ )) fstatat (int __fd, const char *__filename, struct stat *__statbuf, int __flag) > >{ > return __fxstatat (3, __fd, __filename, __statbuf, __flag); >} > > > >extern __inline int >__attribute__ ((__nothrow__ )) mknod (const char *__path, __mode_t __mode, __dev_t __dev) >{ > return __xmknod (1, __path, __mode, &__dev); >} > > > >extern __inline int >__attribute__ ((__nothrow__ )) mknodat (int __fd, const char *__path, __mode_t __mode, __dev_t __dev) > >{ > return __xmknodat (1, __fd, __path, __mode, &__dev); >} > > > > > >extern __inline int >__attribute__ ((__nothrow__ )) stat64 (const char *__path, struct stat64 *__statbuf) >{ > return __xstat64 (3, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ )) lstat64 (const char *__path, struct stat64 *__statbuf) >{ > return __lxstat64 (3, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ )) fstat64 (int __fd, struct stat64 *__statbuf) >{ > return __fxstat64 (3, __fd, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__ )) fstatat64 (int __fd, const char *__filename, struct stat64 *__statbuf, int __flag) > >{ > return __fxstatat64 (3, __fd, __filename, __statbuf, __flag); >} > > > > > > > ># 3 "../include/sys/stat.h" 2 > > > >extern int __stat (const char *__file, struct stat *__buf); >extern int __fstat (int __fd, struct stat *__buf); >extern int __lstat (const char *__file, struct stat *__buf); >extern int __chmod (const char *__file, __mode_t __mode); >extern int __fchmod (int __fd, __mode_t __mode); >extern __mode_t __umask (__mode_t __mask); >extern int __mkdir (const char *__path, __mode_t __mode); >extern int __mknod (const char *__path, > __mode_t __mode, __dev_t __dev); > >extern __typeof (__fxstat) __fxstat __asm__ ("" "__GI___fxstat") __attribute__ ((visibility ("hidden"))); >extern __typeof (__fxstat64) __fxstat64 __asm__ ("" "__GI___fxstat64") __attribute__ ((visibility ("hidden"))); >extern __typeof (__lxstat) __lxstat __asm__ ("" "__GI___lxstat") __attribute__ ((visibility ("hidden"))); >extern __typeof (__lxstat64) __lxstat64 __asm__ ("" "__GI___lxstat64") __attribute__ ((visibility ("hidden"))); >extern __typeof (__xstat) __xstat __asm__ ("" "__GI___xstat") __attribute__ ((visibility ("hidden"))); >extern __typeof (__xstat64) __xstat64 __asm__ ("" "__GI___xstat64") __attribute__ ((visibility ("hidden"))); > >extern __inline__ int __stat (const char *__path, struct stat *__statbuf) >{ > return __xstat (3, __path, __statbuf); >} > >extern __inline__ int __mknod (const char *__path, __mode_t __mode, > __dev_t __dev) >{ > return __xmknod (1, __path, __mode, &__dev); >} > > > > ># 15 "../include/stdlib.h" 2 > > > >extern __typeof (strtol_l) __strtol_l; >extern __typeof (strtoul_l) __strtoul_l; >extern __typeof (strtoll_l) __strtoll_l; >extern __typeof (strtoull_l) __strtoull_l; >extern __typeof (strtod_l) __strtod_l; >extern __typeof (strtof_l) __strtof_l; >extern __typeof (strtold_l) __strtold_l; > > > > > > > > > > > >extern __typeof (secure_getenv) __libc_secure_getenv; > > > > > > > >extern long int __random (void); >extern void __srandom (unsigned int __seed); >extern char *__initstate (unsigned int __seed, char *__statebuf, > size_t __statelen); >extern char *__setstate (char *__statebuf); >extern int __random_r (struct random_data *__buf, int32_t *__result); >extern int __srandom_r (unsigned int __seed, struct random_data *__buf); >extern int __initstate_r (unsigned int __seed, char *__statebuf, > size_t __statelen, struct random_data *__buf); >extern int __setstate_r (char *__statebuf, struct random_data *__buf); >extern int __rand_r (unsigned int *__seed); >extern int __erand48_r (unsigned short int __xsubi[3], > struct drand48_data *__buffer, double *__result); >extern int __nrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__buffer, > long int *__result); >extern int __jrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__buffer, > long int *__result); >extern int __srand48_r (long int __seedval, > struct drand48_data *__buffer); >extern int __seed48_r (unsigned short int __seed16v[3], > struct drand48_data *__buffer); >extern int __lcong48_r (unsigned short int __param[7], > struct drand48_data *__buffer); > > >extern int __drand48_iterate (unsigned short int __xsubi[3], > struct drand48_data *__buffer); > > >extern struct drand48_data __libc_drand48_data __attribute__ ((visibility ("hidden"))); > >extern int __setenv (const char *__name, const char *__value, int __replace); >extern int __unsetenv (const char *__name); >extern int __clearenv (void); >extern char *__mktemp (char *__template) __attribute__ ((__nothrow__ )) ; >extern char *__canonicalize_file_name (const char *__name); >extern char *__realpath (const char *__name, char *__resolved); >extern int __ptsname_r (int __fd, char *__buf, size_t __buflen); > >extern int __ptsname_internal (int fd, char *buf, size_t buflen, > struct stat64 *stp); > >extern int __getpt (void); >extern int __posix_openpt (int __oflag); > >extern int __add_to_environ (const char *name, const char *value, > const char *combines, int replace); > >extern void _quicksort (void *const pbase, size_t total_elems, > size_t size, __compar_d_fn_t cmp, void *arg); > >extern int __on_exit (void (*__func) (int __status, void *__arg), void *__arg); > >extern int __cxa_atexit (void (*func) (void *), void *arg, void *d); >extern int __cxa_atexit_internal (void (*func) (void *), void *arg, void *d) > __attribute__ ((visibility ("hidden"))); > >extern int __cxa_thread_atexit_impl (void (*func) (void *), void *arg, > void *d); >extern void __call_tls_dtors (void) > > > > ; > > >extern void __cxa_finalize (void *d); > >extern int __posix_memalign (void **memptr, size_t alignment, size_t size); > >extern void *__libc_memalign (size_t alignment, size_t size) > __attribute__ ((__malloc__)); > >extern int __libc_system (const char *line); > > >extern double __strtod_internal (const char *__restrict __nptr, > char **__restrict __endptr, int __group) > __attribute__ ((__nothrow__ )) ; >extern float __strtof_internal (const char *__restrict __nptr, > char **__restrict __endptr, int __group) > __attribute__ ((__nothrow__ )) ; >extern long double __strtold_internal (const char *__restrict __nptr, > char **__restrict __endptr, > int __group) > __attribute__ ((__nothrow__ )) ; >extern long int __strtol_internal (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > __attribute__ ((__nothrow__ )) ; >extern unsigned long int __strtoul_internal (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > __attribute__ ((__nothrow__ )) ; >__extension__ >extern long long int __strtoll_internal (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > __attribute__ ((__nothrow__ )) ; >__extension__ >extern unsigned long long int __strtoull_internal (const char * > __restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > __attribute__ ((__nothrow__ )) ; > > > > > > > > >extern double ____strtod_l_internal (const char *__restrict __nptr, > char **__restrict __endptr, int __group, > __locale_t __loc); >extern float ____strtof_l_internal (const char *__restrict __nptr, > char **__restrict __endptr, int __group, > __locale_t __loc); >extern long double ____strtold_l_internal (const char *__restrict __nptr, > char **__restrict __endptr, > int __group, __locale_t __loc); >extern long int ____strtol_l_internal (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group, > __locale_t __loc); >extern unsigned long int ____strtoul_l_internal (const char * > __restrict __nptr, > char **__restrict __endptr, > int __base, int __group, > __locale_t __loc); >__extension__ >extern long long int ____strtoll_l_internal (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group, > __locale_t __loc); >__extension__ >extern unsigned long long int ____strtoull_l_internal (const char * > __restrict __nptr, > char ** > __restrict __endptr, > int __base, int __group, > __locale_t __loc); > > > > > > > > > > > > > > > > > >extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign); >extern char *__fcvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign); >extern char *__gcvt (double __value, int __ndigit, char *__buf); >extern int __ecvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len); >extern int __fcvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len); >extern char *__qecvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign); >extern char *__qfcvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign); >extern char *__qgcvt (long double __value, int __ndigit, char *__buf); >extern int __qecvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len); >extern int __qfcvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len); ># 236 "../include/stdlib.h" >extern void *__default_morecore (ptrdiff_t) __attribute__ ((__nothrow__ )); > > >struct abort_msg_s >{ > unsigned int size; > char msg[0]; >}; >extern struct abort_msg_s *__abort_msg; > > > ># 28 "../sysdeps/i386/nptl/tls.h" 2 ># 1 "../sysdeps/unix/sysv/linux/i386/sysdep.h" 1 ># 23 "../sysdeps/unix/sysv/linux/i386/sysdep.h" ># 1 "../sysdeps/unix/i386/sysdep.h" 1 ># 18 "../sysdeps/unix/i386/sysdep.h" ># 1 "../sysdeps/unix/sysdep.h" 1 ># 18 "../sysdeps/unix/sysdep.h" ># 1 "../sysdeps/generic/sysdep.h" 1 ># 97 "../sysdeps/generic/sysdep.h" ># 1 "../sysdeps/generic/dwarf2.h" 1 ># 38 "../sysdeps/generic/dwarf2.h" >enum dwarf_tag > { > DW_TAG_padding = 0x00, > DW_TAG_array_type = 0x01, > DW_TAG_class_type = 0x02, > DW_TAG_entry_point = 0x03, > DW_TAG_enumeration_type = 0x04, > DW_TAG_formal_parameter = 0x05, > DW_TAG_imported_declaration = 0x08, > DW_TAG_label = 0x0a, > DW_TAG_lexical_block = 0x0b, > DW_TAG_member = 0x0d, > DW_TAG_pointer_type = 0x0f, > DW_TAG_reference_type = 0x10, > DW_TAG_compile_unit = 0x11, > DW_TAG_string_type = 0x12, > DW_TAG_structure_type = 0x13, > DW_TAG_subroutine_type = 0x15, > DW_TAG_typedef = 0x16, > DW_TAG_union_type = 0x17, > DW_TAG_unspecified_parameters = 0x18, > DW_TAG_variant = 0x19, > DW_TAG_common_block = 0x1a, > DW_TAG_common_inclusion = 0x1b, > DW_TAG_inheritance = 0x1c, > DW_TAG_inlined_subroutine = 0x1d, > DW_TAG_module = 0x1e, > DW_TAG_ptr_to_member_type = 0x1f, > DW_TAG_set_type = 0x20, > DW_TAG_subrange_type = 0x21, > DW_TAG_with_stmt = 0x22, > DW_TAG_access_declaration = 0x23, > DW_TAG_base_type = 0x24, > DW_TAG_catch_block = 0x25, > DW_TAG_const_type = 0x26, > DW_TAG_constant = 0x27, > DW_TAG_enumerator = 0x28, > DW_TAG_file_type = 0x29, > DW_TAG_friend = 0x2a, > DW_TAG_namelist = 0x2b, > DW_TAG_namelist_item = 0x2c, > DW_TAG_packed_type = 0x2d, > DW_TAG_subprogram = 0x2e, > DW_TAG_template_type_param = 0x2f, > DW_TAG_template_value_param = 0x30, > DW_TAG_thrown_type = 0x31, > DW_TAG_try_block = 0x32, > DW_TAG_variant_part = 0x33, > DW_TAG_variable = 0x34, > DW_TAG_volatile_type = 0x35, > > DW_TAG_MIPS_loop = 0x4081, > > DW_TAG_format_label = 0x4101, > DW_TAG_function_template = 0x4102, > DW_TAG_class_template = 0x4103, > DW_TAG_GNU_BINCL = 0x4104, > DW_TAG_GNU_EINCL = 0x4105 > }; ># 106 "../sysdeps/generic/dwarf2.h" >enum dwarf_form > { > DW_FORM_addr = 0x01, > DW_FORM_block2 = 0x03, > DW_FORM_block4 = 0x04, > DW_FORM_data2 = 0x05, > DW_FORM_data4 = 0x06, > DW_FORM_data8 = 0x07, > DW_FORM_string = 0x08, > DW_FORM_block = 0x09, > DW_FORM_block1 = 0x0a, > DW_FORM_data1 = 0x0b, > DW_FORM_flag = 0x0c, > DW_FORM_sdata = 0x0d, > DW_FORM_strp = 0x0e, > DW_FORM_udata = 0x0f, > DW_FORM_ref_addr = 0x10, > DW_FORM_ref1 = 0x11, > DW_FORM_ref2 = 0x12, > DW_FORM_ref4 = 0x13, > DW_FORM_ref8 = 0x14, > DW_FORM_ref_udata = 0x15, > DW_FORM_indirect = 0x16 > }; > > > >enum dwarf_attribute > { > DW_AT_sibling = 0x01, > DW_AT_location = 0x02, > DW_AT_name = 0x03, > DW_AT_ordering = 0x09, > DW_AT_subscr_data = 0x0a, > DW_AT_byte_size = 0x0b, > DW_AT_bit_offset = 0x0c, > DW_AT_bit_size = 0x0d, > DW_AT_element_list = 0x0f, > DW_AT_stmt_list = 0x10, > DW_AT_low_pc = 0x11, > DW_AT_high_pc = 0x12, > DW_AT_language = 0x13, > DW_AT_member = 0x14, > DW_AT_discr = 0x15, > DW_AT_discr_value = 0x16, > DW_AT_visibility = 0x17, > DW_AT_import = 0x18, > DW_AT_string_length = 0x19, > DW_AT_common_reference = 0x1a, > DW_AT_comp_dir = 0x1b, > DW_AT_const_value = 0x1c, > DW_AT_containing_type = 0x1d, > DW_AT_default_value = 0x1e, > DW_AT_inline = 0x20, > DW_AT_is_optional = 0x21, > DW_AT_lower_bound = 0x22, > DW_AT_producer = 0x25, > DW_AT_prototyped = 0x27, > DW_AT_return_addr = 0x2a, > DW_AT_start_scope = 0x2c, > DW_AT_stride_size = 0x2e, > DW_AT_upper_bound = 0x2f, > DW_AT_abstract_origin = 0x31, > DW_AT_accessibility = 0x32, > DW_AT_address_class = 0x33, > DW_AT_artificial = 0x34, > DW_AT_base_types = 0x35, > DW_AT_calling_convention = 0x36, > DW_AT_count = 0x37, > DW_AT_data_member_location = 0x38, > DW_AT_decl_column = 0x39, > DW_AT_decl_file = 0x3a, > DW_AT_decl_line = 0x3b, > DW_AT_declaration = 0x3c, > DW_AT_discr_list = 0x3d, > DW_AT_encoding = 0x3e, > DW_AT_external = 0x3f, > DW_AT_frame_base = 0x40, > DW_AT_friend = 0x41, > DW_AT_identifier_case = 0x42, > DW_AT_macro_info = 0x43, > DW_AT_namelist_items = 0x44, > DW_AT_priority = 0x45, > DW_AT_segment = 0x46, > DW_AT_specification = 0x47, > DW_AT_static_link = 0x48, > DW_AT_type = 0x49, > DW_AT_use_location = 0x4a, > DW_AT_variable_parameter = 0x4b, > DW_AT_virtuality = 0x4c, > DW_AT_vtable_elem_location = 0x4d, > > DW_AT_MIPS_fde = 0x2001, > DW_AT_MIPS_loop_begin = 0x2002, > DW_AT_MIPS_tail_loop_begin = 0x2003, > DW_AT_MIPS_epilog_begin = 0x2004, > DW_AT_MIPS_loop_unroll_factor = 0x2005, > DW_AT_MIPS_software_pipeline_depth = 0x2006, > DW_AT_MIPS_linkage_name = 0x2007, > DW_AT_MIPS_stride = 0x2008, > DW_AT_MIPS_abstract_name = 0x2009, > DW_AT_MIPS_clone_origin = 0x200a, > DW_AT_MIPS_has_inlines = 0x200b, > > DW_AT_sf_names = 0x2101, > DW_AT_src_info = 0x2102, > DW_AT_mac_info = 0x2103, > DW_AT_src_coords = 0x2104, > DW_AT_body_begin = 0x2105, > DW_AT_body_end = 0x2106 > }; > > > > > > >enum dwarf_location_atom > { > DW_OP_addr = 0x03, > DW_OP_deref = 0x06, > DW_OP_const1u = 0x08, > DW_OP_const1s = 0x09, > DW_OP_const2u = 0x0a, > DW_OP_const2s = 0x0b, > DW_OP_const4u = 0x0c, > DW_OP_const4s = 0x0d, > DW_OP_const8u = 0x0e, > DW_OP_const8s = 0x0f, > DW_OP_constu = 0x10, > DW_OP_consts = 0x11, > DW_OP_dup = 0x12, > DW_OP_drop = 0x13, > DW_OP_over = 0x14, > DW_OP_pick = 0x15, > DW_OP_swap = 0x16, > DW_OP_rot = 0x17, > DW_OP_xderef = 0x18, > DW_OP_abs = 0x19, > DW_OP_and = 0x1a, > DW_OP_div = 0x1b, > DW_OP_minus = 0x1c, > DW_OP_mod = 0x1d, > DW_OP_mul = 0x1e, > DW_OP_neg = 0x1f, > DW_OP_not = 0x20, > DW_OP_or = 0x21, > DW_OP_plus = 0x22, > DW_OP_plus_uconst = 0x23, > DW_OP_shl = 0x24, > DW_OP_shr = 0x25, > DW_OP_shra = 0x26, > DW_OP_xor = 0x27, > DW_OP_bra = 0x28, > DW_OP_eq = 0x29, > DW_OP_ge = 0x2a, > DW_OP_gt = 0x2b, > DW_OP_le = 0x2c, > DW_OP_lt = 0x2d, > DW_OP_ne = 0x2e, > DW_OP_skip = 0x2f, > DW_OP_lit0 = 0x30, > DW_OP_lit1 = 0x31, > DW_OP_lit2 = 0x32, > DW_OP_lit3 = 0x33, > DW_OP_lit4 = 0x34, > DW_OP_lit5 = 0x35, > DW_OP_lit6 = 0x36, > DW_OP_lit7 = 0x37, > DW_OP_lit8 = 0x38, > DW_OP_lit9 = 0x39, > DW_OP_lit10 = 0x3a, > DW_OP_lit11 = 0x3b, > DW_OP_lit12 = 0x3c, > DW_OP_lit13 = 0x3d, > DW_OP_lit14 = 0x3e, > DW_OP_lit15 = 0x3f, > DW_OP_lit16 = 0x40, > DW_OP_lit17 = 0x41, > DW_OP_lit18 = 0x42, > DW_OP_lit19 = 0x43, > DW_OP_lit20 = 0x44, > DW_OP_lit21 = 0x45, > DW_OP_lit22 = 0x46, > DW_OP_lit23 = 0x47, > DW_OP_lit24 = 0x48, > DW_OP_lit25 = 0x49, > DW_OP_lit26 = 0x4a, > DW_OP_lit27 = 0x4b, > DW_OP_lit28 = 0x4c, > DW_OP_lit29 = 0x4d, > DW_OP_lit30 = 0x4e, > DW_OP_lit31 = 0x4f, > DW_OP_reg0 = 0x50, > DW_OP_reg1 = 0x51, > DW_OP_reg2 = 0x52, > DW_OP_reg3 = 0x53, > DW_OP_reg4 = 0x54, > DW_OP_reg5 = 0x55, > DW_OP_reg6 = 0x56, > DW_OP_reg7 = 0x57, > DW_OP_reg8 = 0x58, > DW_OP_reg9 = 0x59, > DW_OP_reg10 = 0x5a, > DW_OP_reg11 = 0x5b, > DW_OP_reg12 = 0x5c, > DW_OP_reg13 = 0x5d, > DW_OP_reg14 = 0x5e, > DW_OP_reg15 = 0x5f, > DW_OP_reg16 = 0x60, > DW_OP_reg17 = 0x61, > DW_OP_reg18 = 0x62, > DW_OP_reg19 = 0x63, > DW_OP_reg20 = 0x64, > DW_OP_reg21 = 0x65, > DW_OP_reg22 = 0x66, > DW_OP_reg23 = 0x67, > DW_OP_reg24 = 0x68, > DW_OP_reg25 = 0x69, > DW_OP_reg26 = 0x6a, > DW_OP_reg27 = 0x6b, > DW_OP_reg28 = 0x6c, > DW_OP_reg29 = 0x6d, > DW_OP_reg30 = 0x6e, > DW_OP_reg31 = 0x6f, > DW_OP_breg0 = 0x70, > DW_OP_breg1 = 0x71, > DW_OP_breg2 = 0x72, > DW_OP_breg3 = 0x73, > DW_OP_breg4 = 0x74, > DW_OP_breg5 = 0x75, > DW_OP_breg6 = 0x76, > DW_OP_breg7 = 0x77, > DW_OP_breg8 = 0x78, > DW_OP_breg9 = 0x79, > DW_OP_breg10 = 0x7a, > DW_OP_breg11 = 0x7b, > DW_OP_breg12 = 0x7c, > DW_OP_breg13 = 0x7d, > DW_OP_breg14 = 0x7e, > DW_OP_breg15 = 0x7f, > DW_OP_breg16 = 0x80, > DW_OP_breg17 = 0x81, > DW_OP_breg18 = 0x82, > DW_OP_breg19 = 0x83, > DW_OP_breg20 = 0x84, > DW_OP_breg21 = 0x85, > DW_OP_breg22 = 0x86, > DW_OP_breg23 = 0x87, > DW_OP_breg24 = 0x88, > DW_OP_breg25 = 0x89, > DW_OP_breg26 = 0x8a, > DW_OP_breg27 = 0x8b, > DW_OP_breg28 = 0x8c, > DW_OP_breg29 = 0x8d, > DW_OP_breg30 = 0x8e, > DW_OP_breg31 = 0x8f, > DW_OP_regx = 0x90, > DW_OP_fbreg = 0x91, > DW_OP_bregx = 0x92, > DW_OP_piece = 0x93, > DW_OP_deref_size = 0x94, > DW_OP_xderef_size = 0x95, > DW_OP_nop = 0x96 > }; > > > > > > >enum dwarf_type > { > DW_ATE_void = 0x0, > DW_ATE_address = 0x1, > DW_ATE_boolean = 0x2, > DW_ATE_complex_float = 0x3, > DW_ATE_float = 0x4, > DW_ATE_signed = 0x5, > DW_ATE_signed_char = 0x6, > DW_ATE_unsigned = 0x7, > DW_ATE_unsigned_char = 0x8 > }; > > > > > >enum dwarf_array_dim_ordering > { > DW_ORD_row_major = 0, > DW_ORD_col_major = 1 > }; > > >enum dwarf_access_attribute > { > DW_ACCESS_public = 1, > DW_ACCESS_protected = 2, > DW_ACCESS_private = 3 > }; > > >enum dwarf_visibility_attribute > { > DW_VIS_local = 1, > DW_VIS_exported = 2, > DW_VIS_qualified = 3 > }; > > >enum dwarf_virtuality_attribute > { > DW_VIRTUALITY_none = 0, > DW_VIRTUALITY_virtual = 1, > DW_VIRTUALITY_pure_virtual = 2 > }; > > >enum dwarf_id_case > { > DW_ID_case_sensitive = 0, > DW_ID_up_case = 1, > DW_ID_down_case = 2, > DW_ID_case_insensitive = 3 > }; > > >enum dwarf_calling_convention > { > DW_CC_normal = 0x1, > DW_CC_program = 0x2, > DW_CC_nocall = 0x3 > }; > > > > > >enum dwarf_inline_attribute > { > DW_INL_not_inlined = 0, > DW_INL_inlined = 1, > DW_INL_declared_not_inlined = 2, > DW_INL_declared_inlined = 3 > }; > > >enum dwarf_discrim_list > { > DW_DSC_label = 0, > DW_DSC_range = 1 > }; > > >enum dwarf_line_number_ops > { > DW_LNS_extended_op = 0, > DW_LNS_copy = 1, > DW_LNS_advance_pc = 2, > DW_LNS_advance_line = 3, > DW_LNS_set_file = 4, > DW_LNS_set_column = 5, > DW_LNS_negate_stmt = 6, > DW_LNS_set_basic_block = 7, > DW_LNS_const_add_pc = 8, > DW_LNS_fixed_advance_pc = 9 > }; > > >enum dwarf_line_number_x_ops > { > DW_LNE_end_sequence = 1, > DW_LNE_set_address = 2, > DW_LNE_define_file = 3 > }; > > >enum dwarf_call_frame_info > { > DW_CFA_advance_loc = 0x40, > DW_CFA_offset = 0x80, > DW_CFA_restore = 0xc0, > DW_CFA_nop = 0x00, > DW_CFA_set_loc = 0x01, > DW_CFA_advance_loc1 = 0x02, > DW_CFA_advance_loc2 = 0x03, > DW_CFA_advance_loc4 = 0x04, > DW_CFA_offset_extended = 0x05, > DW_CFA_restore_extended = 0x06, > DW_CFA_undefined = 0x07, > DW_CFA_same_value = 0x08, > DW_CFA_register = 0x09, > DW_CFA_remember_state = 0x0a, > DW_CFA_restore_state = 0x0b, > DW_CFA_def_cfa = 0x0c, > DW_CFA_def_cfa_register = 0x0d, > DW_CFA_def_cfa_offset = 0x0e, > DW_CFA_def_cfa_expression = 0x0f, > DW_CFA_expression = 0x10, > > DW_CFA_offset_extended_sf = 0x11, > DW_CFA_def_cfa_sf = 0x12, > DW_CFA_def_cfa_offset_sf = 0x13, > > > DW_CFA_MIPS_advance_loc8 = 0x1d, > > > DW_CFA_GNU_window_save = 0x2d, > DW_CFA_GNU_args_size = 0x2e, > DW_CFA_GNU_negative_offset_extended = 0x2f > }; ># 534 "../sysdeps/generic/dwarf2.h" >enum dwarf_source_language > { > DW_LANG_C89 = 0x0001, > DW_LANG_C = 0x0002, > DW_LANG_Ada83 = 0x0003, > DW_LANG_C_plus_plus = 0x0004, > DW_LANG_Cobol74 = 0x0005, > DW_LANG_Cobol85 = 0x0006, > DW_LANG_Fortran77 = 0x0007, > DW_LANG_Fortran90 = 0x0008, > DW_LANG_Pascal83 = 0x0009, > DW_LANG_Modula2 = 0x000a, > DW_LANG_Java = 0x000b, > DW_LANG_Mips_Assembler = 0x8001 > }; > > > > > > > >enum dwarf_macinfo_record_type > { > DW_MACINFO_define = 1, > DW_MACINFO_undef = 2, > DW_MACINFO_start_file = 3, > DW_MACINFO_end_file = 4, > DW_MACINFO_vendor_ext = 255 > }; ># 97 "../sysdeps/generic/sysdep.h" 2 ># 19 "../sysdeps/unix/sysdep.h" 2 > ># 1 "../sysdeps/unix/sysv/linux/sys/syscall.h" 1 ># 24 "../sysdeps/unix/sysv/linux/sys/syscall.h" ># 1 "/usr/include/asm/unistd.h" 1 3 4 > > > > > > > ># 1 "/usr/include/asm/unistd_32.h" 1 3 4 ># 9 "/usr/include/asm/unistd.h" 2 3 4 ># 25 "../sysdeps/unix/sysv/linux/sys/syscall.h" 2 ># 21 "../sysdeps/unix/sysdep.h" 2 ># 19 "../sysdeps/unix/i386/sysdep.h" 2 ># 1 "../sysdeps/i386/sysdep.h" 1 ># 19 "../sysdeps/i386/sysdep.h" ># 1 "../sysdeps/generic/sysdep.h" 1 ># 20 "../sysdeps/i386/sysdep.h" 2 ># 20 "../sysdeps/unix/i386/sysdep.h" 2 ># 24 "../sysdeps/unix/sysv/linux/i386/sysdep.h" 2 > > ># 1 "../sysdeps/i386/i686/nptl/tls.h" 1 ># 27 "../sysdeps/unix/sysv/linux/i386/sysdep.h" 2 ># 280 "../sysdeps/unix/sysv/linux/i386/sysdep.h" >asm (".L__X'%ebx = 1\n\t" > ".L__X'%ecx = 2\n\t" > ".L__X'%edx = 2\n\t" > ".L__X'%eax = 3\n\t" > ".L__X'%esi = 3\n\t" > ".L__X'%edi = 3\n\t" > ".L__X'%ebp = 3\n\t" > ".L__X'%esp = 3\n\t" > ".macro bpushl name reg\n\t" > ".if 1 - \\name\n\t" > ".if 2 - \\name\n\t" > "error\n\t" > ".else\n\t" > "xchgl \\reg, %ebx\n\t" > ".endif\n\t" > ".endif\n\t" > ".endm\n\t" > ".macro bpopl name reg\n\t" > ".if 1 - \\name\n\t" > ".if 2 - \\name\n\t" > "error\n\t" > ".else\n\t" > "xchgl \\reg, %ebx\n\t" > ".endif\n\t" > ".endif\n\t" > ".endm\n\t"); ># 29 "../sysdeps/i386/nptl/tls.h" 2 ># 1 "../include/libc-internal.h" 1 > > > > > > ># 1 "../sysdeps/i386/i686/hp-timing.h" 1 ># 31 "../sysdeps/i386/i686/hp-timing.h" >typedef unsigned long long int hp_timing_t; ># 40 "../sysdeps/i386/i686/hp-timing.h" ># 1 "../sysdeps/generic/hp-timing-common.h" 1 ># 40 "../sysdeps/generic/hp-timing-common.h" ># 1 "../include/string.h" 1 > > > ># 1 "../include/sys/types.h" 1 ># 5 "../include/string.h" 2 > >extern void *__memccpy (void *__dest, const void *__src, > int __c, size_t __n); > >extern size_t __strnlen (const char *__string, size_t __maxlen) > __attribute__ ((__pure__)); > >extern char *__strsep (char **__stringp, const char *__delim); > >extern int __strverscmp (const char *__s1, const char *__s2) > __attribute__ ((__pure__)); > >extern int __strncasecmp (const char *__s1, const char *__s2, > size_t __n) > __attribute__ ((__pure__)); > >extern int __strcasecmp (const char *__s1, const char *__s2) > __attribute__ ((__pure__)); > >extern char *__strcasestr (const char *__haystack, const char *__needle) > __attribute__ ((__pure__)); > >extern char *__strdup (const char *__string) > __attribute__ ((__malloc__)); >extern char *__strndup (const char *__string, size_t __n) > __attribute__ ((__malloc__)); > >extern void *__rawmemchr (const void *__s, int __c) > __attribute__ ((__pure__)); > >extern char *__strchrnul (const char *__s, int __c) > __attribute__ ((__pure__)); > >extern void *__memrchr (const void *__s, int __c, size_t __n) > __attribute__ ((__pure__)); > >extern void *__memchr (const void *__s, int __c, size_t __n) > __attribute__ ((__pure__)); > >extern int __ffs (int __i) __attribute__ ((const)); > >extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen); > > > > ># 1 "../string/string.h" 1 ># 27 "../string/string.h" > > > > > ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 33 "../string/string.h" 2 ># 44 "../string/string.h" > > >extern void *memcpy (void *__restrict __dest, const void *__restrict __src, > size_t __n) __attribute__ ((__nothrow__ )) ; > > >extern void *memmove (void *__dest, const void *__src, size_t __n) > __attribute__ ((__nothrow__ )) ; > > > > > > >extern void *memccpy (void *__restrict __dest, const void *__restrict __src, > int __c, size_t __n) > __attribute__ ((__nothrow__ )) ; > > > > > >extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ )) ; > > >extern int memcmp (const void *__s1, const void *__s2, size_t __n) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; ># 96 "../string/string.h" >extern void *memchr (const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > ># 110 "../string/string.h" >extern void *rawmemchr (const void *__s, int __c) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; ># 121 "../string/string.h" >extern void *memrchr (const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > > > >extern char *strcpy (char *__restrict __dest, const char *__restrict __src) > __attribute__ ((__nothrow__ )) ; > >extern char *strncpy (char *__restrict __dest, > const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ )) ; > > >extern char *strcat (char *__restrict __dest, const char *__restrict __src) > __attribute__ ((__nothrow__ )) ; > >extern char *strncat (char *__restrict __dest, const char *__restrict __src, > size_t __n) __attribute__ ((__nothrow__ )) ; > > >extern int strcmp (const char *__s1, const char *__s2) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > >extern int strncmp (const char *__s1, const char *__s2, size_t __n) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > >extern int strcoll (const char *__s1, const char *__s2) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > >extern size_t strxfrm (char *__restrict __dest, > const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ )) ; > > > > > > ># 1 "../include/xlocale.h" 1 ># 164 "../string/string.h" 2 > > >extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > >extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, > __locale_t __l) __attribute__ ((__nothrow__ )) ; > > > > >extern char *strdup (const char *__s) > __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) ; > > > > > > >extern char *strndup (const char *__string, size_t __n) > __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) ; ># 210 "../string/string.h" > ># 235 "../string/string.h" >extern char *strchr (const char *__s, int __c) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; ># 262 "../string/string.h" >extern char *strrchr (const char *__s, int __c) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > ># 276 "../string/string.h" >extern char *strchrnul (const char *__s, int __c) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > > > >extern size_t strcspn (const char *__s, const char *__reject) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > >extern size_t strspn (const char *__s, const char *__accept) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; ># 314 "../string/string.h" >extern char *strpbrk (const char *__s, const char *__accept) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; ># 341 "../string/string.h" >extern char *strstr (const char *__haystack, const char *__needle) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > >extern char *strtok (char *__restrict __s, const char *__restrict __delim) > __attribute__ ((__nothrow__ )) ; > > > > >extern char *__strtok_r (char *__restrict __s, > const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__ )) ; > >extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__ )) ; ># 372 "../string/string.h" >extern char *strcasestr (const char *__haystack, const char *__needle) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > > > > >extern void *memmem (const void *__haystack, size_t __haystacklen, > const void *__needle, size_t __needlelen) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > >extern void *__mempcpy (void *__restrict __dest, > const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ )) ; >extern void *mempcpy (void *__restrict __dest, > const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ )) ; > > > > > >extern size_t strlen (const char *__s) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > > >extern size_t strnlen (const char *__string, size_t __maxlen) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > > >extern char *strerror (int __errnum) __attribute__ ((__nothrow__ )); > ># 437 "../string/string.h" >extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__ )) ; > > > > > >extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__ )); > > > > > >extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ )) ; > > > >extern void bcopy (const void *__src, void *__dest, size_t __n) > __attribute__ ((__nothrow__ )) ; > > >extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ )) ; > > >extern int bcmp (const void *__s1, const void *__s2, size_t __n) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; ># 488 "../string/string.h" >extern char *index (const char *__s, int __c) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; ># 516 "../string/string.h" >extern char *rindex (const char *__s, int __c) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > >extern int ffs (int __i) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); > > > > >extern int ffsl (long int __l) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); >__extension__ extern int ffsll (long long int __ll) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); > > > >extern int strcasecmp (const char *__s1, const char *__s2) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > >extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > > >extern int strcasecmp_l (const char *__s1, const char *__s2, > __locale_t __loc) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > >extern int strncasecmp_l (const char *__s1, const char *__s2, > size_t __n, __locale_t __loc) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > > > > >extern char *strsep (char **__restrict __stringp, > const char *__restrict __delim) > __attribute__ ((__nothrow__ )) ; > > > > >extern char *strsignal (int __sig) __attribute__ ((__nothrow__ )); > > >extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) > __attribute__ ((__nothrow__ )) ; >extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) > __attribute__ ((__nothrow__ )) ; > > > >extern char *__stpncpy (char *__restrict __dest, > const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ )) ; >extern char *stpncpy (char *__restrict __dest, > const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__ )) ; > > > > >extern int strverscmp (const char *__s1, const char *__s2) > __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ; > > >extern char *strfry (char *__string) __attribute__ ((__nothrow__ )) ; > > >extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__ )) ; ># 603 "../string/string.h" >extern char *basename (const char *__filename) __attribute__ ((__nothrow__ )) ; ># 631 "../string/string.h" ># 1 "../sysdeps/x86/bits/string.h" 1 ># 632 "../string/string.h" 2 > > ># 1 "../include/bits/string2.h" 1 ># 1 "../string/bits/string2.h" 1 ># 51 "../string/bits/string2.h" ># 1 "../include/endian.h" 1 ># 52 "../string/bits/string2.h" 2 ># 393 "../string/bits/string2.h" >extern void *__rawmemchr (const void *__s, int __c); ># 945 "../string/bits/string2.h" >extern __inline size_t __strcspn_c1 (const char *__s, int __reject); >extern __inline size_t >__strcspn_c1 (const char *__s, int __reject) >{ > size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject) > ++__result; > return __result; >} > >extern __inline size_t __strcspn_c2 (const char *__s, int __reject1, > int __reject2); >extern __inline size_t >__strcspn_c2 (const char *__s, int __reject1, int __reject2) >{ > size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject1 > && __s[__result] != __reject2) > ++__result; > return __result; >} > >extern __inline size_t __strcspn_c3 (const char *__s, int __reject1, > int __reject2, int __reject3); >extern __inline size_t >__strcspn_c3 (const char *__s, int __reject1, int __reject2, > int __reject3) >{ > size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject1 > && __s[__result] != __reject2 && __s[__result] != __reject3) > ++__result; > return __result; >} ># 1021 "../string/bits/string2.h" >extern __inline size_t __strspn_c1 (const char *__s, int __accept); >extern __inline size_t >__strspn_c1 (const char *__s, int __accept) >{ > size_t __result = 0; > > while (__s[__result] == __accept) > ++__result; > return __result; >} > >extern __inline size_t __strspn_c2 (const char *__s, int __accept1, > int __accept2); >extern __inline size_t >__strspn_c2 (const char *__s, int __accept1, int __accept2) >{ > size_t __result = 0; > > while (__s[__result] == __accept1 || __s[__result] == __accept2) > ++__result; > return __result; >} > >extern __inline size_t __strspn_c3 (const char *__s, int __accept1, > int __accept2, int __accept3); >extern __inline size_t >__strspn_c3 (const char *__s, int __accept1, int __accept2, int __accept3) >{ > size_t __result = 0; > > while (__s[__result] == __accept1 || __s[__result] == __accept2 > || __s[__result] == __accept3) > ++__result; > return __result; >} ># 1097 "../string/bits/string2.h" >extern __inline char *__strpbrk_c2 (const char *__s, int __accept1, > int __accept2); >extern __inline char * >__strpbrk_c2 (const char *__s, int __accept1, int __accept2) >{ > > while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) > ++__s; > return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; >} > >extern __inline char *__strpbrk_c3 (const char *__s, int __accept1, > int __accept2, int __accept3); >extern __inline char * >__strpbrk_c3 (const char *__s, int __accept1, int __accept2, int __accept3) >{ > > while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 > && *__s != __accept3) > ++__s; > return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; >} ># 1147 "../string/bits/string2.h" >extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp); >extern __inline char * >__strtok_r_1c (char *__s, char __sep, char **__nextp) >{ > char *__result; > if (__s == ((void *)0)) > __s = *__nextp; > while (*__s == __sep) > ++__s; > __result = ((void *)0); > if (*__s != '\0') > { > __result = __s++; > while (*__s != '\0') > if (*__s++ == __sep) > { > __s[-1] = '\0'; > break; > } > } > *__nextp = __s; > return __result; >} ># 1179 "../string/bits/string2.h" >extern char *__strsep_g (char **__stringp, const char *__delim); ># 1197 "../string/bits/string2.h" >extern __inline char *__strsep_1c (char **__s, char __reject); >extern __inline char * >__strsep_1c (char **__s, char __reject) >{ > char *__retval = *__s; > if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0)) > *(*__s)++ = '\0'; > return __retval; >} > >extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2); >extern __inline char * >__strsep_2c (char **__s, char __reject1, char __reject2) >{ > char *__retval = *__s; > if (__retval != ((void *)0)) > { > char *__cp = __retval; > while (1) > { > if (*__cp == '\0') > { > __cp = ((void *)0); > break; > } > if (*__cp == __reject1 || *__cp == __reject2) > { > *__cp++ = '\0'; > break; > } > ++__cp; > } > *__s = __cp; > } > return __retval; >} > >extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2, > char __reject3); >extern __inline char * >__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) >{ > char *__retval = *__s; > if (__retval != ((void *)0)) > { > char *__cp = __retval; > while (1) > { > if (*__cp == '\0') > { > __cp = ((void *)0); > break; > } > if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) > { > *__cp++ = '\0'; > break; > } > ++__cp; > } > *__s = __cp; > } > return __retval; >} ># 1278 "../string/bits/string2.h" >extern char *__strdup (const char *__string) __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)); ># 1297 "../string/bits/string2.h" >extern char *__strndup (const char *__string, size_t __n) > __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)); ># 1 "../include/bits/string2.h" 2 ># 635 "../string/string.h" 2 ># 643 "../string/string.h" > ># 52 "../include/string.h" 2 > > >extern __typeof (strcoll_l) __strcoll_l; >extern __typeof (strxfrm_l) __strxfrm_l; >extern __typeof (strcasecmp_l) __strcasecmp_l; >extern __typeof (strncasecmp_l) __strncasecmp_l; ># 73 "../include/string.h" > > > > > > > > > > > > > > > > >extern char *__strsep_g (char **__stringp, const char *__delim); > > > > > > > > > > > > > > > > > > > > > > > > > ># 125 "../include/string.h" >extern void *__memcpy_chk (void *__restrict __dest, > const void *__restrict __src, size_t __len, > size_t __destlen) __attribute__ ((__nothrow__ )); >extern void *__memmove_chk (void *__dest, const void *__src, size_t __len, > size_t __destlen) __attribute__ ((__nothrow__ )); >extern void *__mempcpy_chk (void *__restrict __dest, > const void *__restrict __src, size_t __len, > size_t __destlen) __attribute__ ((__nothrow__ )); >extern void *__memset_chk (void *__dest, int __ch, size_t __len, > size_t __destlen) __attribute__ ((__nothrow__ )); >extern char *__strcpy_chk (char *__restrict __dest, > const char *__restrict __src, > size_t __destlen) __attribute__ ((__nothrow__ )); >extern char *__stpcpy_chk (char *__restrict __dest, > const char *__restrict __src, > size_t __destlen) __attribute__ ((__nothrow__ )); >extern char *__strncpy_chk (char *__restrict __dest, > const char *__restrict __src, > size_t __len, size_t __destlen) __attribute__ ((__nothrow__ )); >extern char *__strcat_chk (char *__restrict __dest, > const char *__restrict __src, > size_t __destlen) __attribute__ ((__nothrow__ )); >extern char *__strncat_chk (char *__restrict __dest, > const char *__restrict __src, > size_t __len, size_t __destlen) __attribute__ ((__nothrow__ )); ># 41 "../sysdeps/generic/hp-timing-common.h" 2 ># 1 "../include/sys/param.h" 1 ># 1 "../misc/sys/param.h" 1 ># 23 "../misc/sys/param.h" ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 24 "../misc/sys/param.h" 2 > ># 1 "../include/sys/types.h" 1 ># 26 "../misc/sys/param.h" 2 ># 1 "../include/limits.h" 1 ># 143 "../include/limits.h" ># 1 "../include/bits/posix1_lim.h" 1 ># 144 "../include/limits.h" 2 > > > ># 1 "../include/bits/posix2_lim.h" 1 ># 148 "../include/limits.h" 2 ># 27 "../misc/sys/param.h" 2 ># 1 "../include/endian.h" 1 ># 28 "../misc/sys/param.h" 2 ># 1 "../include/signal.h" 1 > > > > ># 1 "../signal/signal.h" 1 ># 30 "../signal/signal.h" > > ># 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1 ># 102 "../sysdeps/unix/sysv/linux/bits/sigset.h" >extern int __sigismember (const __sigset_t *, int); >extern int __sigaddset (__sigset_t *, int); >extern int __sigdelset (__sigset_t *, int); ># 116 "../sysdeps/unix/sysv/linux/bits/sigset.h" >extern __inline int __sigismember (const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; } >extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); } >extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); } ># 33 "../signal/signal.h" 2 > > > > > > > >typedef __sig_atomic_t sig_atomic_t; > ># 57 "../signal/signal.h" ># 1 "../sysdeps/unix/sysv/linux/bits/signum.h" 1 ># 58 "../signal/signal.h" 2 ># 75 "../signal/signal.h" ># 1 "../include/time.h" 1 > > ># 1 "../time/time.h" 1 ># 4 "../include/time.h" 2 ># 76 "../signal/signal.h" 2 > > > > ># 1 "../sysdeps/unix/sysv/linux/x86/bits/siginfo.h" 1 ># 24 "../sysdeps/unix/sysv/linux/x86/bits/siginfo.h" ># 1 "../sysdeps/x86/bits/wordsize.h" 1 ># 25 "../sysdeps/unix/sysv/linux/x86/bits/siginfo.h" 2 > > > > > > > >typedef union sigval > { > int sival_int; > void *sival_ptr; > } sigval_t; ># 58 "../sysdeps/unix/sysv/linux/x86/bits/siginfo.h" >typedef __clock_t __sigchld_clock_t; > > > >typedef struct > { > int si_signo; > int si_errno; > > int si_code; > > union > { > int _pad[((128 / sizeof (int)) - 3)]; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > } _kill; > > > struct > { > int si_tid; > int si_overrun; > sigval_t si_sigval; > } _timer; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > sigval_t si_sigval; > } _rt; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > int si_status; > __sigchld_clock_t si_utime; > __sigchld_clock_t si_stime; > } _sigchld; > > > struct > { > void *si_addr; > short int si_addr_lsb; > } _sigfault; > > > struct > { > long int si_band; > int si_fd; > } _sigpoll; > > > struct > { > void *_call_addr; > int _syscall; > unsigned int _arch; > } _sigsys; > } _sifields; > } siginfo_t ; ># 153 "../sysdeps/unix/sysv/linux/x86/bits/siginfo.h" >enum >{ > SI_ASYNCNL = -60, > > SI_TKILL = -6, > > SI_SIGIO, > > SI_ASYNCIO, > > SI_MESGQ, > > SI_TIMER, > > SI_QUEUE, > > SI_USER, > > SI_KERNEL = 0x80 > >}; > > > > >enum >{ > ILL_ILLOPC = 1, > > ILL_ILLOPN, > > ILL_ILLADR, > > ILL_ILLTRP, > > ILL_PRVOPC, > > ILL_PRVREG, > > ILL_COPROC, > > ILL_BADSTK > >}; > > >enum >{ > FPE_INTDIV = 1, > > FPE_INTOVF, > > FPE_FLTDIV, > > FPE_FLTOVF, > > FPE_FLTUND, > > FPE_FLTRES, > > FPE_FLTINV, > > FPE_FLTSUB > >}; > > >enum >{ > SEGV_MAPERR = 1, > > SEGV_ACCERR > >}; > > >enum >{ > BUS_ADRALN = 1, > > BUS_ADRERR, > > BUS_OBJERR, > > BUS_MCEERR_AR, > > BUS_MCEERR_AO > >}; > > > > >enum >{ > TRAP_BRKPT = 1, > > TRAP_TRACE > >}; > > > > >enum >{ > CLD_EXITED = 1, > > CLD_KILLED, > > CLD_DUMPED, > > CLD_TRAPPED, > > CLD_STOPPED, > > CLD_CONTINUED > >}; > > >enum >{ > POLL_IN = 1, > > POLL_OUT, > > POLL_MSG, > > POLL_ERR, > > POLL_PRI, > > POLL_HUP > >}; ># 313 "../sysdeps/unix/sysv/linux/x86/bits/siginfo.h" >typedef struct sigevent > { > sigval_t sigev_value; > int sigev_signo; > int sigev_notify; > > union > { > int _pad[((64 / sizeof (int)) - 3)]; > > > > __pid_t _tid; > > struct > { > void (*_function) (sigval_t); > pthread_attr_t *_attribute; > } _sigev_thread; > } _sigev_un; > } sigevent_t; > > > > > > >enum >{ > SIGEV_SIGNAL = 0, > > SIGEV_NONE, > > SIGEV_THREAD, > > > SIGEV_THREAD_ID = 4 > >}; ># 81 "../signal/signal.h" 2 > > > > >typedef void (*__sighandler_t) (int); > > > > >extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__ )); > >extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__ )); > > > > > > > >extern __sighandler_t signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__ )); ># 114 "../signal/signal.h" > > > > > >extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__ )); > > > > > > >extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__ )); > > > > > > >extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__ )); > > > > >extern int raise (int __sig) __attribute__ ((__nothrow__ )); > > > > >extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__ )); >extern int gsignal (int __sig) __attribute__ ((__nothrow__ )); > > > > >extern void psignal (int __sig, const char *__s); > > > > >extern void psiginfo (const siginfo_t *__pinfo, const char *__s); ># 167 "../signal/signal.h" >extern int __sigpause (int __sig_or_mask, int __is_sig); > > > >extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); ># 189 "../signal/signal.h" >extern int sigblock (int __mask) __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); > > >extern int sigsetmask (int __mask) __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); > > >extern int siggetmask (void) __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); ># 204 "../signal/signal.h" >typedef __sighandler_t sighandler_t; > > > > >typedef __sighandler_t sig_t; > > > > > >extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__ )) ; > > >extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__ )) ; > > >extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ )) ; > > >extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ )) ; > > >extern int sigismember (const sigset_t *__set, int __signo) > __attribute__ ((__nothrow__ )) ; > > > >extern int sigisemptyset (const sigset_t *__set) __attribute__ ((__nothrow__ )) ; > > >extern int sigandset (sigset_t *__set, const sigset_t *__left, > const sigset_t *__right) __attribute__ ((__nothrow__ )) ; > > >extern int sigorset (sigset_t *__set, const sigset_t *__left, > const sigset_t *__right) __attribute__ ((__nothrow__ )) ; > > > > ># 1 "../sysdeps/unix/sysv/linux/bits/sigaction.h" 1 ># 24 "../sysdeps/unix/sysv/linux/bits/sigaction.h" >struct sigaction > { > > > union > { > > __sighandler_t sa_handler; > > void (*sa_sigaction) (int, siginfo_t *, void *); > } > __sigaction_handler; > > > > > > > > __sigset_t sa_mask; > > > int sa_flags; > > > void (*sa_restorer) (void); > }; ># 246 "../signal/signal.h" 2 > > >extern int sigprocmask (int __how, const sigset_t *__restrict __set, > sigset_t *__restrict __oset) __attribute__ ((__nothrow__ )); > > > > > > >extern int sigsuspend (const sigset_t *__set) ; > > >extern int sigaction (int __sig, const struct sigaction *__restrict __act, > struct sigaction *__restrict __oact) __attribute__ ((__nothrow__ )); > > >extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__ )) ; > > > > > > >extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig) > ; > > > > > > >extern int sigwaitinfo (const sigset_t *__restrict __set, > siginfo_t *__restrict __info) ; > > > > > > >extern int sigtimedwait (const sigset_t *__restrict __set, > siginfo_t *__restrict __info, > const struct timespec *__restrict __timeout) > ; > > > >extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val) > __attribute__ ((__nothrow__ )); ># 303 "../signal/signal.h" >extern const char *const _sys_siglist[65]; >extern const char *const sys_siglist[65]; > > >struct sigvec > { > __sighandler_t sv_handler; > int sv_mask; > > int sv_flags; > > }; ># 327 "../signal/signal.h" >extern int sigvec (int __sig, const struct sigvec *__vec, > struct sigvec *__ovec) __attribute__ ((__nothrow__ )); > > > ># 1 "../sysdeps/unix/sysv/linux/x86/bits/sigcontext.h" 1 ># 29 "../sysdeps/unix/sysv/linux/x86/bits/sigcontext.h" >struct _fpx_sw_bytes >{ > __uint32_t magic1; > __uint32_t extended_size; > __uint64_t xstate_bv; > __uint32_t xstate_size; > __uint32_t padding[7]; >}; > >struct _fpreg >{ > unsigned short significand[4]; > unsigned short exponent; >}; > >struct _fpxreg >{ > unsigned short significand[4]; > unsigned short exponent; > unsigned short padding[3]; >}; > >struct _xmmreg >{ > __uint32_t element[4]; >}; > > > > > >struct _fpstate >{ > > __uint32_t cw; > __uint32_t sw; > __uint32_t tag; > __uint32_t ipoff; > __uint32_t cssel; > __uint32_t dataoff; > __uint32_t datasel; > struct _fpreg _st[8]; > unsigned short status; > unsigned short magic; > > > __uint32_t _fxsr_env[6]; > __uint32_t mxcsr; > __uint32_t reserved; > struct _fpxreg _fxsr_st[8]; > struct _xmmreg _xmm[8]; > __uint32_t padding[56]; >}; ># 93 "../sysdeps/unix/sysv/linux/x86/bits/sigcontext.h" >struct sigcontext >{ > unsigned short gs, __gsh; > unsigned short fs, __fsh; > unsigned short es, __esh; > unsigned short ds, __dsh; > unsigned long edi; > unsigned long esi; > unsigned long ebp; > unsigned long esp; > unsigned long ebx; > unsigned long edx; > unsigned long ecx; > unsigned long eax; > unsigned long trapno; > unsigned long err; > unsigned long eip; > unsigned short cs, __csh; > unsigned long eflags; > unsigned long esp_at_signal; > unsigned short ss, __ssh; > struct _fpstate * fpstate; > unsigned long oldmask; > unsigned long cr2; >}; ># 175 "../sysdeps/unix/sysv/linux/x86/bits/sigcontext.h" >struct _xsave_hdr >{ > __uint64_t xstate_bv; > __uint64_t reserved1[2]; > __uint64_t reserved2[5]; >}; > >struct _ymmh_state >{ > __uint32_t ymmh_space[64]; >}; > >struct _xstate >{ > struct _fpstate fpstate; > struct _xsave_hdr xstate_hdr; > struct _ymmh_state ymmh; >}; ># 333 "../signal/signal.h" 2 > > >extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__ )); > > > > > > ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 343 "../signal/signal.h" 2 > > > > >extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__ )); > ># 1 "../sysdeps/unix/sysv/linux/bits/sigstack.h" 1 ># 25 "../sysdeps/unix/sysv/linux/bits/sigstack.h" >struct sigstack > { > void *ss_sp; > int ss_onstack; > }; > > > >enum >{ > SS_ONSTACK = 1, > > SS_DISABLE > >}; ># 49 "../sysdeps/unix/sysv/linux/bits/sigstack.h" >typedef struct sigaltstack > { > void *ss_sp; > int ss_flags; > size_t ss_size; > } stack_t; ># 350 "../signal/signal.h" 2 > > ># 1 "../sysdeps/unix/sysv/linux/x86/sys/ucontext.h" 1 ># 22 "../sysdeps/unix/sysv/linux/x86/sys/ucontext.h" ># 1 "../include/signal.h" 1 ># 23 "../sysdeps/unix/sysv/linux/x86/sys/ucontext.h" 2 ># 146 "../sysdeps/unix/sysv/linux/x86/sys/ucontext.h" >typedef int greg_t; > > > > > >typedef greg_t gregset_t[19]; > > > >enum >{ > REG_GS = 0, > > REG_FS, > > REG_ES, > > REG_DS, > > REG_EDI, > > REG_ESI, > > REG_EBP, > > REG_ESP, > > REG_EBX, > > REG_EDX, > > REG_ECX, > > REG_EAX, > > REG_TRAPNO, > > REG_ERR, > > REG_EIP, > > REG_CS, > > REG_EFL, > > REG_UESP, > > REG_SS > >}; > > > >struct _libc_fpreg >{ > unsigned short int significand[4]; > unsigned short int exponent; >}; > >struct _libc_fpstate >{ > unsigned long int cw; > unsigned long int sw; > unsigned long int tag; > unsigned long int ipoff; > unsigned long int cssel; > unsigned long int dataoff; > unsigned long int datasel; > struct _libc_fpreg _st[8]; > unsigned long int status; >}; > > >typedef struct _libc_fpstate *fpregset_t; > > >typedef struct > { > gregset_t gregs; > > > fpregset_t fpregs; > unsigned long int oldmask; > unsigned long int cr2; > } mcontext_t; > > >typedef struct ucontext > { > unsigned long int uc_flags; > struct ucontext *uc_link; > stack_t uc_stack; > mcontext_t uc_mcontext; > __sigset_t uc_sigmask; > struct _libc_fpstate __fpregs_mem; > } ucontext_t; ># 353 "../signal/signal.h" 2 > > > > > >extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) > __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); > > > >extern int sigaltstack (const struct sigaltstack *__restrict __ss, > struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__ )); > > > > > > > >extern int sighold (int __sig) __attribute__ ((__nothrow__ )); > > >extern int sigrelse (int __sig) __attribute__ ((__nothrow__ )); > > >extern int sigignore (int __sig) __attribute__ ((__nothrow__ )); > > >extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__ )); > > > > > > ># 1 "../sysdeps/pthread/bits/sigthread.h" 1 ># 30 "../sysdeps/pthread/bits/sigthread.h" >extern int pthread_sigmask (int __how, > const __sigset_t *__restrict __newmask, > __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__ )); > > >extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__ )); > > > >extern int pthread_sigqueue (pthread_t __threadid, int __signo, > const union sigval __value) __attribute__ ((__nothrow__ )); ># 389 "../signal/signal.h" 2 > > > > > > >extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__ )); > >extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__ )); > > > > ># 6 "../include/signal.h" 2 > > > > > > > > > > > > > > >extern __sighandler_t __bsd_signal (int __sig, __sighandler_t __handler); >extern int __kill (__pid_t __pid, int __sig); >extern int __sigaction (int __sig, const struct sigaction *__restrict __act, > struct sigaction *__restrict __oact); > >extern int __sigblock (int __mask); >extern int __sigsetmask (int __mask); >extern int __sigprocmask (int __how, > const sigset_t *__set, sigset_t *__oset); >extern int __sigsuspend (const sigset_t *__set); > > >extern int __sigsuspend_nocancel (const sigset_t *__set) __attribute__ ((visibility ("hidden"))); > >extern int __sigwait (const sigset_t *__set, int *__sig); > >extern int __sigwaitinfo (const sigset_t *__set, siginfo_t *__info); > >extern int __sigtimedwait (const sigset_t *__set, siginfo_t *__info, > const struct timespec *__timeout); > >extern int __sigqueue (__pid_t __pid, int __sig, > const union sigval __val); >extern int __sigvec (int __sig, const struct sigvec *__vec, > struct sigvec *__ovec); >extern int __sigreturn (struct sigcontext *__scp); >extern int __sigaltstack (const struct sigaltstack *__ss, > struct sigaltstack *__oss); >extern int __libc_sigaction (int sig, const struct sigaction *act, > struct sigaction *oact); > > >extern int __sigpause (int sig_or_mask, int is_sig); >extern int __default_sigpause (int mask); >extern int __xpg_sigpause (int sig); ># 63 "../include/signal.h" >extern int __libc_allocate_rtsig (int __high); ># 29 "../misc/sys/param.h" 2 > > ># 1 "../sysdeps/unix/sysv/linux/bits/param.h" 1 ># 28 "../sysdeps/unix/sysv/linux/bits/param.h" ># 1 "/usr/include/linux/param.h" 1 3 4 > > > ># 1 "/usr/include/asm/param.h" 1 3 4 ># 1 "/usr/include/asm-generic/param.h" 1 3 4 ># 1 "/usr/include/asm/param.h" 2 3 4 ># 5 "/usr/include/linux/param.h" 2 3 4 ># 29 "../sysdeps/unix/sysv/linux/bits/param.h" 2 ># 32 "../misc/sys/param.h" 2 ># 1 "../include/sys/param.h" 2 ># 42 "../sysdeps/generic/hp-timing-common.h" 2 ># 1 "../sysdeps/generic/_itoa.h" 1 ># 22 "../sysdeps/generic/_itoa.h" ># 1 "../include/limits.h" 1 ># 143 "../include/limits.h" ># 1 "../include/bits/posix1_lim.h" 1 ># 144 "../include/limits.h" 2 > > > ># 1 "../include/bits/posix2_lim.h" 1 ># 148 "../include/limits.h" 2 ># 23 "../sysdeps/generic/_itoa.h" 2 ># 44 "../sysdeps/generic/_itoa.h" >extern char *_itoa (unsigned long long int value, char *buflim, > unsigned int base, int upper_case); > >extern const char _itoa_upper_digits[]; >extern const char _itoa_lower_digits[]; > >extern __typeof (_itoa_upper_digits) _itoa_upper_digits __asm__ ("" "__GI__itoa_upper_digits") __attribute__ ((visibility ("hidden"))); >extern __typeof (_itoa_lower_digits) _itoa_lower_digits __asm__ ("" "__GI__itoa_lower_digits") __attribute__ ((visibility ("hidden"))); > > > > > > >static inline char * __attribute__ ((unused, always_inline)) >_itoa_word (unsigned long int value, char *buflim, > unsigned int base, int upper_case) >{ > const char *digits = (upper_case > ? _itoa_upper_digits > : _itoa_lower_digits); > > switch (base) > { > > > > > > > > case 10: do *--buflim = digits[value % 10]; while ((value /= 10) != 0); break; > case 16: do *--buflim = digits[value % 16]; while ((value /= 16) != 0); break; > case 8: do *--buflim = digits[value % 8]; while ((value /= 8) != 0); break; > default: > do > *--buflim = digits[value % base]; > while ((value /= base) != 0); > } > return buflim; >} > > > > > >extern char *_fitoa_word (unsigned long int value, char *buf, > unsigned int base, > int upper_case) __attribute__ ((visibility ("hidden"))); >extern char *_fitoa (unsigned long long value, char *buf, unsigned int base, > int upper_case) __attribute__ ((visibility ("hidden"))); ># 43 "../sysdeps/generic/hp-timing-common.h" 2 ># 41 "../sysdeps/i386/i686/hp-timing.h" 2 ># 8 "../include/libc-internal.h" 2 > > >extern void __libc_init_secure (void); > > >extern void __libc_global_ctors (void); > > > >extern int __profile_frequency (void); > > > >extern void __cyg_profile_func_enter (void *this_fn, void *call_site); >extern void __cyg_profile_func_exit (void *this_fn, void *call_site); > > >extern hp_timing_t __get_clockfreq (void); > > >extern void __libc_freeres (void); > > > >extern void __libc_thread_freeres (void); > > >extern void __init_misc (int, char **, char **); ># 30 "../sysdeps/i386/nptl/tls.h" 2 ># 1 "../sysdeps/unix/sysv/linux/i386/kernel-features.h" 1 ># 35 "../sysdeps/unix/sysv/linux/i386/kernel-features.h" ># 1 "../sysdeps/unix/sysv/linux/kernel-features.h" 1 ># 35 "../sysdeps/unix/sysv/linux/i386/kernel-features.h" 2 ># 31 "../sysdeps/i386/nptl/tls.h" 2 > > > >typedef union dtv >{ > size_t counter; > struct > { > void *val; > _Bool is_static; > } pointer; >} dtv_t; > > >typedef struct >{ > void *tcb; > > dtv_t *dtv; > void *self; > int multiple_threads; > uintptr_t sysinfo; > uintptr_t stack_guard; > uintptr_t pointer_guard; > int gscope_flag; > > > > int __glibc_reserved1; > > > void *__private_tm[4]; > > void *__private_ss; >} tcbhead_t; ># 85 "../sysdeps/i386/nptl/tls.h" >struct user_desc >{ > unsigned int entry_number; > unsigned long int base_addr; > unsigned int limit; > unsigned int seg_32bit:1; > unsigned int contents:2; > unsigned int read_exec_only:1; > unsigned int limit_in_pages:1; > unsigned int seg_not_present:1; > unsigned int useable:1; > unsigned int empty:25; >}; > > >union user_desc_init >{ > struct user_desc desc; > unsigned int vals[4]; >}; ># 127 "../sysdeps/i386/nptl/tls.h" ># 1 "../nptl/descr.h" 1 ># 22 "../nptl/descr.h" ># 1 "../include/limits.h" 1 ># 143 "../include/limits.h" ># 1 "../include/bits/posix1_lim.h" 1 ># 144 "../include/limits.h" 2 > > > ># 1 "../include/bits/posix2_lim.h" 1 ># 148 "../include/limits.h" 2 ># 23 "../nptl/descr.h" 2 ># 1 "../include/sched.h" 1 > ># 1 "../posix/sched.h" 1 ># 28 "../posix/sched.h" ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 29 "../posix/sched.h" 2 > > > > > ># 1 "../include/time.h" 1 > > ># 1 "../time/time.h" 1 ># 4 "../include/time.h" 2 ># 35 "../posix/sched.h" 2 ># 43 "../posix/sched.h" ># 1 "../sysdeps/unix/sysv/linux/bits/sched.h" 1 ># 72 "../sysdeps/unix/sysv/linux/bits/sched.h" >struct sched_param > { > int __sched_priority; > }; > > > > > >extern int clone (int (*__fn) (void *__arg), void *__child_stack, > int __flags, void *__arg, ...) __attribute__ ((__nothrow__ )); > > >extern int unshare (int __flags) __attribute__ ((__nothrow__ )); > > >extern int sched_getcpu (void) __attribute__ ((__nothrow__ )); > > >extern int setns (int __fd, int __nstype) __attribute__ ((__nothrow__ )); > > > > > > > > > > > >struct __sched_param > { > int __sched_priority; > }; ># 118 "../sysdeps/unix/sysv/linux/bits/sched.h" >typedef unsigned long int __cpu_mask; > > > > > > >typedef struct >{ > __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; >} cpu_set_t; ># 201 "../sysdeps/unix/sysv/linux/bits/sched.h" > > >extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) > __attribute__ ((__nothrow__ )); >extern cpu_set_t *__sched_cpualloc (size_t __count) __attribute__ ((__nothrow__ )) ; >extern void __sched_cpufree (cpu_set_t *__set) __attribute__ ((__nothrow__ )); > > ># 44 "../posix/sched.h" 2 > > > > > > > >extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) > __attribute__ ((__nothrow__ )); > > >extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__ )); > > >extern int sched_setscheduler (__pid_t __pid, int __policy, > const struct sched_param *__param) __attribute__ ((__nothrow__ )); > > >extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__ )); > > >extern int sched_yield (void) __attribute__ ((__nothrow__ )); > > >extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__ )); > > >extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__ )); > > >extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__ )); ># 118 "../posix/sched.h" >extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, > const cpu_set_t *__cpuset) __attribute__ ((__nothrow__ )); > > >extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, > cpu_set_t *__cpuset) __attribute__ ((__nothrow__ )); > > > ># 3 "../include/sched.h" 2 > > > >extern int __sched_setparam (__pid_t __pid, > const struct sched_param *__param); >extern int __sched_getparam (__pid_t __pid, struct sched_param *__param); >extern int __sched_setscheduler (__pid_t __pid, int __policy, > const struct sched_param *__param); > >extern int __sched_getscheduler (__pid_t __pid); >extern int __sched_yield (void); > >extern int __sched_get_priority_max (int __algorithm); >extern int __sched_get_priority_min (int __algorithm); >extern int __sched_rr_get_interval (__pid_t __pid, struct timespec *__t); > > >extern int __clone (int (*__fn) (void *__arg), void *__child_stack, > int __flags, void *__arg, ...); >extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base, > size_t __child_stack_size, int __flags, void *__arg, ...); ># 24 "../nptl/descr.h" 2 ># 1 "../include/setjmp.h" 1 > ># 1 "../setjmp/setjmp.h" 1 ># 27 "../setjmp/setjmp.h" > > ># 1 "../sysdeps/x86/bits/setjmp.h" 1 ># 26 "../sysdeps/x86/bits/setjmp.h" ># 1 "../sysdeps/x86/bits/wordsize.h" 1 ># 27 "../sysdeps/x86/bits/setjmp.h" 2 ># 35 "../sysdeps/x86/bits/setjmp.h" >typedef int __jmp_buf[6]; ># 30 "../setjmp/setjmp.h" 2 ># 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1 ># 31 "../setjmp/setjmp.h" 2 > > > >struct __jmp_buf_tag > { > > > > > __jmp_buf __jmpbuf; > int __mask_was_saved; > __sigset_t __saved_mask; > }; > > > > >typedef struct __jmp_buf_tag jmp_buf[1]; > > > >extern int setjmp (jmp_buf __env) __attribute__ ((__nothrow__)); > > > > > > >extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __attribute__ ((__nothrow__)); > > > >extern int _setjmp (struct __jmp_buf_tag __env[1]) __attribute__ ((__nothrow__)); > > > > > > > > > > >extern void longjmp (struct __jmp_buf_tag __env[1], int __val) > __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > > > > > >extern void _longjmp (struct __jmp_buf_tag __env[1], int __val) > __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > > > > > >typedef struct __jmp_buf_tag sigjmp_buf[1]; ># 102 "../setjmp/setjmp.h" >extern void siglongjmp (sigjmp_buf __env, int __val) > __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); ># 112 "../setjmp/setjmp.h" > ># 3 "../include/setjmp.h" 2 > > > > > >extern void __longjmp (__jmp_buf __env, int __val) > __attribute__ ((__noreturn__)); > > > > > >extern int __sigjmp_save (jmp_buf __env, int __savemask); > >extern void _longjmp_unwind (jmp_buf env, int val); > >extern void __libc_siglongjmp (sigjmp_buf env, int val) > __attribute__ ((noreturn)); >extern void __libc_longjmp (sigjmp_buf env, int val) > __attribute__ ((noreturn)); > > > > ># 25 "../nptl/descr.h" 2 > ># 1 "../include/sys/types.h" 1 ># 27 "../nptl/descr.h" 2 > > ># 1 "../include/list.h" 1 ># 34 "../include/list.h" >typedef struct list_head >{ > struct list_head *next; > struct list_head *prev; >} list_t; ># 30 "../nptl/descr.h" 2 ># 1 "../sysdeps/unix/sysv/linux/i386/lowlevellock.h" 1 ># 22 "../sysdeps/unix/sysv/linux/i386/lowlevellock.h" ># 1 "../include/stap-probe.h" 1 ># 24 "../include/stap-probe.h" ># 1 "/usr/include/sys/sdt.h" 1 3 4 ># 125 "/usr/include/sys/sdt.h" 3 4 >__extension__ extern unsigned long long __sdt_unsp; ># 167 "/usr/include/sys/sdt.h" 3 4 ># 1 "/usr/include/sys/sdt-config.h" 1 3 4 ># 168 "/usr/include/sys/sdt.h" 2 3 4 ># 25 "../include/stap-probe.h" 2 ># 23 "../sysdeps/unix/sysv/linux/i386/lowlevellock.h" 2 > > ># 1 "../include/time.h" 1 > > > > ># 1 "../time/time.h" 1 ># 29 "../time/time.h" > > > > > > > > ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 38 "../time/time.h" 2 > > > ># 1 "../sysdeps/unix/sysv/linux/bits/time.h" 1 ># 86 "../sysdeps/unix/sysv/linux/bits/time.h" ># 1 "../sysdeps/unix/sysv/linux/bits/timex.h" 1 ># 25 "../sysdeps/unix/sysv/linux/bits/timex.h" >struct timex >{ > unsigned int modes; > __syscall_slong_t offset; > __syscall_slong_t freq; > __syscall_slong_t maxerror; > __syscall_slong_t esterror; > int status; > __syscall_slong_t constant; > __syscall_slong_t precision; > __syscall_slong_t tolerance; > struct timeval time; > __syscall_slong_t tick; > __syscall_slong_t ppsfreq; > __syscall_slong_t jitter; > int shift; > __syscall_slong_t stabil; > __syscall_slong_t jitcnt; > __syscall_slong_t calcnt; > __syscall_slong_t errcnt; > __syscall_slong_t stbcnt; > > int tai; > > > int :32; int :32; int :32; int :32; > int :32; int :32; int :32; int :32; > int :32; int :32; int :32; >}; ># 87 "../sysdeps/unix/sysv/linux/bits/time.h" 2 > > > > >extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __attribute__ ((__nothrow__ )); > > ># 42 "../time/time.h" 2 ># 131 "../time/time.h" > > >struct tm >{ > int tm_sec; > int tm_min; > int tm_hour; > int tm_mday; > int tm_mon; > int tm_year; > int tm_wday; > int tm_yday; > int tm_isdst; > > > long int tm_gmtoff; > const char *tm_zone; > > > > >}; > > > > > > > > >struct itimerspec > { > struct timespec it_interval; > struct timespec it_value; > }; > > >struct sigevent; ># 186 "../time/time.h" > > > >extern clock_t clock (void) __attribute__ ((__nothrow__ )); > > >extern time_t time (time_t *__timer) __attribute__ ((__nothrow__ )); > > >extern double difftime (time_t __time1, time_t __time0) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); > > >extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__ )); > > > > > >extern size_t strftime (char *__restrict __s, size_t __maxsize, > const char *__restrict __format, > const struct tm *__restrict __tp) __attribute__ ((__nothrow__ )); > > > > > >extern char *strptime (const char *__restrict __s, > const char *__restrict __fmt, struct tm *__tp) > __attribute__ ((__nothrow__ )); > > > > > ># 1 "../include/xlocale.h" 1 ># 222 "../time/time.h" 2 > >extern size_t strftime_l (char *__restrict __s, size_t __maxsize, > const char *__restrict __format, > const struct tm *__restrict __tp, > __locale_t __loc) __attribute__ ((__nothrow__ )); > > > >extern char *strptime_l (const char *__restrict __s, > const char *__restrict __fmt, struct tm *__tp, > __locale_t __loc) __attribute__ ((__nothrow__ )); > > > > > > >extern struct tm *gmtime (const time_t *__timer) __attribute__ ((__nothrow__ )); > > > >extern struct tm *localtime (const time_t *__timer) __attribute__ ((__nothrow__ )); > > > > > >extern struct tm *gmtime_r (const time_t *__restrict __timer, > struct tm *__restrict __tp) __attribute__ ((__nothrow__ )); > > > >extern struct tm *localtime_r (const time_t *__restrict __timer, > struct tm *__restrict __tp) __attribute__ ((__nothrow__ )); > > > > > >extern char *asctime (const struct tm *__tp) __attribute__ ((__nothrow__ )); > > >extern char *ctime (const time_t *__timer) __attribute__ ((__nothrow__ )); > > > > > > > >extern char *asctime_r (const struct tm *__restrict __tp, > char *__restrict __buf) __attribute__ ((__nothrow__ )); > > >extern char *ctime_r (const time_t *__restrict __timer, > char *__restrict __buf) __attribute__ ((__nothrow__ )); > > > > >extern char *__tzname[2]; >extern int __daylight; >extern long int __timezone; > > > > >extern char *tzname[2]; > > > >extern void tzset (void) __attribute__ ((__nothrow__ )); > > > >extern int daylight; >extern long int timezone; > > > > > >extern int stime (const time_t *__when) __attribute__ ((__nothrow__ )); ># 319 "../time/time.h" >extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__ )); > > >extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__ )); > > >extern int dysize (int __year) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); ># 334 "../time/time.h" >extern int nanosleep (const struct timespec *__requested_time, > struct timespec *__remaining); > > > >extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__ )); > > >extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__ )); > > >extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) > __attribute__ ((__nothrow__ )); > > > > > > >extern int clock_nanosleep (clockid_t __clock_id, int __flags, > const struct timespec *__req, > struct timespec *__rem); > > >extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__ )); > > > > >extern int timer_create (clockid_t __clock_id, > struct sigevent *__restrict __evp, > timer_t *__restrict __timerid) __attribute__ ((__nothrow__ )); > > >extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__ )); > > >extern int timer_settime (timer_t __timerid, int __flags, > const struct itimerspec *__restrict __value, > struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__ )); > > >extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) > __attribute__ ((__nothrow__ )); > > >extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__ )); > > > > > >extern int timespec_get (struct timespec *__ts, int __base) > __attribute__ ((__nothrow__ )) ; ># 403 "../time/time.h" >extern int getdate_err; ># 412 "../time/time.h" >extern struct tm *getdate (const char *__string); ># 426 "../time/time.h" >extern int getdate_r (const char *__restrict __string, > struct tm *__restrict __resbufp); > > > ># 6 "../include/time.h" 2 ># 1 "../include/xlocale.h" 1 ># 7 "../include/time.h" 2 > > > >extern __typeof (strftime_l) __strftime_l; > >extern __typeof (strptime_l) __strptime_l; > > > > > > > > > >extern __typeof (clock_getres) __clock_getres; >extern __typeof (clock_gettime) __clock_gettime; > >extern __typeof (clock_settime) __clock_settime; >extern __typeof (clock_nanosleep) __clock_nanosleep; >extern __typeof (clock_getcpuclockid) __clock_getcpuclockid; > > >struct tm; > > >extern const unsigned short int __mon_yday[2][13] __attribute__ ((visibility ("hidden"))); > > >extern struct tm _tmbuf __attribute__ ((visibility ("hidden"))); > > >extern char *__tzstring (const char *string); > > >extern size_t __tzname_cur_max __attribute__ ((visibility ("hidden"))); > > >extern int __use_tzfile __attribute__ ((visibility ("hidden"))); > >extern void __tzfile_read (const char *file, size_t extra, > char **extrap); >extern void __tzfile_compute (time_t timer, int use_localtime, > long int *leap_correct, int *leap_hit, > struct tm *tp); >extern void __tzfile_default (const char *std, const char *dst, > long int stdoff, long int dstoff); >extern void __tzset_parse_tz (const char *tz); >extern void __tz_compute (time_t timer, struct tm *tm, int use_localtime) > __attribute__ ((__nothrow__ )) __attribute__ ((regparm (3), stdcall)); > > > > >extern time_t __mktime_internal (struct tm *__tp, > struct tm *(*__func) (const time_t *, > struct tm *), > time_t *__offset); >extern struct tm *__localtime_r (const time_t *__timer, > struct tm *__tp) __attribute__ ((visibility ("hidden"))); > >extern struct tm *__gmtime_r (const time_t *__restrict __timer, > struct tm *__restrict __tp); > > > > > > >extern int __offtime (const time_t *__timer, > long int __offset, > struct tm *__tp); > >extern char *__asctime_r (const struct tm *__tp, char *__buf); >extern void __tzset (void); > > >extern struct tm *__tz_convert (const time_t *timer, int use_localtime, struct tm *tp); > > > >extern long int __tzname_max (void); > >extern int __nanosleep (const struct timespec *__requested_time, > struct timespec *__remaining); > >extern int __nanosleep_nocancel (const struct timespec *__requested_time, > struct timespec *__remaining) > __attribute__ ((visibility ("hidden"))); >extern int __getdate_r (const char *__string, struct tm *__resbufp); > > > >extern int __getclktck (void); > > > >extern char * __strptime_internal (const char *rp, const char *fmt, > struct tm *tm, void *statep, > __locale_t locparam) > __attribute__ ((regparm (3), stdcall)); > >extern double __difftime (time_t time1, time_t time0); > > > > > > > ># 26 "../sysdeps/unix/sysv/linux/i386/lowlevellock.h" 2 ># 1 "../include/sys/param.h" 1 ># 27 "../sysdeps/unix/sysv/linux/i386/lowlevellock.h" 2 > ># 1 "../sysdeps/unix/sysv/linux/i386/kernel-features.h" 1 ># 35 "../sysdeps/unix/sysv/linux/i386/kernel-features.h" ># 1 "../sysdeps/unix/sysv/linux/kernel-features.h" 1 ># 35 "../sysdeps/unix/sysv/linux/i386/kernel-features.h" 2 ># 29 "../sysdeps/unix/sysv/linux/i386/lowlevellock.h" 2 ># 1 "/builddir/build/BUILD/glibc-2.19-883-g7e54fd0/build-i686-redhat-linux/tcb-offsets.h" 1 ># 30 "../sysdeps/unix/sysv/linux/i386/lowlevellock.h" 2 ># 305 "../sysdeps/unix/sysv/linux/i386/lowlevellock.h" >extern int __lll_timedlock_elision (int *futex, short *adapt_count, > const struct timespec *timeout, > int private) __attribute__ ((visibility ("hidden"))); ># 407 "../sysdeps/unix/sysv/linux/i386/lowlevellock.h" >extern int __lll_timedwait_tid (int *tid, const struct timespec *abstime) > __attribute__ ((regparm (2))) __attribute__ ((visibility ("hidden"))); ># 421 "../sysdeps/unix/sysv/linux/i386/lowlevellock.h" >extern int __lll_lock_elision (int *futex, short *adapt_count, int private) > __attribute__ ((visibility ("hidden"))); > >extern int __lll_unlock_elision(int *lock, int private) > __attribute__ ((visibility ("hidden"))); > >extern int __lll_trylock_elision(int *lock, short *adapt_count) > __attribute__ ((visibility ("hidden"))); ># 31 "../nptl/descr.h" 2 ># 1 "../sysdeps/i386/nptl/pthreaddef.h" 1 ># 32 "../nptl/descr.h" 2 > ># 1 "../nptl/../nptl_db/thread_db.h" 1 ># 25 "../nptl/../nptl_db/thread_db.h" ># 1 "../include/pthread.h" 1 ># 1 "../sysdeps/nptl/pthread.h" 1 ># 22 "../sysdeps/nptl/pthread.h" ># 1 "../include/endian.h" 1 ># 23 "../sysdeps/nptl/pthread.h" 2 > > > > > ># 1 "../sysdeps/x86/bits/wordsize.h" 1 ># 29 "../sysdeps/nptl/pthread.h" 2 > > > >enum >{ > PTHREAD_CREATE_JOINABLE, > > PTHREAD_CREATE_DETACHED > >}; > > > >enum >{ > PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_ADAPTIVE_NP > > , > PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL > > > > , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP > >}; > > > > >enum >{ > PTHREAD_MUTEX_STALLED, > PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, > PTHREAD_MUTEX_ROBUST, > PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST >}; > > > > > >enum >{ > PTHREAD_PRIO_NONE, > PTHREAD_PRIO_INHERIT, > PTHREAD_PRIO_PROTECT >}; ># 116 "../sysdeps/nptl/pthread.h" >enum >{ > PTHREAD_RWLOCK_PREFER_READER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, > PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP >}; ># 157 "../sysdeps/nptl/pthread.h" >enum >{ > PTHREAD_INHERIT_SCHED, > > PTHREAD_EXPLICIT_SCHED > >}; > > > >enum >{ > PTHREAD_SCOPE_SYSTEM, > > PTHREAD_SCOPE_PROCESS > >}; > > > >enum >{ > PTHREAD_PROCESS_PRIVATE, > > PTHREAD_PROCESS_SHARED > >}; ># 192 "../sysdeps/nptl/pthread.h" >struct _pthread_cleanup_buffer >{ > void (*__routine) (void *); > void *__arg; > int __canceltype; > struct _pthread_cleanup_buffer *__prev; >}; > > >enum >{ > PTHREAD_CANCEL_ENABLE, > > PTHREAD_CANCEL_DISABLE > >}; >enum >{ > PTHREAD_CANCEL_DEFERRED, > > PTHREAD_CANCEL_ASYNCHRONOUS > >}; ># 230 "../sysdeps/nptl/pthread.h" > > > > > >extern int pthread_create (pthread_t *__restrict __newthread, > const pthread_attr_t *__restrict __attr, > void *(*__start_routine) (void *), > void *__restrict __arg) __attribute__ ((__nothrow__)) ; > > > > > >extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); > > > > > > > >extern int pthread_join (pthread_t __th, void **__thread_return); > > > > >extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __attribute__ ((__nothrow__ )); > > > > > > > >extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, > const struct timespec *__abstime); > > > > > > >extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__ )); > > > >extern pthread_t pthread_self (void) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); > > >extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); > > > > > > > >extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__ )) ; > > >extern int pthread_attr_destroy (pthread_attr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, > int *__detachstate) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, > int __detachstate) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, > size_t *__guardsize) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_attr_setguardsize (pthread_attr_t *__attr, > size_t __guardsize) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, > struct sched_param *__restrict __param) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, > const struct sched_param *__restrict > __param) __attribute__ ((__nothrow__ )) ; > > >extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict > __attr, int *__restrict __policy) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict > __attr, int *__restrict __inherit) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, > int __inherit) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, > int *__restrict __scope) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict > __attr, void **__restrict __stackaddr) > __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); > > > > > >extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, > void *__stackaddr) > __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); > > >extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict > __attr, size_t *__restrict __stacksize) > __attribute__ ((__nothrow__ )) ; > > > > >extern int pthread_attr_setstacksize (pthread_attr_t *__attr, > size_t __stacksize) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, > void **__restrict __stackaddr, > size_t *__restrict __stacksize) > __attribute__ ((__nothrow__ )) ; > > > > >extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, > size_t __stacksize) __attribute__ ((__nothrow__ )) ; > > > > > >extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, > size_t __cpusetsize, > const cpu_set_t *__cpuset) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, > size_t __cpusetsize, > cpu_set_t *__cpuset) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_getattr_default_np (pthread_attr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_setattr_default_np (const pthread_attr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > > > >extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > > > > > > >extern int pthread_setschedparam (pthread_t __target_thread, int __policy, > const struct sched_param *__param) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_getschedparam (pthread_t __target_thread, > int *__restrict __policy, > struct sched_param *__restrict __param) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_setschedprio (pthread_t __target_thread, int __prio) > __attribute__ ((__nothrow__ )); > > > > >extern int pthread_getname_np (pthread_t __target_thread, char *__buf, > size_t __buflen) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_setname_np (pthread_t __target_thread, const char *__name) > __attribute__ ((__nothrow__ )) ; > > > > > >extern int pthread_getconcurrency (void) __attribute__ ((__nothrow__ )); > > >extern int pthread_setconcurrency (int __level) __attribute__ ((__nothrow__ )); > > > > > > > >extern int pthread_yield (void) __attribute__ ((__nothrow__ )); > > > > >extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, > const cpu_set_t *__cpuset) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, > cpu_set_t *__cpuset) > __attribute__ ((__nothrow__ )) ; ># 496 "../sysdeps/nptl/pthread.h" >extern int pthread_once (pthread_once_t *__once_control, > void (*__init_routine) (void)) ; ># 508 "../sysdeps/nptl/pthread.h" >extern int pthread_setcancelstate (int __state, int *__oldstate); > > > >extern int pthread_setcanceltype (int __type, int *__oldtype); > > >extern int pthread_cancel (pthread_t __th); > > > > >extern void pthread_testcancel (void); > > > > >typedef struct >{ > struct > { > __jmp_buf __cancel_jmp_buf; > int __mask_was_saved; > } __cancel_jmp_buf[1]; > void *__pad[4]; >} __pthread_unwind_buf_t __attribute__ ((__aligned__)); ># 542 "../sysdeps/nptl/pthread.h" >struct __pthread_cleanup_frame >{ > void (*__cancel_routine) (void *); > void *__cancel_arg; > int __do_it; > int __cancel_type; >}; ># 682 "../sysdeps/nptl/pthread.h" >extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf) > __attribute__ ((__regparm__ (1))); ># 694 "../sysdeps/nptl/pthread.h" >extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf) > __attribute__ ((__regparm__ (1))); ># 717 "../sysdeps/nptl/pthread.h" >extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf) > __attribute__ ((__regparm__ (1))); ># 730 "../sysdeps/nptl/pthread.h" >extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf) > __attribute__ ((__regparm__ (1))); > > > >extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf) > __attribute__ ((__regparm__ (1))) __attribute__ ((__noreturn__)) > > > > ; > > > >struct __jmp_buf_tag; >extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __attribute__ ((__nothrow__)); > > > > > >extern int pthread_mutex_init (pthread_mutex_t *__mutex, > const pthread_mutexattr_t *__mutexattr) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__)) ; > > >extern int pthread_mutex_lock (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__)) ; > > > >extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, > const struct timespec *__restrict > __abstime) __attribute__ ((__nothrow__)) ; > > > >extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__)) ; > > > >extern int pthread_mutex_getprioceiling (const pthread_mutex_t * > __restrict __mutex, > int *__restrict __prioceiling) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, > int __prioceiling, > int *__restrict __old_ceiling) > __attribute__ ((__nothrow__ )) ; > > > > >extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__ )) ; > >extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__ )) ; ># 808 "../sysdeps/nptl/pthread.h" >extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __pshared) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, > int __pshared) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict > __attr, int *__restrict __kind) > __attribute__ ((__nothrow__ )) ; > > > > >extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __protocol) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, > int __protocol) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __prioceiling) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, > int __prioceiling) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, > int *__robustness) > __attribute__ ((__nothrow__ )) ; > >extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, > int *__robustness) > __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, > int __robustness) > __attribute__ ((__nothrow__ )) ; > >extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, > int __robustness) > __attribute__ ((__nothrow__ )) ; ># 890 "../sysdeps/nptl/pthread.h" >extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, > const pthread_rwlockattr_t *__restrict > __attr) __attribute__ ((__nothrow__ )) ; > > >extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__)) ; > > >extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__)) ; > > > >extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, > const struct timespec *__restrict > __abstime) __attribute__ ((__nothrow__)) ; > > > >extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__)) ; > > >extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__)) ; > > > >extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, > const struct timespec *__restrict > __abstime) __attribute__ ((__nothrow__)) ; > > > >extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__)) ; > > > > > >extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * > __restrict __attr, > int *__restrict __pshared) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, > int __pshared) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * > __restrict __attr, > int *__restrict __pref) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, > int __pref) __attribute__ ((__nothrow__ )) ; > > > > > > > >extern int pthread_cond_init (pthread_cond_t *__restrict __cond, > const pthread_condattr_t *__restrict __cond_attr) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_cond_destroy (pthread_cond_t *__cond) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_cond_signal (pthread_cond_t *__cond) > __attribute__ ((__nothrow__)) ; > > >extern int pthread_cond_broadcast (pthread_cond_t *__cond) > __attribute__ ((__nothrow__)) ; > > > > > > >extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex) > ; ># 1002 "../sysdeps/nptl/pthread.h" >extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex, > const struct timespec *__restrict __abstime) > ; > > > > >extern int pthread_condattr_init (pthread_condattr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_condattr_destroy (pthread_condattr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_condattr_getpshared (const pthread_condattr_t * > __restrict __attr, > int *__restrict __pshared) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, > int __pshared) __attribute__ ((__nothrow__ )) ; > > > >extern int pthread_condattr_getclock (const pthread_condattr_t * > __restrict __attr, > __clockid_t *__restrict __clock_id) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_condattr_setclock (pthread_condattr_t *__attr, > __clockid_t __clock_id) > __attribute__ ((__nothrow__ )) ; ># 1046 "../sysdeps/nptl/pthread.h" >extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_spin_destroy (pthread_spinlock_t *__lock) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_spin_lock (pthread_spinlock_t *__lock) > __attribute__ ((__nothrow__)) ; > > >extern int pthread_spin_trylock (pthread_spinlock_t *__lock) > __attribute__ ((__nothrow__)) ; > > >extern int pthread_spin_unlock (pthread_spinlock_t *__lock) > __attribute__ ((__nothrow__)) ; > > > > > > >extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, > const pthread_barrierattr_t *__restrict > __attr, unsigned int __count) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_barrier_wait (pthread_barrier_t *__barrier) > __attribute__ ((__nothrow__)) ; > > > >extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * > __restrict __attr, > int *__restrict __pshared) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, > int __pshared) > __attribute__ ((__nothrow__ )) ; ># 1113 "../sysdeps/nptl/pthread.h" >extern int pthread_key_create (pthread_key_t *__key, > void (*__destr_function) (void *)) > __attribute__ ((__nothrow__ )) ; > > >extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__ )); > > >extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__ )); > > >extern int pthread_setspecific (pthread_key_t __key, > const void *__pointer) __attribute__ ((__nothrow__ )) ; > > > > >extern int pthread_getcpuclockid (pthread_t __thread_id, > __clockid_t *__clock_id) > __attribute__ ((__nothrow__ )) ; ># 1147 "../sysdeps/nptl/pthread.h" >extern int pthread_atfork (void (*__prepare) (void), > void (*__parent) (void), > void (*__child) (void)) __attribute__ ((__nothrow__ )); > > > > >extern __inline int >__attribute__ ((__nothrow__ )) pthread_equal (pthread_t __thread1, pthread_t __thread2) >{ > return __thread1 == __thread2; >} > > > ># 2 "../include/pthread.h" 2 > > > >extern void __pthread_initialize (void) __attribute__ ((weak)); ># 26 "../nptl/../nptl_db/thread_db.h" 2 > ># 1 "../include/sys/types.h" 1 ># 28 "../nptl/../nptl_db/thread_db.h" 2 ># 1 "../sysdeps/unix/sysv/linux/x86/sys/procfs.h" 1 ># 31 "../sysdeps/unix/sysv/linux/x86/sys/procfs.h" ># 1 "../include/sys/time.h" 1 ># 20 "../include/sys/time.h" ># 1 "../time/sys/time.h" 1 ># 27 "../time/sys/time.h" ># 1 "../sysdeps/unix/sysv/linux/bits/time.h" 1 ># 28 "../time/sys/time.h" 2 ># 37 "../time/sys/time.h" > ># 55 "../time/sys/time.h" >struct timezone > { > int tz_minuteswest; > int tz_dsttime; > }; > >typedef struct timezone *__restrict __timezone_ptr_t; ># 71 "../time/sys/time.h" >extern int gettimeofday (struct timeval *__restrict __tv, > __timezone_ptr_t __tz) __attribute__ ((__nothrow__ )) ; > > > > >extern int settimeofday (const struct timeval *__tv, > const struct timezone *__tz) > __attribute__ ((__nothrow__ )); > > > > > >extern int adjtime (const struct timeval *__delta, > struct timeval *__olddelta) __attribute__ ((__nothrow__ )); > > > > >enum __itimer_which > { > > ITIMER_REAL = 0, > > > ITIMER_VIRTUAL = 1, > > > > ITIMER_PROF = 2 > > }; > > > >struct itimerval > { > > struct timeval it_interval; > > struct timeval it_value; > }; > > > > >typedef enum __itimer_which __itimer_which_t; > > > > > > >extern int getitimer (__itimer_which_t __which, > struct itimerval *__value) __attribute__ ((__nothrow__ )); > > > > >extern int setitimer (__itimer_which_t __which, > const struct itimerval *__restrict __new, > struct itimerval *__restrict __old) __attribute__ ((__nothrow__ )); > > > > >extern int utimes (const char *__file, const struct timeval __tvp[2]) > __attribute__ ((__nothrow__ )) ; > > > >extern int lutimes (const char *__file, const struct timeval __tvp[2]) > __attribute__ ((__nothrow__ )) ; > > >extern int futimes (int __fd, const struct timeval __tvp[2]) __attribute__ ((__nothrow__ )); > > > > > > >extern int futimesat (int __fd, const char *__file, > const struct timeval __tvp[2]) __attribute__ ((__nothrow__ )); ># 189 "../time/sys/time.h" > ># 21 "../include/sys/time.h" 2 > > >extern int __gettimeofday (struct timeval *__tv, > struct timezone *__tz); > > >extern int __settimeofday (const struct timeval *__tv, > const struct timezone *__tz) > __attribute__ ((visibility ("hidden"))); >extern int __adjtime (const struct timeval *__delta, > struct timeval *__olddelta); >extern int __getitimer (enum __itimer_which __which, > struct itimerval *__value); >extern int __setitimer (enum __itimer_which __which, > const struct itimerval *__restrict __new, > struct itimerval *__restrict __old) > __attribute__ ((visibility ("hidden"))); >extern int __utimes (const char *__file, const struct timeval __tvp[2]) > __attribute__ ((visibility ("hidden"))); >extern int __futimes (int fd, const struct timeval tvp[2]) __attribute__ ((visibility ("hidden"))); ># 32 "../sysdeps/unix/sysv/linux/x86/sys/procfs.h" 2 ># 1 "../include/sys/types.h" 1 ># 33 "../sysdeps/unix/sysv/linux/x86/sys/procfs.h" 2 ># 1 "../sysdeps/unix/sysv/linux/x86/sys/user.h" 1 ># 102 "../sysdeps/unix/sysv/linux/x86/sys/user.h" >struct user_fpregs_struct >{ > long int cwd; > long int swd; > long int twd; > long int fip; > long int fcs; > long int foo; > long int fos; > long int st_space [20]; >}; > >struct user_fpxregs_struct >{ > unsigned short int cwd; > unsigned short int swd; > unsigned short int twd; > unsigned short int fop; > long int fip; > long int fcs; > long int foo; > long int fos; > long int mxcsr; > long int reserved; > long int st_space[32]; > long int xmm_space[32]; > long int padding[56]; >}; > >struct user_regs_struct >{ > long int ebx; > long int ecx; > long int edx; > long int esi; > long int edi; > long int ebp; > long int eax; > long int xds; > long int xes; > long int xfs; > long int xgs; > long int orig_eax; > long int eip; > long int xcs; > long int eflags; > long int esp; > long int xss; >}; > >struct user >{ > struct user_regs_struct regs; > int u_fpvalid; > struct user_fpregs_struct i387; > unsigned long int u_tsize; > unsigned long int u_dsize; > unsigned long int u_ssize; > unsigned long int start_code; > unsigned long int start_stack; > long int signal; > int reserved; > struct user_regs_struct* u_ar0; > struct user_fpregs_struct* u_fpstate; > unsigned long int magic; > char u_comm [32]; > int u_debugreg [8]; >}; ># 34 "../sysdeps/unix/sysv/linux/x86/sys/procfs.h" 2 > > > > > > > >typedef unsigned long elf_greg_t; > > > > > > > >typedef elf_greg_t elf_gregset_t[(sizeof (struct user_regs_struct) / sizeof(elf_greg_t))]; > > > >typedef struct user_fpregs_struct elf_fpregset_t; > > > > >typedef struct user_fpxregs_struct elf_fpxregset_t; ># 67 "../sysdeps/unix/sysv/linux/x86/sys/procfs.h" >struct elf_siginfo > { > int si_signo; > int si_code; > int si_errno; > }; ># 82 "../sysdeps/unix/sysv/linux/x86/sys/procfs.h" >struct elf_prstatus > { > struct elf_siginfo pr_info; > short int pr_cursig; > unsigned long int pr_sigpend; > unsigned long int pr_sighold; > __pid_t pr_pid; > __pid_t pr_ppid; > __pid_t pr_pgrp; > __pid_t pr_sid; > struct timeval pr_utime; > struct timeval pr_stime; > struct timeval pr_cutime; > struct timeval pr_cstime; > elf_gregset_t pr_reg; > int pr_fpvalid; > }; > > > > >struct elf_prpsinfo > { > char pr_state; > char pr_sname; > char pr_zomb; > char pr_nice; > unsigned long int pr_flag; > > unsigned short int pr_uid; > unsigned short int pr_gid; > > > > > int pr_pid, pr_ppid, pr_pgrp, pr_sid; > > char pr_fname[16]; > char pr_psargs[(80)]; > }; > > > > > > > >typedef void *psaddr_t; > > >typedef elf_gregset_t prgregset_t; >typedef elf_fpregset_t prfpregset_t; > > > >typedef __pid_t lwpid_t; > > >typedef struct elf_prstatus prstatus_t; >typedef struct elf_prpsinfo prpsinfo_t; > > ># 29 "../nptl/../nptl_db/thread_db.h" 2 > > > >typedef enum >{ > TD_OK, > TD_ERR, > TD_NOTHR, > TD_NOSV, > TD_NOLWP, > TD_BADPH, > TD_BADTH, > TD_BADSH, > TD_BADTA, > TD_BADKEY, > TD_NOMSG, > TD_NOFPREGS, > TD_NOLIBTHREAD, > TD_NOEVENT, > TD_NOCAPAB, > TD_DBERR, > TD_NOAPLIC, > TD_NOTSD, > TD_MALLOC, > TD_PARTIALREG, > TD_NOXREGS, > TD_TLSDEFER, > TD_NOTALLOC = TD_TLSDEFER, > TD_VERSION, > TD_NOTLS >} td_err_e; > > > > >typedef enum >{ > TD_THR_ANY_STATE, > TD_THR_UNKNOWN, > TD_THR_STOPPED, > TD_THR_RUN, > TD_THR_ACTIVE, > TD_THR_ZOMBIE, > TD_THR_SLEEP, > TD_THR_STOPPED_ASLEEP >} td_thr_state_e; > > > >typedef enum >{ > TD_THR_ANY_TYPE, > TD_THR_USER, > TD_THR_SYSTEM >} td_thr_type_e; > > > > > >typedef struct td_thragent td_thragent_t; > > >typedef struct td_thrhandle >{ > td_thragent_t *th_ta_p; > psaddr_t th_unique; >} td_thrhandle_t; > > > >struct link_map; ># 115 "../nptl/../nptl_db/thread_db.h" >typedef struct td_thr_events >{ > uint32_t event_bits[2]; >} td_thr_events_t; ># 154 "../nptl/../nptl_db/thread_db.h" >typedef enum >{ > TD_ALL_EVENTS, > TD_EVENT_NONE = TD_ALL_EVENTS, > TD_READY, > TD_SLEEP, > TD_SWITCHTO, > TD_SWITCHFROM, > TD_LOCK_TRY, > TD_CATCHSIG, > TD_IDLE, > TD_CREATE, > TD_DEATH, > TD_PREEMPT, > TD_PRI_INHERIT, > TD_REAP, > TD_CONCURRENCY, > TD_TIMEOUT, > TD_MIN_EVENT_NUM = TD_READY, > TD_MAX_EVENT_NUM = TD_TIMEOUT, > TD_EVENTS_ENABLE = 31 >} td_event_e; > > >typedef enum >{ > NOTIFY_BPT, > NOTIFY_AUTOBPT, > > NOTIFY_SYSCALL >} td_notify_e; > > >typedef struct td_notify >{ > td_notify_e type; > union > { > psaddr_t bptaddr; > int syscallno; > } u; >} td_notify_t; > > >typedef struct td_event_msg >{ > td_event_e event; > const td_thrhandle_t *th_p; > union > { > > > > uintptr_t data; > } msg; >} td_event_msg_t; > > >typedef struct >{ > td_thr_events_t eventmask; > td_event_e eventnum; > void *eventdata; >} td_eventbuf_t; > > > >typedef struct td_ta_stats >{ > int nthreads; > int r_concurrency; > int nrunnable_num; > int nrunnable_den; > int a_concurrency_num; > int a_concurrency_den; > int nlwps_num; > > int nlwps_den; > > int nidle_num; > > int nidle_den; > >} td_ta_stats_t; > > > > >typedef pthread_t thread_t; >typedef pthread_key_t thread_key_t; > > > >typedef int td_thr_iter_f (const td_thrhandle_t *, void *); > > >typedef int td_key_iter_f (thread_key_t, void (*) (void *), void *); > > > > >struct ps_prochandle; > > > >typedef struct td_thrinfo >{ > td_thragent_t *ti_ta_p; > unsigned int ti_user_flags; > thread_t ti_tid; > > char *ti_tls; > psaddr_t ti_startfunc; > > psaddr_t ti_stkbase; > long int ti_stksize; > psaddr_t ti_ro_area; > int ti_ro_size; > td_thr_state_e ti_state; > unsigned char ti_db_suspended; > td_thr_type_e ti_type; > > intptr_t ti_pc; > intptr_t ti_sp; > short int ti_flags; > int ti_pri; > lwpid_t ti_lid; > sigset_t ti_sigmask; > unsigned char ti_traceme; > > unsigned char ti_preemptflag; > unsigned char ti_pirecflag; > sigset_t ti_pending; > td_thr_events_t ti_events; >} td_thrinfo_t; > > > > > > >extern td_err_e td_init (void); > > >extern td_err_e td_log (void); > > >extern const char **td_symbol_list (void); > > >extern td_err_e td_ta_new (struct ps_prochandle *__ps, td_thragent_t **__ta); > > >extern td_err_e td_ta_delete (td_thragent_t *__ta); > > >extern td_err_e td_ta_get_nthreads (const td_thragent_t *__ta, int *__np); > > > >extern td_err_e td_ta_get_ph (const td_thragent_t *__ta, > struct ps_prochandle **__ph); > > > >extern td_err_e td_ta_map_id2thr (const td_thragent_t *__ta, pthread_t __pt, > td_thrhandle_t *__th); > > > >extern td_err_e td_ta_map_lwp2thr (const td_thragent_t *__ta, lwpid_t __lwpid, > td_thrhandle_t *__th); > > > > >extern td_err_e td_ta_thr_iter (const td_thragent_t *__ta, > td_thr_iter_f *__callback, void *__cbdata_p, > td_thr_state_e __state, int __ti_pri, > sigset_t *__ti_sigmask_p, > unsigned int __ti_user_flags); > > >extern td_err_e td_ta_tsd_iter (const td_thragent_t *__ta, td_key_iter_f *__ki, > void *__p); > > > >extern td_err_e td_ta_event_addr (const td_thragent_t *__ta, > td_event_e __event, td_notify_t *__ptr); > > >extern td_err_e td_ta_set_event (const td_thragent_t *__ta, > td_thr_events_t *__event); > > >extern td_err_e td_ta_clear_event (const td_thragent_t *__ta, > td_thr_events_t *__event); > > >extern td_err_e td_ta_event_getmsg (const td_thragent_t *__ta, > td_event_msg_t *__msg); > > > >extern td_err_e td_ta_setconcurrency (const td_thragent_t *__ta, int __level); > > > >extern td_err_e td_ta_enable_stats (const td_thragent_t *__ta, int __enable); > > >extern td_err_e td_ta_reset_stats (const td_thragent_t *__ta); > > >extern td_err_e td_ta_get_stats (const td_thragent_t *__ta, > td_ta_stats_t *__statsp); > > > >extern td_err_e td_thr_validate (const td_thrhandle_t *__th); > > >extern td_err_e td_thr_get_info (const td_thrhandle_t *__th, > td_thrinfo_t *__infop); > > >extern td_err_e td_thr_getfpregs (const td_thrhandle_t *__th, > prfpregset_t *__regset); > > >extern td_err_e td_thr_getgregs (const td_thrhandle_t *__th, > prgregset_t __gregs); > > >extern td_err_e td_thr_getxregs (const td_thrhandle_t *__th, void *__xregs); > > >extern td_err_e td_thr_getxregsize (const td_thrhandle_t *__th, int *__sizep); > > >extern td_err_e td_thr_setfpregs (const td_thrhandle_t *__th, > const prfpregset_t *__fpregs); > > >extern td_err_e td_thr_setgregs (const td_thrhandle_t *__th, > prgregset_t __gregs); > > >extern td_err_e td_thr_setxregs (const td_thrhandle_t *__th, > const void *__addr); > > > >extern td_err_e td_thr_tlsbase (const td_thrhandle_t *__th, > unsigned long int __modid, > psaddr_t *__base); > > >extern td_err_e td_thr_tls_get_addr (const td_thrhandle_t *__th, > psaddr_t __map_address, size_t __offset, > psaddr_t *__address); > > > >extern td_err_e td_thr_event_enable (const td_thrhandle_t *__th, int __event); > > >extern td_err_e td_thr_set_event (const td_thrhandle_t *__th, > td_thr_events_t *__event); > > >extern td_err_e td_thr_clear_event (const td_thrhandle_t *__th, > td_thr_events_t *__event); > > >extern td_err_e td_thr_event_getmsg (const td_thrhandle_t *__th, > td_event_msg_t *__msg); > > > >extern td_err_e td_thr_setprio (const td_thrhandle_t *__th, int __prio); > > > >extern td_err_e td_thr_setsigpending (const td_thrhandle_t *__th, > unsigned char __n, const sigset_t *__ss); > > >extern td_err_e td_thr_sigsetmask (const td_thrhandle_t *__th, > const sigset_t *__ss); > > > >extern td_err_e td_thr_tsd (const td_thrhandle_t *__th, > const thread_key_t __tk, void **__data); > > > >extern td_err_e td_thr_dbsuspend (const td_thrhandle_t *__th); > > >extern td_err_e td_thr_dbresume (const td_thrhandle_t *__th); ># 34 "../nptl/descr.h" 2 > > ># 1 "../sysdeps/generic/unwind.h" 1 ># 34 "../sysdeps/generic/unwind.h" >typedef unsigned _Unwind_Word __attribute__((__mode__(__word__))); >typedef signed _Unwind_Sword __attribute__((__mode__(__word__))); > > > >typedef unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__))); > >typedef unsigned _Unwind_Internal_Ptr __attribute__((__mode__(__pointer__))); > > > > > >typedef unsigned _Unwind_Exception_Class __attribute__((__mode__(__DI__))); > > > >typedef enum >{ > _URC_NO_REASON = 0, > _URC_FOREIGN_EXCEPTION_CAUGHT = 1, > _URC_FATAL_PHASE2_ERROR = 2, > _URC_FATAL_PHASE1_ERROR = 3, > _URC_NORMAL_STOP = 4, > _URC_END_OF_STACK = 5, > _URC_HANDLER_FOUND = 6, > _URC_INSTALL_CONTEXT = 7, > _URC_CONTINUE_UNWIND = 8 >} _Unwind_Reason_Code; ># 71 "../sysdeps/generic/unwind.h" >struct _Unwind_Exception; > >typedef void (*_Unwind_Exception_Cleanup_Fn) (_Unwind_Reason_Code, > struct _Unwind_Exception *); > >struct _Unwind_Exception >{ > _Unwind_Exception_Class exception_class; > _Unwind_Exception_Cleanup_Fn exception_cleanup; > _Unwind_Word private_1; > _Unwind_Word private_2; > > > > >} __attribute__((__aligned__)); > > > > >typedef int _Unwind_Action; ># 103 "../sysdeps/generic/unwind.h" >struct _Unwind_Context; > > >extern _Unwind_Reason_Code _Unwind_RaiseException (struct _Unwind_Exception *); > > > >typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn) > (int, _Unwind_Action, _Unwind_Exception_Class, > struct _Unwind_Exception *, struct _Unwind_Context *, void *); > >extern _Unwind_Reason_Code _Unwind_ForcedUnwind (struct _Unwind_Exception *, > _Unwind_Stop_Fn, > void *); > > >extern void _Unwind_DeleteException (struct _Unwind_Exception *); > > > >extern void _Unwind_Resume (struct _Unwind_Exception *); > > > > >typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn) > (struct _Unwind_Context *, void *); > >extern _Unwind_Reason_Code _Unwind_Backtrace (_Unwind_Trace_Fn, void *); > > > > > > >extern _Unwind_Word _Unwind_GetGR (struct _Unwind_Context *, int); >extern void _Unwind_SetGR (struct _Unwind_Context *, int, _Unwind_Word); > >extern _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *); >extern void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr); > > >extern _Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *); > >extern void *_Unwind_GetLanguageSpecificData (struct _Unwind_Context *); > >extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *); ># 166 "../sysdeps/generic/unwind.h" >typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn) > (int, _Unwind_Action, _Unwind_Exception_Class, > struct _Unwind_Exception *, struct _Unwind_Context *); > > > > >struct SjLj_Function_Context; >extern void _Unwind_SjLj_Register (struct SjLj_Function_Context *); >extern void _Unwind_SjLj_Unregister (struct SjLj_Function_Context *); > >extern _Unwind_Reason_Code _Unwind_SjLj_RaiseException > (struct _Unwind_Exception *); >extern _Unwind_Reason_Code _Unwind_SjLj_ForcedUnwind > (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *); >extern void _Unwind_SjLj_Resume (struct _Unwind_Exception *); ># 207 "../sysdeps/generic/unwind.h" >extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *); >extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *); > > > > >extern void * _Unwind_FindEnclosingFunction (void *pc); ># 37 "../nptl/descr.h" 2 > > ># 1 "../include/resolv.h" 1 ># 12 "../include/resolv.h" ># 1 "../resolv/resolv.h" 1 ># 56 "../resolv/resolv.h" ># 1 "../include/sys/types.h" 1 ># 57 "../resolv/resolv.h" 2 ># 1 "../include/netinet/in.h" 1 > > ># 1 "../inet/netinet/in.h" 1 ># 23 "../inet/netinet/in.h" ># 1 "../include/sys/socket.h" 1 > ># 1 "../socket/sys/socket.h" 1 ># 24 "../socket/sys/socket.h" > > ># 1 "../include/sys/uio.h" 1 > ># 1 "../misc/sys/uio.h" 1 ># 23 "../misc/sys/uio.h" ># 1 "../include/sys/types.h" 1 ># 24 "../misc/sys/uio.h" 2 > > > > ># 1 "../sysdeps/unix/sysv/linux/bits/uio.h" 1 ># 25 "../sysdeps/unix/sysv/linux/bits/uio.h" ># 1 "../include/sys/types.h" 1 ># 26 "../sysdeps/unix/sysv/linux/bits/uio.h" 2 ># 43 "../sysdeps/unix/sysv/linux/bits/uio.h" >struct iovec > { > void *iov_base; > size_t iov_len; > }; ># 56 "../sysdeps/unix/sysv/linux/bits/uio.h" > > > >extern ssize_t process_vm_readv (pid_t __pid, const struct iovec *__lvec, > unsigned long int __liovcnt, > const struct iovec *__rvec, > unsigned long int __riovcnt, > unsigned long int __flags) > __attribute__ ((__nothrow__ )); > > >extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec, > unsigned long int __liovcnt, > const struct iovec *__rvec, > unsigned long int __riovcnt, > unsigned long int __flags) > __attribute__ ((__nothrow__ )); > > ># 29 "../misc/sys/uio.h" 2 ># 39 "../misc/sys/uio.h" >extern ssize_t readv (int __fd, const struct iovec *__iovec, int __count) > ; ># 50 "../misc/sys/uio.h" >extern ssize_t writev (int __fd, const struct iovec *__iovec, int __count) > ; ># 65 "../misc/sys/uio.h" >extern ssize_t preadv (int __fd, const struct iovec *__iovec, int __count, > __off_t __offset) ; ># 77 "../misc/sys/uio.h" >extern ssize_t pwritev (int __fd, const struct iovec *__iovec, int __count, > __off_t __offset) ; ># 103 "../misc/sys/uio.h" >extern ssize_t preadv64 (int __fd, const struct iovec *__iovec, int __count, > __off64_t __offset) ; ># 115 "../misc/sys/uio.h" >extern ssize_t pwritev64 (int __fd, const struct iovec *__iovec, int __count, > __off64_t __offset) ; > > > > ># 3 "../include/sys/uio.h" 2 > > > >extern ssize_t __readv (int __fd, const struct iovec *__iovec, > int __count); >extern ssize_t __libc_readv (int __fd, const struct iovec *__iovec, > int __count); >extern ssize_t __writev (int __fd, const struct iovec *__iovec, > int __count); >extern ssize_t __libc_writev (int __fd, const struct iovec *__iovec, > int __count); ># 27 "../socket/sys/socket.h" 2 > ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 29 "../socket/sys/socket.h" 2 > > ># 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1 ># 32 "../socket/sys/socket.h" 2 > > > > > > ># 1 "../sysdeps/unix/sysv/linux/bits/socket.h" 1 ># 27 "../sysdeps/unix/sysv/linux/bits/socket.h" ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 28 "../sysdeps/unix/sysv/linux/bits/socket.h" 2 > ># 1 "../include/sys/types.h" 1 ># 30 "../sysdeps/unix/sysv/linux/bits/socket.h" 2 > > > >typedef __socklen_t socklen_t; > > > > ># 1 "../sysdeps/unix/sysv/linux/bits/socket_type.h" 1 ># 24 "../sysdeps/unix/sysv/linux/bits/socket_type.h" >enum __socket_type >{ > SOCK_STREAM = 1, > > > SOCK_DGRAM = 2, > > > SOCK_RAW = 3, > > SOCK_RDM = 4, > > SOCK_SEQPACKET = 5, > > > SOCK_DCCP = 6, > > SOCK_PACKET = 10, > > > > > > > > SOCK_CLOEXEC = 02000000, > > > SOCK_NONBLOCK = 00004000 > > >}; ># 39 "../sysdeps/unix/sysv/linux/bits/socket.h" 2 ># 146 "../sysdeps/unix/sysv/linux/bits/socket.h" ># 1 "../bits/sockaddr.h" 1 ># 28 "../bits/sockaddr.h" >typedef unsigned short int sa_family_t; ># 147 "../sysdeps/unix/sysv/linux/bits/socket.h" 2 > > >struct sockaddr > { > sa_family_t sa_family; > char sa_data[14]; > }; ># 162 "../sysdeps/unix/sysv/linux/bits/socket.h" >struct sockaddr_storage > { > sa_family_t ss_family; > unsigned long int __ss_align; > char __ss_padding[(128 - (2 * sizeof (unsigned long int)))]; > }; > > > >enum > { > MSG_OOB = 0x01, > > MSG_PEEK = 0x02, > > MSG_DONTROUTE = 0x04, > > > > MSG_TRYHARD = MSG_DONTROUTE, > > > MSG_CTRUNC = 0x08, > > MSG_PROXY = 0x10, > > MSG_TRUNC = 0x20, > > MSG_DONTWAIT = 0x40, > > MSG_EOR = 0x80, > > MSG_WAITALL = 0x100, > > MSG_FIN = 0x200, > > MSG_SYN = 0x400, > > MSG_CONFIRM = 0x800, > > MSG_RST = 0x1000, > > MSG_ERRQUEUE = 0x2000, > > MSG_NOSIGNAL = 0x4000, > > MSG_MORE = 0x8000, > > MSG_WAITFORONE = 0x10000, > > MSG_FASTOPEN = 0x20000000, > > > MSG_CMSG_CLOEXEC = 0x40000000 > > > > }; > > > > >struct msghdr > { > void *msg_name; > socklen_t msg_namelen; > > struct iovec *msg_iov; > size_t msg_iovlen; > > void *msg_control; > size_t msg_controllen; > > > > > int msg_flags; > }; > > >struct cmsghdr > { > size_t cmsg_len; > > > > > int cmsg_level; > int cmsg_type; > > __extension__ unsigned char __cmsg_data []; > > }; ># 272 "../sysdeps/unix/sysv/linux/bits/socket.h" >extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, > struct cmsghdr *__cmsg) __attribute__ ((__nothrow__ )); > > > > >extern __inline struct cmsghdr * >__attribute__ ((__nothrow__ )) __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) >{ > if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) > > return (struct cmsghdr *) 0; > > __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg > + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))); > if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control > + __mhdr->msg_controllen) > || ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)) > > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) > > return (struct cmsghdr *) 0; > return __cmsg; >} > > > > >enum > { > SCM_RIGHTS = 0x01 > > > , SCM_CREDENTIALS = 0x02 > > > }; > > > >struct ucred >{ > pid_t pid; > uid_t uid; > gid_t gid; >}; ># 345 "../sysdeps/unix/sysv/linux/bits/socket.h" ># 1 "/usr/include/asm/socket.h" 1 3 4 ># 1 "/usr/include/asm-generic/socket.h" 1 3 4 > > > ># 1 "/usr/include/asm/sockios.h" 1 3 4 ># 1 "/usr/include/asm-generic/sockios.h" 1 3 4 ># 1 "/usr/include/asm/sockios.h" 2 3 4 ># 5 "/usr/include/asm-generic/socket.h" 2 3 4 ># 1 "/usr/include/asm/socket.h" 2 3 4 ># 346 "../sysdeps/unix/sysv/linux/bits/socket.h" 2 ># 379 "../sysdeps/unix/sysv/linux/bits/socket.h" >struct linger > { > int l_onoff; > int l_linger; > }; ># 39 "../socket/sys/socket.h" 2 > > > > >struct osockaddr > { > unsigned short int sa_family; > unsigned char sa_data[14]; > }; > > > > >enum >{ > SHUT_RD = 0, > > SHUT_WR, > > SHUT_RDWR > >}; ># 90 "../socket/sys/socket.h" >typedef union { struct sockaddr *__restrict __sockaddr__; struct sockaddr_at *__restrict __sockaddr_at__; struct sockaddr_ax25 *__restrict __sockaddr_ax25__; struct sockaddr_dl *__restrict __sockaddr_dl__; struct sockaddr_eon *__restrict __sockaddr_eon__; struct sockaddr_in *__restrict __sockaddr_in__; struct sockaddr_in6 *__restrict __sockaddr_in6__; struct sockaddr_inarp *__restrict __sockaddr_inarp__; struct sockaddr_ipx *__restrict __sockaddr_ipx__; struct sockaddr_iso *__restrict __sockaddr_iso__; struct sockaddr_ns *__restrict __sockaddr_ns__; struct sockaddr_un *__restrict __sockaddr_un__; struct sockaddr_x25 *__restrict __sockaddr_x25__; > } __SOCKADDR_ARG __attribute__ ((__transparent_union__)); > > >typedef union { const struct sockaddr *__restrict __sockaddr__; const struct sockaddr_at *__restrict __sockaddr_at__; const struct sockaddr_ax25 *__restrict __sockaddr_ax25__; const struct sockaddr_dl *__restrict __sockaddr_dl__; const struct sockaddr_eon *__restrict __sockaddr_eon__; const struct sockaddr_in *__restrict __sockaddr_in__; const struct sockaddr_in6 *__restrict __sockaddr_in6__; const struct sockaddr_inarp *__restrict __sockaddr_inarp__; const struct sockaddr_ipx *__restrict __sockaddr_ipx__; const struct sockaddr_iso *__restrict __sockaddr_iso__; const struct sockaddr_ns *__restrict __sockaddr_ns__; const struct sockaddr_un *__restrict __sockaddr_un__; const struct sockaddr_x25 *__restrict __sockaddr_x25__; > } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__)); > > > > > >struct mmsghdr > { > struct msghdr msg_hdr; > unsigned int msg_len; > > }; > > > > > > >extern int socket (int __domain, int __type, int __protocol) __attribute__ ((__nothrow__ )); > > > > > >extern int socketpair (int __domain, int __type, int __protocol, > int __fds[2]) __attribute__ ((__nothrow__ )); > > >extern int bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len) > __attribute__ ((__nothrow__ )); > > >extern int getsockname (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__restrict __len) __attribute__ ((__nothrow__ )); ># 137 "../socket/sys/socket.h" >extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len); > > > >extern int getpeername (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__restrict __len) __attribute__ ((__nothrow__ )); > > > > > > >extern ssize_t send (int __fd, const void *__buf, size_t __n, int __flags); > > > > > > >extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags); > > > > > > >extern ssize_t sendto (int __fd, const void *__buf, size_t __n, > int __flags, __CONST_SOCKADDR_ARG __addr, > socklen_t __addr_len); ># 174 "../socket/sys/socket.h" >extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n, > int __flags, __SOCKADDR_ARG __addr, > socklen_t *__restrict __addr_len); > > > > > > > >extern ssize_t sendmsg (int __fd, const struct msghdr *__message, > int __flags); > > > > > > > >extern int sendmmsg (int __fd, struct mmsghdr *__vmessages, > unsigned int __vlen, int __flags); > > > > > > > >extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags); > > > > > > > >extern int recvmmsg (int __fd, struct mmsghdr *__vmessages, > unsigned int __vlen, int __flags, > const struct timespec *__tmo); > > > > > > >extern int getsockopt (int __fd, int __level, int __optname, > void *__restrict __optval, > socklen_t *__restrict __optlen) __attribute__ ((__nothrow__ )); > > > > >extern int setsockopt (int __fd, int __level, int __optname, > const void *__optval, socklen_t __optlen) __attribute__ ((__nothrow__ )); > > > > > >extern int listen (int __fd, int __n) __attribute__ ((__nothrow__ )); ># 243 "../socket/sys/socket.h" >extern int accept (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__restrict __addr_len); > > > > > > >extern int accept4 (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__restrict __addr_len, int __flags); ># 261 "../socket/sys/socket.h" >extern int shutdown (int __fd, int __how) __attribute__ ((__nothrow__ )); > > > > >extern int sockatmark (int __fd) __attribute__ ((__nothrow__ )); > > > > > > > >extern int isfdtype (int __fd, int __fdtype) __attribute__ ((__nothrow__ )); ># 283 "../socket/sys/socket.h" > ># 3 "../include/sys/socket.h" 2 > > > > > > > >extern int __socket (int __domain, int __type, > int __protocol) __attribute__ ((visibility ("hidden"))); > > > > > >extern int __socketpair (int __domain, int __type, int __protocol, > int __fds[2]) __attribute__ ((visibility ("hidden"))); > > > >extern int __opensock (void) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > > >extern int __getpeername (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__len) __attribute__ ((visibility ("hidden"))); > > >extern ssize_t __libc_send (int __fd, const void *__buf, size_t __n, > int __flags); >extern ssize_t __send (int __fd, const void *__buf, size_t __n, int __flags); > > > > >extern ssize_t __libc_recv (int __fd, void *__buf, size_t __n, int __flags); > > > >extern ssize_t __libc_sendto (int __fd, const void *__buf, size_t __n, > int __flags, __CONST_SOCKADDR_ARG __addr, > socklen_t __addr_len); > > > > > >extern ssize_t __libc_recvfrom (int __fd, void *__restrict __buf, size_t __n, > int __flags, __SOCKADDR_ARG __addr, > socklen_t *__restrict __addr_len); > > > > > >extern int __libc_connect (int __fd, __CONST_SOCKADDR_ARG __addr, > socklen_t __len); >extern int __connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len); > > > > > > > >extern ssize_t __recv (int __fd, void *__buf, size_t __n, int __flags) > __attribute__ ((visibility ("hidden"))); > > > >extern ssize_t __libc_sendto (int __fd, const void *__buf, size_t __n, > int __flags, __CONST_SOCKADDR_ARG __addr, > socklen_t __addr_len); >extern ssize_t __sendto (int __fd, const void *__buf, size_t __n, > int __flags, __CONST_SOCKADDR_ARG __addr, > socklen_t __addr_len) __attribute__ ((visibility ("hidden"))); > > > > > >extern ssize_t __recvfrom (int __fd, void *__restrict __buf, size_t __n, > int __flags, __SOCKADDR_ARG __addr, > socklen_t *__restrict __addr_len) __attribute__ ((visibility ("hidden"))); > > > >extern ssize_t __libc_sendmsg (int __fd, const struct msghdr *__message, > int __flags); >extern ssize_t __sendmsg (int __fd, const struct msghdr *__message, > int __flags) __attribute__ ((visibility ("hidden"))); > >extern int __sendmmsg (int __fd, struct mmsghdr *__vmessages, > unsigned int __vlen, int __flags); > > > > >extern ssize_t __libc_recvmsg (int __fd, struct msghdr *__message, > int __flags); >extern ssize_t __recvmsg (int __fd, struct msghdr *__message, > int __flags) __attribute__ ((visibility ("hidden"))); > > > > >extern int __setsockopt (int __fd, int __level, int __optname, > const void *__optval, > socklen_t __optlen) __attribute__ ((visibility ("hidden"))); > > > > >extern int __getsockopt (int __fd, int __level, int __optname, > void *__restrict __optval, > socklen_t *__restrict __optlen) __attribute__ ((visibility ("hidden"))); > > >extern int __getsockname (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__restrict __len) __attribute__ ((visibility ("hidden"))); > > >extern int __bind (int __fd, __CONST_SOCKADDR_ARG __addr, > socklen_t __len) __attribute__ ((visibility ("hidden"))); > > > > >extern int __listen (int __fd, int __n) __attribute__ ((visibility ("hidden"))); > > > > > > >extern int __libc_accept (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__restrict __addr_len) > __attribute__ ((__nothrow__ )) __attribute__ ((visibility ("hidden"))); > >extern int __libc_accept4 (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__restrict __addr_len, int __flags) > __attribute__ ((__nothrow__ )) __attribute__ ((visibility ("hidden"))); > > > > > >extern int __libc_sa_len (sa_family_t __af); > > > > > >extern int __have_sock_cloexec __attribute__ ((visibility ("hidden"))); ># 24 "../inet/netinet/in.h" 2 > > > > > > >typedef uint32_t in_addr_t; >struct in_addr > { > in_addr_t s_addr; > }; > > ># 1 "../sysdeps/unix/sysv/linux/bits/in.h" 1 ># 138 "../sysdeps/unix/sysv/linux/bits/in.h" >struct ip_opts > { > struct in_addr ip_dst; > char ip_opts[40]; > }; > > >struct ip_mreqn > { > struct in_addr imr_multiaddr; > struct in_addr imr_address; > int imr_ifindex; > }; > > >struct in_pktinfo > { > int ipi_ifindex; > struct in_addr ipi_spec_dst; > struct in_addr ipi_addr; > }; ># 38 "../inet/netinet/in.h" 2 > > >enum > { > IPPROTO_IP = 0, > > IPPROTO_ICMP = 1, > > IPPROTO_IGMP = 2, > > IPPROTO_IPIP = 4, > > IPPROTO_TCP = 6, > > IPPROTO_EGP = 8, > > IPPROTO_PUP = 12, > > IPPROTO_UDP = 17, > > IPPROTO_IDP = 22, > > IPPROTO_TP = 29, > > IPPROTO_DCCP = 33, > > IPPROTO_IPV6 = 41, > > IPPROTO_RSVP = 46, > > IPPROTO_GRE = 47, > > IPPROTO_ESP = 50, > > IPPROTO_AH = 51, > > IPPROTO_MTP = 92, > > IPPROTO_BEETPH = 94, > > IPPROTO_ENCAP = 98, > > IPPROTO_PIM = 103, > > IPPROTO_COMP = 108, > > IPPROTO_SCTP = 132, > > IPPROTO_UDPLITE = 136, > > IPPROTO_RAW = 255, > > IPPROTO_MAX > }; > > > > > >enum > { > IPPROTO_HOPOPTS = 0, > > IPPROTO_ROUTING = 43, > > IPPROTO_FRAGMENT = 44, > > IPPROTO_ICMPV6 = 58, > > IPPROTO_NONE = 59, > > IPPROTO_DSTOPTS = 60, > > IPPROTO_MH = 135 > > }; > > > >typedef uint16_t in_port_t; > > >enum > { > IPPORT_ECHO = 7, > IPPORT_DISCARD = 9, > IPPORT_SYSTAT = 11, > IPPORT_DAYTIME = 13, > IPPORT_NETSTAT = 15, > IPPORT_FTP = 21, > IPPORT_TELNET = 23, > IPPORT_SMTP = 25, > IPPORT_TIMESERVER = 37, > IPPORT_NAMESERVER = 42, > IPPORT_WHOIS = 43, > IPPORT_MTP = 57, > > IPPORT_TFTP = 69, > IPPORT_RJE = 77, > IPPORT_FINGER = 79, > IPPORT_TTYLINK = 87, > IPPORT_SUPDUP = 95, > > > IPPORT_EXECSERVER = 512, > IPPORT_LOGINSERVER = 513, > IPPORT_CMDSERVER = 514, > IPPORT_EFSSERVER = 520, > > > IPPORT_BIFFUDP = 512, > IPPORT_WHOSERVER = 513, > IPPORT_ROUTESERVER = 520, > > > IPPORT_RESERVED = 1024, > > > IPPORT_USERRESERVED = 5000 > }; ># 209 "../inet/netinet/in.h" >struct in6_addr > { > union > { > uint8_t __u6_addr8[16]; > > uint16_t __u6_addr16[8]; > uint32_t __u6_addr32[4]; > > } __in6_u; > > > > > > }; > > >extern const struct in6_addr in6addr_any; >extern const struct in6_addr in6addr_loopback; ># 237 "../inet/netinet/in.h" >struct sockaddr_in > { > sa_family_t sin_family; > in_port_t sin_port; > struct in_addr sin_addr; > > > unsigned char sin_zero[sizeof (struct sockaddr) - > (sizeof (unsigned short int)) - > sizeof (in_port_t) - > sizeof (struct in_addr)]; > }; > > > >struct sockaddr_in6 > { > sa_family_t sin6_family; > in_port_t sin6_port; > uint32_t sin6_flowinfo; > struct in6_addr sin6_addr; > uint32_t sin6_scope_id; > }; > > > > >struct ip_mreq > { > > struct in_addr imr_multiaddr; > > > struct in_addr imr_interface; > }; > >struct ip_mreq_source > { > > struct in_addr imr_multiaddr; > > > struct in_addr imr_interface; > > > struct in_addr imr_sourceaddr; > }; > > > > >struct ipv6_mreq > { > > struct in6_addr ipv6mr_multiaddr; > > > unsigned int ipv6mr_interface; > }; > > > > >struct group_req > { > > uint32_t gr_interface; > > > struct sockaddr_storage gr_group; > }; > >struct group_source_req > { > > uint32_t gsr_interface; > > > struct sockaddr_storage gsr_group; > > > struct sockaddr_storage gsr_source; > }; > > > >struct ip_msfilter > { > > struct in_addr imsf_multiaddr; > > > struct in_addr imsf_interface; > > > uint32_t imsf_fmode; > > > uint32_t imsf_numsrc; > > struct in_addr imsf_slist[1]; > }; > > > > > >struct group_filter > { > > uint32_t gf_interface; > > > struct sockaddr_storage gf_group; > > > uint32_t gf_fmode; > > > uint32_t gf_numsrc; > > struct sockaddr_storage gf_slist[1]; >}; ># 374 "../inet/netinet/in.h" >extern uint32_t ntohl (uint32_t __netlong) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); >extern uint16_t ntohs (uint16_t __netshort) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); >extern uint32_t htonl (uint32_t __hostlong) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); >extern uint16_t htons (uint16_t __hostshort) > __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); > ># 1 "../include/endian.h" 1 ># 383 "../inet/netinet/in.h" 2 > > ># 1 "../sysdeps/x86/bits/byteswap.h" 1 ># 386 "../inet/netinet/in.h" 2 ># 501 "../inet/netinet/in.h" >extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __attribute__ ((__nothrow__ )); > > >extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) > __attribute__ ((__nothrow__ )); ># 531 "../inet/netinet/in.h" >struct cmsghdr; > > >struct in6_pktinfo > { > struct in6_addr ipi6_addr; > unsigned int ipi6_ifindex; > }; > > >struct ip6_mtuinfo > { > struct sockaddr_in6 ip6m_addr; > uint32_t ip6m_mtu; > }; > > > >extern int inet6_option_space (int __nbytes) > __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); >extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp, > int __type) __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); >extern int inet6_option_append (struct cmsghdr *__cmsg, > const uint8_t *__typep, int __multx, > int __plusy) __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); >extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen, > int __multx, int __plusy) > __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); >extern int inet6_option_next (const struct cmsghdr *__cmsg, > uint8_t **__tptrp) > __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); >extern int inet6_option_find (const struct cmsghdr *__cmsg, > uint8_t **__tptrp, int __type) > __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)); > > > >extern int inet6_opt_init (void *__extbuf, socklen_t __extlen) __attribute__ ((__nothrow__ )); >extern int inet6_opt_append (void *__extbuf, socklen_t __extlen, int __offset, > uint8_t __type, socklen_t __len, uint8_t __align, > void **__databufp) __attribute__ ((__nothrow__ )); >extern int inet6_opt_finish (void *__extbuf, socklen_t __extlen, int __offset) > __attribute__ ((__nothrow__ )); >extern int inet6_opt_set_val (void *__databuf, int __offset, void *__val, > socklen_t __vallen) __attribute__ ((__nothrow__ )); >extern int inet6_opt_next (void *__extbuf, socklen_t __extlen, int __offset, > uint8_t *__typep, socklen_t *__lenp, > void **__databufp) __attribute__ ((__nothrow__ )); >extern int inet6_opt_find (void *__extbuf, socklen_t __extlen, int __offset, > uint8_t __type, socklen_t *__lenp, > void **__databufp) __attribute__ ((__nothrow__ )); >extern int inet6_opt_get_val (void *__databuf, int __offset, void *__val, > socklen_t __vallen) __attribute__ ((__nothrow__ )); > > > >extern socklen_t inet6_rth_space (int __type, int __segments) __attribute__ ((__nothrow__ )); >extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type, > int __segments) __attribute__ ((__nothrow__ )); >extern int inet6_rth_add (void *__bp, const struct in6_addr *__addr) __attribute__ ((__nothrow__ )); >extern int inet6_rth_reverse (const void *__in, void *__out) __attribute__ ((__nothrow__ )); >extern int inet6_rth_segments (const void *__bp) __attribute__ ((__nothrow__ )); >extern struct in6_addr *inet6_rth_getaddr (const void *__bp, int __index) > __attribute__ ((__nothrow__ )); > > > > > >extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr, > struct in_addr __group, uint32_t *__fmode, > uint32_t *__numsrc, struct in_addr *__slist) > __attribute__ ((__nothrow__ )); > > >extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr, > struct in_addr __group, uint32_t __fmode, > uint32_t __numsrc, > const struct in_addr *__slist) > __attribute__ ((__nothrow__ )); > > > >extern int getsourcefilter (int __s, uint32_t __interface_addr, > const struct sockaddr *__group, > socklen_t __grouplen, uint32_t *__fmode, > uint32_t *__numsrc, > struct sockaddr_storage *__slist) __attribute__ ((__nothrow__ )); > > >extern int setsourcefilter (int __s, uint32_t __interface_addr, > const struct sockaddr *__group, > socklen_t __grouplen, uint32_t __fmode, > uint32_t __numsrc, > const struct sockaddr_storage *__slist) __attribute__ ((__nothrow__ )); > > > ># 4 "../include/netinet/in.h" 2 > > > > > ># 58 "../resolv/resolv.h" 2 ># 71 "../resolv/resolv.h" >typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } > res_sendhookact; > >typedef res_sendhookact (*res_send_qhook) (struct sockaddr_in * const *__ns, > const u_char **__query, > int *__querylen, > u_char *__ans, > int __anssiz, > int *__resplen); > >typedef res_sendhookact (*res_send_rhook) (const struct sockaddr_in *__ns, > const u_char *__query, > int __querylen, > u_char *__ans, > int __anssiz, > int *__resplen); ># 104 "../resolv/resolv.h" >struct __res_state { > int retrans; > int retry; > u_long options; > int nscount; > struct sockaddr_in > nsaddr_list[3]; > > u_short id; > > char *dnsrch[6 +1]; > char defdname[256]; > u_long pfcode; > unsigned ndots:4; > unsigned nsort:4; > unsigned ipv6_unavail:1; > unsigned unused:23; > struct { > struct in_addr addr; > u_int32_t mask; > } sort_list[10]; > > res_send_qhook qhook; > res_send_rhook rhook; > int res_h_errno; > int _vcsock; > u_int _flags; > > union { > char pad[52]; > struct { > u_int16_t nscount; > u_int16_t nsmap[3]; > int nssocks[3]; > u_int16_t nscount6; > u_int16_t nsinit; > struct sockaddr_in6 *nsaddrs[3]; > > unsigned long long int initstamp > __attribute__((packed)); > > > > } _ext; > } _u; >}; > >typedef struct __res_state *res_state; ># 13 "../include/resolv.h" 2 ># 40 "../nptl/descr.h" 2 ># 1 "../sysdeps/unix/sysv/linux/i386/kernel-features.h" 1 ># 35 "../sysdeps/unix/sysv/linux/i386/kernel-features.h" ># 1 "../sysdeps/unix/sysv/linux/kernel-features.h" 1 ># 35 "../sysdeps/unix/sysv/linux/i386/kernel-features.h" 2 ># 41 "../nptl/descr.h" 2 ># 66 "../nptl/descr.h" >struct pthread_unwind_buf >{ > struct > { > __jmp_buf jmp_buf; > int mask_was_saved; > } cancel_jmp_buf[1]; > > union > { > > void *pad[4]; > > struct > { > > struct pthread_unwind_buf *prev; > > > > > struct _pthread_cleanup_buffer *cleanup; > > > int canceltype; > } data; > } priv; >}; > > > > >struct xid_command >{ > int syscall_no; > long int id[3]; > volatile int cntr; > volatile int error; >}; > > > >struct robust_list_head >{ > void *list; > long int futex_offset; > void *list_op_pending; >}; > > > >struct priority_protection_data >{ > int priomax; > unsigned int priomap[]; >}; > > > >struct pthread >{ > union > { > > > tcbhead_t header; ># 162 "../nptl/descr.h" > void *__padding[24]; > }; > > > list_t list; > > > > pid_t tid; > > > pid_t pid; ># 214 "../nptl/descr.h" > union > { > __pthread_slist_t robust_list; > struct robust_list_head robust_head; > }; ># 252 "../nptl/descr.h" > struct _pthread_cleanup_buffer *cleanup; > > > struct pthread_unwind_buf *cleanup_jmp_buf; > > > > int cancelhandling; ># 293 "../nptl/descr.h" > int flags; > > > > struct pthread_key_data > { > > > > uintptr_t seq; > > > void *data; > } specific_1stblock[32]; > > > struct pthread_key_data *specific[((1024 + 32 - 1) / 32)]; > > > _Bool specific_used; > > > _Bool report_events; > > > _Bool user_stack; > > > _Bool stopped_start; > > > > int parent_cancelhandling; > > > int lock; > > > int setxid_futex; > > > > hp_timing_t cpuclock_offset; ># 344 "../nptl/descr.h" > struct pthread *joinid; > > > > > void *result; > > > struct sched_param schedparam; > int schedpolicy; > > > > void *(*start_routine) (void *); > void *arg; > > > td_eventbuf_t eventbuf; > > struct pthread *nextevent; > > > > struct _Unwind_Exception exc; > > > > > void *stackblock; > size_t stackblock_size; > > size_t guardsize; > > size_t reported_guardsize; > > > struct priority_protection_data *tpp; > > > struct __res_state res; > > > char end_padding[]; > > > >} __attribute ((aligned (64))); ># 128 "../sysdeps/i386/nptl/tls.h" 2 ># 195 "../sysdeps/i386/nptl/tls.h" >static inline void __attribute__ ((unused, always_inline)) >tls_fill_user_desc (union user_desc_init *desc, > unsigned int entry_number, > void *pd) >{ > desc->vals[0] = entry_number; > > desc->vals[1] = (unsigned long int) pd; > > desc->vals[2] = 0xfffff; > > > > > > > > desc->vals[3] = 0x51; >} ># 34 "../sysdeps/i386/i686/nptl/tls.h" 2 ># 45 "../include/link.h" 2 ># 1 "../sysdeps/nptl/bits/libc-lock.h" 1 ># 22 "../sysdeps/nptl/bits/libc-lock.h" ># 1 "../include/pthread.h" 1 > > > > >extern void __pthread_initialize (void) __attribute__ ((weak)); ># 23 "../sysdeps/nptl/bits/libc-lock.h" 2 > ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 25 "../sysdeps/nptl/bits/libc-lock.h" 2 > > > > > >typedef struct { pthread_mutex_t mutex; } __libc_lock_recursive_t; ># 150 "../sysdeps/nptl/bits/libc-lock.h" >extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer, > void (*routine) (void *), void *arg); >extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer, > int execute); ># 184 "../sysdeps/nptl/bits/libc-lock.h" ># 1 "../sysdeps/nptl/bits/libc-lockP.h" 1 ># 22 "../sysdeps/nptl/bits/libc-lockP.h" ># 1 "../include/pthread.h" 1 > > > > >extern void __pthread_initialize (void) __attribute__ ((weak)); ># 23 "../sysdeps/nptl/bits/libc-lockP.h" 2 > ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 25 "../sysdeps/nptl/bits/libc-lockP.h" 2 ># 35 "../sysdeps/nptl/bits/libc-lockP.h" ># 1 "../sysdeps/nptl/pthread-functions.h" 1 ># 22 "../sysdeps/nptl/pthread-functions.h" ># 1 "../include/pthread.h" 1 > > > > >extern void __pthread_initialize (void) __attribute__ ((weak)); ># 23 "../sysdeps/nptl/pthread-functions.h" 2 > ># 1 "../sysdeps/nptl/internaltypes.h" 1 ># 25 "../sysdeps/nptl/internaltypes.h" >struct pthread_attr >{ > > struct sched_param schedparam; > int schedpolicy; > > int flags; > > size_t guardsize; > > void *stackaddr; > size_t stacksize; > > cpu_set_t *cpuset; > size_t cpusetsize; >}; ># 52 "../sysdeps/nptl/internaltypes.h" >struct pthread_mutexattr >{ > > > > > > > int mutexkind; >}; > > > >struct pthread_condattr >{ > > > > > > > int value; >}; ># 86 "../sysdeps/nptl/internaltypes.h" >struct pthread_rwlockattr >{ > int lockkind; > int pshared; >}; > > > >struct pthread_barrier >{ > unsigned int curr_event; > int lock; > unsigned int left; > unsigned int init_count; > int private; >}; > > > >struct pthread_barrierattr >{ > int pshared; >}; > > > >struct pthread_key_struct >{ > > > > > uintptr_t seq; > > > void (*destr) (void *); >}; ># 142 "../sysdeps/nptl/internaltypes.h" >struct new_sem >{ > unsigned int value; > int private; > unsigned long int nwaiters; >}; > >struct old_sem >{ > unsigned int value; >}; > > > >typedef struct >{ > pthread_cond_t *cond; >} pthread_cond_2_0_t; ># 25 "../sysdeps/nptl/pthread-functions.h" 2 > > >struct xid_command; > > > >struct pthread_functions >{ > int (*ptr_pthread_attr_destroy) (pthread_attr_t *); > int (*ptr___pthread_attr_init_2_0) (pthread_attr_t *); > int (*ptr___pthread_attr_init_2_1) (pthread_attr_t *); > int (*ptr_pthread_attr_getdetachstate) (const pthread_attr_t *, int *); > int (*ptr_pthread_attr_setdetachstate) (pthread_attr_t *, int); > int (*ptr_pthread_attr_getinheritsched) (const pthread_attr_t *, int *); > int (*ptr_pthread_attr_setinheritsched) (pthread_attr_t *, int); > int (*ptr_pthread_attr_getschedparam) (const pthread_attr_t *, > struct sched_param *); > int (*ptr_pthread_attr_setschedparam) (pthread_attr_t *, > const struct sched_param *); > int (*ptr_pthread_attr_getschedpolicy) (const pthread_attr_t *, int *); > int (*ptr_pthread_attr_setschedpolicy) (pthread_attr_t *, int); > int (*ptr_pthread_attr_getscope) (const pthread_attr_t *, int *); > int (*ptr_pthread_attr_setscope) (pthread_attr_t *, int); > int (*ptr_pthread_condattr_destroy) (pthread_condattr_t *); > int (*ptr_pthread_condattr_init) (pthread_condattr_t *); > int (*ptr___pthread_cond_broadcast) (pthread_cond_t *); > int (*ptr___pthread_cond_destroy) (pthread_cond_t *); > int (*ptr___pthread_cond_init) (pthread_cond_t *, > const pthread_condattr_t *); > int (*ptr___pthread_cond_signal) (pthread_cond_t *); > int (*ptr___pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *); > int (*ptr___pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *, > const struct timespec *); > int (*ptr___pthread_cond_broadcast_2_0) (pthread_cond_2_0_t *); > int (*ptr___pthread_cond_destroy_2_0) (pthread_cond_2_0_t *); > int (*ptr___pthread_cond_init_2_0) (pthread_cond_2_0_t *, > const pthread_condattr_t *); > int (*ptr___pthread_cond_signal_2_0) (pthread_cond_2_0_t *); > int (*ptr___pthread_cond_wait_2_0) (pthread_cond_2_0_t *, pthread_mutex_t *); > int (*ptr___pthread_cond_timedwait_2_0) (pthread_cond_2_0_t *, > pthread_mutex_t *, > const struct timespec *); > int (*ptr_pthread_equal) (pthread_t, pthread_t); > void (*ptr___pthread_exit) (void *) __attribute__ ((__noreturn__)); > int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *); > int (*ptr_pthread_setschedparam) (pthread_t, int, > const struct sched_param *); > int (*ptr_pthread_mutex_destroy) (pthread_mutex_t *); > int (*ptr_pthread_mutex_init) (pthread_mutex_t *, > const pthread_mutexattr_t *); > int (*ptr_pthread_mutex_lock) (pthread_mutex_t *); > int (*ptr_pthread_mutex_unlock) (pthread_mutex_t *); > pthread_t (*ptr_pthread_self) (void); > int (*ptr_pthread_setcancelstate) (int, int *); > int (*ptr_pthread_setcanceltype) (int, int *); > void (*ptr___pthread_cleanup_upto) (__jmp_buf, char *); > int (*ptr___pthread_once) (pthread_once_t *, void (*) (void)); > int (*ptr___pthread_rwlock_rdlock) (pthread_rwlock_t *); > int (*ptr___pthread_rwlock_wrlock) (pthread_rwlock_t *); > int (*ptr___pthread_rwlock_unlock) (pthread_rwlock_t *); > int (*ptr___pthread_key_create) (pthread_key_t *, void (*) (void *)); > void *(*ptr___pthread_getspecific) (pthread_key_t); > int (*ptr___pthread_setspecific) (pthread_key_t, const void *); > void (*ptr__pthread_cleanup_push_defer) (struct _pthread_cleanup_buffer *, > void (*) (void *), void *); > void (*ptr__pthread_cleanup_pop_restore) (struct _pthread_cleanup_buffer *, > int); > > unsigned int *ptr_nthreads; > void (*ptr___pthread_unwind) (__pthread_unwind_buf_t *) > __attribute ((noreturn)) __attribute__ ((__regparm__ (1))); > void (*ptr__nptl_deallocate_tsd) (void); > int (*ptr__nptl_setxid) (struct xid_command *); > void (*ptr_freeres) (void); > void (*ptr_set_robust) (struct pthread *); >}; > > >extern struct pthread_functions __libc_pthread_functions __attribute__ ((visibility ("hidden"))); >extern int __libc_pthread_functions_init __attribute__ ((visibility ("hidden"))); ># 36 "../sysdeps/nptl/bits/libc-lockP.h" 2 > > > >typedef pthread_mutex_t __libc_lock_t; > > > >typedef struct { pthread_mutex_t mutex; } __rtld_lock_recursive_t; >typedef pthread_rwlock_t __libc_rwlock_t; > > >typedef pthread_key_t __libc_key_t; ># 256 "../sysdeps/nptl/bits/libc-lockP.h" >extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer, > void (*routine) (void *), void *arg); >extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, > int execute); >extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer, > void (*routine) (void *), void *arg); >extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer, > int execute); ># 274 "../sysdeps/nptl/bits/libc-lockP.h" >extern __inline void >__libc_cleanup_routine (struct __pthread_cleanup_frame *f) >{ > if (f->__do_it) > f->__cancel_routine (f->__cancel_arg); >} ># 311 "../sysdeps/nptl/bits/libc-lockP.h" >extern int __register_atfork (void (*__prepare) (void), > void (*__parent) (void), > void (*__child) (void), > void *__dso_handle); > > > > >extern int __pthread_mutex_init (pthread_mutex_t *__mutex, > const pthread_mutexattr_t *__mutex_attr); > >extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex); > >extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex); > >extern int __pthread_mutex_lock (pthread_mutex_t *__mutex); > >extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex); > >extern int __pthread_mutexattr_init (pthread_mutexattr_t *__attr); > >extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr); > >extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr, > int __kind); > >extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock, > const pthread_rwlockattr_t *__attr); > >extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock); > >extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock); > >extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock); > >extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock); > >extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock); > >extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock); > >extern int __pthread_key_create (pthread_key_t *__key, > void (*__destr_function) (void *)); > >extern int __pthread_setspecific (pthread_key_t __key, > const void *__pointer); > >extern void *__pthread_getspecific (pthread_key_t __key); > >extern int __pthread_once (pthread_once_t *__once_control, > void (*__init_routine) (void)); > >extern int __pthread_atfork (void (*__prepare) (void), > void (*__parent) (void), > void (*__child) (void)); > > > > > > > > ># 373 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_mutex_init ># 373 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 374 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_mutex_destroy ># 374 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 375 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_mutex_lock ># 375 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 376 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_mutex_trylock ># 376 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 377 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_mutex_unlock ># 377 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 378 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_mutexattr_init ># 378 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 379 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_mutexattr_destroy ># 379 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 380 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_mutexattr_settype ># 380 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 381 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_rwlock_init ># 381 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 382 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_rwlock_destroy ># 382 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 383 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_rwlock_rdlock ># 383 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 384 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_rwlock_tryrdlock ># 384 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 385 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_rwlock_wrlock ># 385 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 386 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_rwlock_trywrlock ># 386 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 387 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_rwlock_unlock ># 387 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 388 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_key_create ># 388 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 389 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_setspecific ># 389 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 390 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_getspecific ># 390 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 391 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_once ># 391 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 392 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_initialize ># 392 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 393 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak __pthread_atfork ># 393 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 394 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak _pthread_cleanup_push_defer ># 394 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 395 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak _pthread_cleanup_pop_restore ># 395 "../sysdeps/nptl/bits/libc-lockP.h" > > ># 396 "../sysdeps/nptl/bits/libc-lockP.h" >#pragma weak pthread_setcancelstate ># 396 "../sysdeps/nptl/bits/libc-lockP.h" > ># 185 "../sysdeps/nptl/bits/libc-lock.h" 2 ># 46 "../include/link.h" 2 > > > > >struct libname_list; >struct r_found_version; >struct r_search_path_elem; > > >struct link_map; > > > >struct r_scope_elem >{ > > struct link_map **r_list; > > unsigned int r_nlist; >}; > > > >struct r_search_path_struct > { > struct r_search_path_elem **dirs; > int malloced; > }; ># 85 "../include/link.h" >struct link_map > { > > > > Elf32_Addr l_addr; > > char *l_name; > Elf32_Dyn *l_ld; > struct link_map *l_next, *l_prev; > > > > > > > > struct link_map *l_real; > > > Lmid_t l_ns; > > struct libname_list *l_libname; ># 123 "../include/link.h" > Elf32_Dyn *l_info[34 + 0 + 16 > + 3 + 12 + 11]; > const Elf32_Phdr *l_phdr; > Elf32_Addr l_entry; > Elf32_Half l_phnum; > Elf32_Half l_ldnum; > > > > > > struct r_scope_elem l_searchlist; > > > > struct r_scope_elem l_symbolic_searchlist; > > > struct link_map *l_loader; > > > struct r_found_version *l_versions; > unsigned int l_nversions; > > > Elf_Symndx l_nbuckets; > Elf32_Word l_gnu_bitmask_idxbits; > Elf32_Word l_gnu_shift; > const Elf32_Addr *l_gnu_bitmask; > union > { > const Elf32_Word *l_gnu_buckets; > const Elf_Symndx *l_chain; > }; > union > { > const Elf32_Word *l_gnu_chain_zero; > const Elf_Symndx *l_buckets; > }; > > unsigned int l_direct_opencount; > enum > { > lt_executable, > lt_library, > lt_loaded > } l_type:2; > unsigned int l_relocated:1; > unsigned int l_init_called:1; > unsigned int l_global:1; > unsigned int l_reserved:2; > unsigned int l_phdr_allocated:1; > > unsigned int l_soname_added:1; > > unsigned int l_faked:1; > > unsigned int l_need_tls_init:1; > > > unsigned int l_auditing:1; > unsigned int l_audit_any_plt:1; > > unsigned int l_removed:1; > > unsigned int l_contiguous:1; > > > unsigned int l_symbolic_in_local_scope:1; > > > > unsigned int l_free_initfini:1; > > > > > struct r_search_path_struct l_rpath_dirs; > > > struct reloc_result > { > Elf32_Addr addr; > struct link_map *bound; > unsigned int boundndx; > uint32_t enterexit; > unsigned int flags; > } *l_reloc_result; > > > Elf32_Versym *l_versyms; > > > const char *l_origin; > > > > Elf32_Addr l_map_start, l_map_end; > > Elf32_Addr l_text_end; > > > struct r_scope_elem *l_scope_mem[4]; > > size_t l_scope_max; > > > struct r_scope_elem **l_scope; > > > > struct r_scope_elem *l_local_scope[2]; > > > > dev_t l_dev; > ino64_t l_ino; > > > struct r_search_path_struct l_runpath_dirs; > > > struct link_map **l_initfini; > > > struct link_map_reldeps > { > unsigned int act; > struct link_map *list[]; > } *l_reldeps; > unsigned int l_reldepsmax; > > > unsigned int l_used; > > > Elf32_Word l_feature_1; > Elf32_Word l_flags_1; > Elf32_Word l_flags; > > > int l_idx; > > struct link_map_machine l_mach; > > struct > { > const Elf32_Sym *sym; > int type_class; > struct link_map *value; > const Elf32_Sym *ret; > } l_lookup_cache; > > > > > void *l_tls_initimage; > > size_t l_tls_initimage_size; > > size_t l_tls_blocksize; > > size_t l_tls_align; > > size_t l_tls_firstbyte_offset; ># 301 "../include/link.h" > ptrdiff_t l_tls_offset; > > size_t l_tls_modid; > > > size_t l_tls_dtor_count; > > > > Elf32_Addr l_relro_addr; > size_t l_relro_size; > > unsigned long long int l_serial; > > > > struct auditstate > { > uintptr_t cookie; > unsigned int bindflags; > } l_audit[0]; > }; ># 333 "../include/link.h" >extern int __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, > size_t size, void *data), > void *data); ># 5 "../include/dlfcn.h" 2 ># 20 "../include/dlfcn.h" >extern int __dlfcn_argc __attribute__ ((visibility ("hidden"))); >extern char **__dlfcn_argv __attribute__ ((visibility ("hidden"))); ># 36 "../include/dlfcn.h" >extern void *__libc_dlopen_mode (const char *__name, int __mode); >extern void *__libc_dlsym (void *__map, const char *__name); >extern int __libc_dlclose (void *__map); > > > > > > >extern int _dl_addr (const void *address, Dl_info *info, > struct link_map **mapp, const Elf32_Sym **symbolp) > __attribute__ ((regparm (3), stdcall)); > > > >struct link_map; > > >extern void _dl_close (void *map) __attribute__ ((visibility ("hidden"))); > > >extern void _dl_close_worker (struct link_map *map) __attribute__ ((visibility ("hidden"))); > > > > >extern void *_dl_sym (void *handle, const char *name, void *who) > __attribute__ ((regparm (3), stdcall)); > > > > > >extern void *_dl_vsym (void *handle, const char *name, const char *version, > void *who) > __attribute__ ((regparm (3), stdcall)); ># 81 "../include/dlfcn.h" >extern int _dl_catch_error (const char **objname, const char **errstring, > _Bool *mallocedp, void (*operate) (void *), > void *args) > __attribute__ ((regparm (3), stdcall)); > > > > > >extern int _dlerror_run (void (*operate) (void *), void *args) > __attribute__ ((regparm (3), stdcall)); ># 101 "../include/dlfcn.h" >struct dlfcn_hook >{ > void *(*dlopen) (const char *file, int mode, void *dl_caller); > int (*dlclose) (void *handle); > void *(*dlsym) (void *handle, const char *name, void *dl_caller); > void *(*dlvsym) (void *handle, const char *name, const char *version, > void *dl_caller); > char *(*dlerror) (void); > int (*dladdr) (const void *address, Dl_info *info); > int (*dladdr1) (const void *address, Dl_info *info, > void **extra_info, int flags); > int (*dlinfo) (void *handle, int request, void *arg, void *dl_caller); > void *(*dlmopen) (Lmid_t nsid, const char *file, int mode, void *dl_caller); > void *pad[4]; >}; > >extern struct dlfcn_hook *_dlfcn_hook; > > >extern void *__dlopen (const char *file, int mode ) > __attribute__ ((visibility ("hidden"))); >extern void *__dlmopen (Lmid_t nsid, const char *file, int mode ) > __attribute__ ((visibility ("hidden"))); >extern int __dlclose (void *handle) > __attribute__ ((visibility ("hidden"))); >extern void *__dlsym (void *handle, const char *name ) > __attribute__ ((visibility ("hidden"))); >extern void *__dlvsym (void *handle, const char *name, const char *version > ) > __attribute__ ((visibility ("hidden"))); >extern char *__dlerror (void) > __attribute__ ((visibility ("hidden"))); >extern int __dladdr (const void *address, Dl_info *info) > __attribute__ ((visibility ("hidden"))); >extern int __dladdr1 (const void *address, Dl_info *info, > void **extra_info, int flags) > __attribute__ ((visibility ("hidden"))); >extern int __dlinfo (void *handle, int request, void *arg ) > __attribute__ ((visibility ("hidden"))); ># 21 "rtld.c" 2 ># 1 "../include/fcntl.h" 1 > ># 1 "../io/fcntl.h" 1 ># 28 "../io/fcntl.h" > > > > > > > ># 1 "../sysdeps/unix/sysv/linux/x86/bits/fcntl.h" 1 ># 35 "../sysdeps/unix/sysv/linux/x86/bits/fcntl.h" >struct flock > { > short int l_type; > short int l_whence; > > __off_t l_start; > __off_t l_len; > > > > > __pid_t l_pid; > }; > > >struct flock64 > { > short int l_type; > short int l_whence; > __off64_t l_start; > __off64_t l_len; > __pid_t l_pid; > }; > > > ># 1 "../sysdeps/unix/sysv/linux/bits/fcntl-linux.h" 1 ># 38 "../sysdeps/unix/sysv/linux/bits/fcntl-linux.h" ># 1 "../sysdeps/unix/sysv/linux/bits/uio.h" 1 ># 39 "../sysdeps/unix/sysv/linux/bits/fcntl-linux.h" 2 ># 258 "../sysdeps/unix/sysv/linux/bits/fcntl-linux.h" >enum __pid_type > { > F_OWNER_TID = 0, > F_OWNER_PID, > F_OWNER_PGRP, > F_OWNER_GID = F_OWNER_PGRP > }; > > >struct f_owner_ex > { > enum __pid_type type; > __pid_t pid; > }; ># 333 "../sysdeps/unix/sysv/linux/bits/fcntl-linux.h" >struct file_handle >{ > unsigned int handle_bytes; > int handle_type; > > unsigned char f_handle[0]; >}; > > > > > > > > > > >extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) > __attribute__ ((__nothrow__ )); > > > > > > >extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count, > unsigned int __flags); > > > > > > >extern ssize_t vmsplice (int __fdout, const struct iovec *__iov, > size_t __count, unsigned int __flags); > > > > > >extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout, > __off64_t *__offout, size_t __len, > unsigned int __flags); > > > > > >extern ssize_t tee (int __fdin, int __fdout, size_t __len, > unsigned int __flags); > > > > > > >extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len); ># 400 "../sysdeps/unix/sysv/linux/bits/fcntl-linux.h" >extern int fallocate64 (int __fd, int __mode, __off64_t __offset, > __off64_t __len); > > > > >extern int name_to_handle_at (int __dfd, const char *__name, > struct file_handle *__handle, int *__mnt_id, > int __flags) __attribute__ ((__nothrow__ )); > > > > > >extern int open_by_handle_at (int __mountdirfd, struct file_handle *__handle, > int __flags); > > > > ># 61 "../sysdeps/unix/sysv/linux/x86/bits/fcntl.h" 2 ># 36 "../io/fcntl.h" 2 ># 68 "../io/fcntl.h" ># 1 "../sysdeps/unix/sysv/linux/x86/bits/stat.h" 1 ># 69 "../io/fcntl.h" 2 ># 160 "../io/fcntl.h" >extern int fcntl (int __fd, int __cmd, ...); ># 169 "../io/fcntl.h" >extern int open (const char *__file, int __oflag, ...) ; ># 179 "../io/fcntl.h" >extern int open64 (const char *__file, int __oflag, ...) ; ># 193 "../io/fcntl.h" >extern int openat (int __fd, const char *__file, int __oflag, ...) > ; ># 204 "../io/fcntl.h" >extern int openat64 (int __fd, const char *__file, int __oflag, ...) > ; ># 215 "../io/fcntl.h" >extern int creat (const char *__file, mode_t __mode) ; ># 225 "../io/fcntl.h" >extern int creat64 (const char *__file, mode_t __mode) ; ># 244 "../io/fcntl.h" >extern int lockf (int __fd, int __cmd, off_t __len); ># 253 "../io/fcntl.h" >extern int lockf64 (int __fd, int __cmd, off64_t __len); > > > > > > > >extern int posix_fadvise (int __fd, off_t __offset, off_t __len, > int __advise) __attribute__ ((__nothrow__ )); ># 273 "../io/fcntl.h" >extern int posix_fadvise64 (int __fd, off64_t __offset, off64_t __len, > int __advise) __attribute__ ((__nothrow__ )); ># 283 "../io/fcntl.h" >extern int posix_fallocate (int __fd, off_t __offset, off_t __len); ># 294 "../io/fcntl.h" >extern int posix_fallocate64 (int __fd, off64_t __offset, off64_t __len); ># 305 "../io/fcntl.h" > ># 3 "../include/fcntl.h" 2 > > > >extern int __open64 (const char *__file, int __oflag, ...); > >extern int __libc_open64 (const char *file, int oflag, ...); >extern int __libc_open (const char *file, int oflag, ...); > >extern int __libc_creat (const char *file, mode_t mode); >extern int __libc_fcntl (int fd, int cmd, ...); > >extern int __fcntl_nocancel (int fd, int cmd, ...) __attribute__ ((visibility ("hidden"))); > > >extern int __open (const char *__file, int __oflag, ...); > >extern int __fcntl (int __fd, int __cmd, ...); > >extern int __openat (int __fd, const char *__file, int __oflag, ...) > ; > >extern int __openat64 (int __fd, const char *__file, int __oflag, ...) > ; > > >extern int __open_2 (const char *__path, int __oflag); >extern int __open64_2 (const char *__path, int __oflag); >extern int __openat_2 (int __fd, const char *__path, int __oflag); >extern int __openat64_2 (int __fd, const char *__path, int __oflag); > > > >extern int __have_atfcts __attribute__ ((visibility ("hidden"))); > > >extern int __have_o_cloexec __attribute__ ((visibility ("hidden"))); ># 22 "rtld.c" 2 > > > ># 1 "../include/unistd.h" 1 > ># 1 "../posix/unistd.h" 1 ># 27 "../posix/unistd.h" > ># 202 "../posix/unistd.h" ># 1 "../sysdeps/unix/sysv/linux/bits/posix_opt.h" 1 ># 203 "../posix/unistd.h" 2 > > > ># 1 "../sysdeps/unix/sysv/linux/x86/bits/environments.h" 1 ># 22 "../sysdeps/unix/sysv/linux/x86/bits/environments.h" ># 1 "../sysdeps/x86/bits/wordsize.h" 1 ># 23 "../sysdeps/unix/sysv/linux/x86/bits/environments.h" 2 ># 207 "../posix/unistd.h" 2 ># 226 "../posix/unistd.h" ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 227 "../posix/unistd.h" 2 ># 287 "../posix/unistd.h" >extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ )) ; > > > > >extern int euidaccess (const char *__name, int __type) > __attribute__ ((__nothrow__ )) ; > > >extern int eaccess (const char *__name, int __type) > __attribute__ ((__nothrow__ )) ; > > > > > > >extern int faccessat (int __fd, const char *__file, int __type, int __flag) > __attribute__ ((__nothrow__ )) ; ># 334 "../posix/unistd.h" >extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__ )); ># 345 "../posix/unistd.h" >extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) > __attribute__ ((__nothrow__ )); > > > > > > >extern int close (int __fd); > > > > > > >extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ; > > > > > >extern ssize_t write (int __fd, const void *__buf, size_t __n) ; ># 376 "../posix/unistd.h" >extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, > __off_t __offset) ; > > > > > > >extern ssize_t pwrite (int __fd, const void *__buf, size_t __n, > __off_t __offset) ; ># 404 "../posix/unistd.h" >extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset) ; > > >extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n, > __off64_t __offset) ; > > > > > > > >extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ )) ; > > > > >extern int pipe2 (int __pipedes[2], int __flags) __attribute__ ((__nothrow__ )) ; ># 432 "../posix/unistd.h" >extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ )); ># 444 "../posix/unistd.h" >extern unsigned int sleep (unsigned int __seconds); > > > > > > > >extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) > __attribute__ ((__nothrow__ )); > > > > > > >extern int usleep (__useconds_t __useconds); ># 469 "../posix/unistd.h" >extern int pause (void); > > > >extern int chown (const char *__file, __uid_t __owner, __gid_t __group) > __attribute__ ((__nothrow__ )) ; > > > >extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ )) ; > > > > >extern int lchown (const char *__file, __uid_t __owner, __gid_t __group) > __attribute__ ((__nothrow__ )) ; > > > > > > >extern int fchownat (int __fd, const char *__file, __uid_t __owner, > __gid_t __group, int __flag) > __attribute__ ((__nothrow__ )) ; > > > >extern int chdir (const char *__path) __attribute__ ((__nothrow__ )) ; > > > >extern int fchdir (int __fd) __attribute__ ((__nothrow__ )) ; ># 511 "../posix/unistd.h" >extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ )) ; > > > > > >extern char *get_current_dir_name (void) __attribute__ ((__nothrow__ )); > > > > > > > >extern char *getwd (char *__buf) > __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__)) ; > > > > >extern int dup (int __fd) __attribute__ ((__nothrow__ )) ; > > >extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ )); > > > > >extern int dup3 (int __fd, int __fd2, int __flags) __attribute__ ((__nothrow__ )); > > > >extern char **__environ; > >extern char **environ; > > > > > >extern int execve (const char *__path, char *const __argv[], > char *const __envp[]) __attribute__ ((__nothrow__ )) ; > > > > >extern int fexecve (int __fd, char *const __argv[], char *const __envp[]) > __attribute__ ((__nothrow__ )) ; > > > > >extern int execv (const char *__path, char *const __argv[]) > __attribute__ ((__nothrow__ )) ; > > > >extern int execle (const char *__path, const char *__arg, ...) > __attribute__ ((__nothrow__ )) ; > > > >extern int execl (const char *__path, const char *__arg, ...) > __attribute__ ((__nothrow__ )) ; > > > >extern int execvp (const char *__file, char *const __argv[]) > __attribute__ ((__nothrow__ )) ; > > > > >extern int execlp (const char *__file, const char *__arg, ...) > __attribute__ ((__nothrow__ )) ; > > > > >extern int execvpe (const char *__file, char *const __argv[], > char *const __envp[]) > __attribute__ ((__nothrow__ )) ; > > > > > >extern int nice (int __inc) __attribute__ ((__nothrow__ )) ; > > > > >extern void _exit (int __status) __attribute__ ((__noreturn__)); > > > > > ># 1 "../bits/confname.h" 1 ># 24 "../bits/confname.h" >enum > { > _PC_LINK_MAX, > > _PC_MAX_CANON, > > _PC_MAX_INPUT, > > _PC_NAME_MAX, > > _PC_PATH_MAX, > > _PC_PIPE_BUF, > > _PC_CHOWN_RESTRICTED, > > _PC_NO_TRUNC, > > _PC_VDISABLE, > > _PC_SYNC_IO, > > _PC_ASYNC_IO, > > _PC_PRIO_IO, > > _PC_SOCK_MAXBUF, > > _PC_FILESIZEBITS, > > _PC_REC_INCR_XFER_SIZE, > > _PC_REC_MAX_XFER_SIZE, > > _PC_REC_MIN_XFER_SIZE, > > _PC_REC_XFER_ALIGN, > > _PC_ALLOC_SIZE_MIN, > > _PC_SYMLINK_MAX, > > _PC_2_SYMLINKS > > }; > > >enum > { > _SC_ARG_MAX, > > _SC_CHILD_MAX, > > _SC_CLK_TCK, > > _SC_NGROUPS_MAX, > > _SC_OPEN_MAX, > > _SC_STREAM_MAX, > > _SC_TZNAME_MAX, > > _SC_JOB_CONTROL, > > _SC_SAVED_IDS, > > _SC_REALTIME_SIGNALS, > > _SC_PRIORITY_SCHEDULING, > > _SC_TIMERS, > > _SC_ASYNCHRONOUS_IO, > > _SC_PRIORITIZED_IO, > > _SC_SYNCHRONIZED_IO, > > _SC_FSYNC, > > _SC_MAPPED_FILES, > > _SC_MEMLOCK, > > _SC_MEMLOCK_RANGE, > > _SC_MEMORY_PROTECTION, > > _SC_MESSAGE_PASSING, > > _SC_SEMAPHORES, > > _SC_SHARED_MEMORY_OBJECTS, > > _SC_AIO_LISTIO_MAX, > > _SC_AIO_MAX, > > _SC_AIO_PRIO_DELTA_MAX, > > _SC_DELAYTIMER_MAX, > > _SC_MQ_OPEN_MAX, > > _SC_MQ_PRIO_MAX, > > _SC_VERSION, > > _SC_PAGESIZE, > > > _SC_RTSIG_MAX, > > _SC_SEM_NSEMS_MAX, > > _SC_SEM_VALUE_MAX, > > _SC_SIGQUEUE_MAX, > > _SC_TIMER_MAX, > > > > > _SC_BC_BASE_MAX, > > _SC_BC_DIM_MAX, > > _SC_BC_SCALE_MAX, > > _SC_BC_STRING_MAX, > > _SC_COLL_WEIGHTS_MAX, > > _SC_EQUIV_CLASS_MAX, > > _SC_EXPR_NEST_MAX, > > _SC_LINE_MAX, > > _SC_RE_DUP_MAX, > > _SC_CHARCLASS_NAME_MAX, > > > _SC_2_VERSION, > > _SC_2_C_BIND, > > _SC_2_C_DEV, > > _SC_2_FORT_DEV, > > _SC_2_FORT_RUN, > > _SC_2_SW_DEV, > > _SC_2_LOCALEDEF, > > > _SC_PII, > > _SC_PII_XTI, > > _SC_PII_SOCKET, > > _SC_PII_INTERNET, > > _SC_PII_OSI, > > _SC_POLL, > > _SC_SELECT, > > _SC_UIO_MAXIOV, > > _SC_IOV_MAX = _SC_UIO_MAXIOV, > > _SC_PII_INTERNET_STREAM, > > _SC_PII_INTERNET_DGRAM, > > _SC_PII_OSI_COTS, > > _SC_PII_OSI_CLTS, > > _SC_PII_OSI_M, > > _SC_T_IOV_MAX, > > > > _SC_THREADS, > > _SC_THREAD_SAFE_FUNCTIONS, > > _SC_GETGR_R_SIZE_MAX, > > _SC_GETPW_R_SIZE_MAX, > > _SC_LOGIN_NAME_MAX, > > _SC_TTY_NAME_MAX, > > _SC_THREAD_DESTRUCTOR_ITERATIONS, > > _SC_THREAD_KEYS_MAX, > > _SC_THREAD_STACK_MIN, > > _SC_THREAD_THREADS_MAX, > > _SC_THREAD_ATTR_STACKADDR, > > _SC_THREAD_ATTR_STACKSIZE, > > _SC_THREAD_PRIORITY_SCHEDULING, > > _SC_THREAD_PRIO_INHERIT, > > _SC_THREAD_PRIO_PROTECT, > > _SC_THREAD_PROCESS_SHARED, > > > _SC_NPROCESSORS_CONF, > > _SC_NPROCESSORS_ONLN, > > _SC_PHYS_PAGES, > > _SC_AVPHYS_PAGES, > > _SC_ATEXIT_MAX, > > _SC_PASS_MAX, > > > _SC_XOPEN_VERSION, > > _SC_XOPEN_XCU_VERSION, > > _SC_XOPEN_UNIX, > > _SC_XOPEN_CRYPT, > > _SC_XOPEN_ENH_I18N, > > _SC_XOPEN_SHM, > > > _SC_2_CHAR_TERM, > > _SC_2_C_VERSION, > > _SC_2_UPE, > > > _SC_XOPEN_XPG2, > > _SC_XOPEN_XPG3, > > _SC_XOPEN_XPG4, > > > _SC_CHAR_BIT, > > _SC_CHAR_MAX, > > _SC_CHAR_MIN, > > _SC_INT_MAX, > > _SC_INT_MIN, > > _SC_LONG_BIT, > > _SC_WORD_BIT, > > _SC_MB_LEN_MAX, > > _SC_NZERO, > > _SC_SSIZE_MAX, > > _SC_SCHAR_MAX, > > _SC_SCHAR_MIN, > > _SC_SHRT_MAX, > > _SC_SHRT_MIN, > > _SC_UCHAR_MAX, > > _SC_UINT_MAX, > > _SC_ULONG_MAX, > > _SC_USHRT_MAX, > > > _SC_NL_ARGMAX, > > _SC_NL_LANGMAX, > > _SC_NL_MSGMAX, > > _SC_NL_NMAX, > > _SC_NL_SETMAX, > > _SC_NL_TEXTMAX, > > > _SC_XBS5_ILP32_OFF32, > > _SC_XBS5_ILP32_OFFBIG, > > _SC_XBS5_LP64_OFF64, > > _SC_XBS5_LPBIG_OFFBIG, > > > _SC_XOPEN_LEGACY, > > _SC_XOPEN_REALTIME, > > _SC_XOPEN_REALTIME_THREADS, > > > _SC_ADVISORY_INFO, > > _SC_BARRIERS, > > _SC_BASE, > > _SC_C_LANG_SUPPORT, > > _SC_C_LANG_SUPPORT_R, > > _SC_CLOCK_SELECTION, > > _SC_CPUTIME, > > _SC_THREAD_CPUTIME, > > _SC_DEVICE_IO, > > _SC_DEVICE_SPECIFIC, > > _SC_DEVICE_SPECIFIC_R, > > _SC_FD_MGMT, > > _SC_FIFO, > > _SC_PIPE, > > _SC_FILE_ATTRIBUTES, > > _SC_FILE_LOCKING, > > _SC_FILE_SYSTEM, > > _SC_MONOTONIC_CLOCK, > > _SC_MULTI_PROCESS, > > _SC_SINGLE_PROCESS, > > _SC_NETWORKING, > > _SC_READER_WRITER_LOCKS, > > _SC_SPIN_LOCKS, > > _SC_REGEXP, > > _SC_REGEX_VERSION, > > _SC_SHELL, > > _SC_SIGNALS, > > _SC_SPAWN, > > _SC_SPORADIC_SERVER, > > _SC_THREAD_SPORADIC_SERVER, > > _SC_SYSTEM_DATABASE, > > _SC_SYSTEM_DATABASE_R, > > _SC_TIMEOUTS, > > _SC_TYPED_MEMORY_OBJECTS, > > _SC_USER_GROUPS, > > _SC_USER_GROUPS_R, > > _SC_2_PBS, > > _SC_2_PBS_ACCOUNTING, > > _SC_2_PBS_LOCATE, > > _SC_2_PBS_MESSAGE, > > _SC_2_PBS_TRACK, > > _SC_SYMLOOP_MAX, > > _SC_STREAMS, > > _SC_2_PBS_CHECKPOINT, > > > _SC_V6_ILP32_OFF32, > > _SC_V6_ILP32_OFFBIG, > > _SC_V6_LP64_OFF64, > > _SC_V6_LPBIG_OFFBIG, > > > _SC_HOST_NAME_MAX, > > _SC_TRACE, > > _SC_TRACE_EVENT_FILTER, > > _SC_TRACE_INHERIT, > > _SC_TRACE_LOG, > > > _SC_LEVEL1_ICACHE_SIZE, > > _SC_LEVEL1_ICACHE_ASSOC, > > _SC_LEVEL1_ICACHE_LINESIZE, > > _SC_LEVEL1_DCACHE_SIZE, > > _SC_LEVEL1_DCACHE_ASSOC, > > _SC_LEVEL1_DCACHE_LINESIZE, > > _SC_LEVEL2_CACHE_SIZE, > > _SC_LEVEL2_CACHE_ASSOC, > > _SC_LEVEL2_CACHE_LINESIZE, > > _SC_LEVEL3_CACHE_SIZE, > > _SC_LEVEL3_CACHE_ASSOC, > > _SC_LEVEL3_CACHE_LINESIZE, > > _SC_LEVEL4_CACHE_SIZE, > > _SC_LEVEL4_CACHE_ASSOC, > > _SC_LEVEL4_CACHE_LINESIZE, > > > > _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, > > _SC_RAW_SOCKETS, > > > _SC_V7_ILP32_OFF32, > > _SC_V7_ILP32_OFFBIG, > > _SC_V7_LP64_OFF64, > > _SC_V7_LPBIG_OFFBIG, > > > _SC_SS_REPL_MAX, > > > _SC_TRACE_EVENT_NAME_MAX, > > _SC_TRACE_NAME_MAX, > > _SC_TRACE_SYS_MAX, > > _SC_TRACE_USER_EVENT_MAX, > > > _SC_XOPEN_STREAMS, > > > _SC_THREAD_ROBUST_PRIO_INHERIT, > > _SC_THREAD_ROBUST_PRIO_PROTECT > > }; > > >enum > { > _CS_PATH, > > > _CS_V6_WIDTH_RESTRICTED_ENVS, > > > > _CS_GNU_LIBC_VERSION, > > _CS_GNU_LIBPTHREAD_VERSION, > > > _CS_V5_WIDTH_RESTRICTED_ENVS, > > > > _CS_V7_WIDTH_RESTRICTED_ENVS, > > > > _CS_LFS_CFLAGS = 1000, > > _CS_LFS_LDFLAGS, > > _CS_LFS_LIBS, > > _CS_LFS_LINTFLAGS, > > _CS_LFS64_CFLAGS, > > _CS_LFS64_LDFLAGS, > > _CS_LFS64_LIBS, > > _CS_LFS64_LINTFLAGS, > > > _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, > > _CS_XBS5_ILP32_OFF32_LDFLAGS, > > _CS_XBS5_ILP32_OFF32_LIBS, > > _CS_XBS5_ILP32_OFF32_LINTFLAGS, > > _CS_XBS5_ILP32_OFFBIG_CFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LDFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LIBS, > > _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, > > _CS_XBS5_LP64_OFF64_CFLAGS, > > _CS_XBS5_LP64_OFF64_LDFLAGS, > > _CS_XBS5_LP64_OFF64_LIBS, > > _CS_XBS5_LP64_OFF64_LINTFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_CFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LIBS, > > _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_POSIX_V6_ILP32_OFF32_CFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LIBS, > > _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LIBS, > > _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, > > _CS_POSIX_V6_LP64_OFF64_CFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LDFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LIBS, > > _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_POSIX_V7_ILP32_OFF32_CFLAGS, > > _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, > > _CS_POSIX_V7_ILP32_OFF32_LIBS, > > _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, > > _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, > > _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, > > _CS_POSIX_V7_ILP32_OFFBIG_LIBS, > > _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, > > _CS_POSIX_V7_LP64_OFF64_CFLAGS, > > _CS_POSIX_V7_LP64_OFF64_LDFLAGS, > > _CS_POSIX_V7_LP64_OFF64_LIBS, > > _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, > > _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, > > _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, > > _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, > > _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_V6_ENV, > > _CS_V7_ENV > > }; ># 610 "../posix/unistd.h" 2 > > >extern long int pathconf (const char *__path, int __name) > __attribute__ ((__nothrow__ )) ; > > >extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ )); > > >extern long int sysconf (int __name) __attribute__ ((__nothrow__ )); > > > >extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ )); > > > > >extern __pid_t getpid (void) __attribute__ ((__nothrow__ )); > > >extern __pid_t getppid (void) __attribute__ ((__nothrow__ )); > > >extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ )); > > >extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ )); > >extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ )); > > > > > > >extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ )); ># 660 "../posix/unistd.h" >extern int setpgrp (void) __attribute__ ((__nothrow__ )); > > > > > > >extern __pid_t setsid (void) __attribute__ ((__nothrow__ )); > > > >extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ )); > > > >extern __uid_t getuid (void) __attribute__ ((__nothrow__ )); > > >extern __uid_t geteuid (void) __attribute__ ((__nothrow__ )); > > >extern __gid_t getgid (void) __attribute__ ((__nothrow__ )); > > >extern __gid_t getegid (void) __attribute__ ((__nothrow__ )); > > > > >extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ )) ; > > > >extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__ )); > > > > > > >extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ )) ; > > > > >extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ )) ; > > > > >extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ )) ; > > > > > > >extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ )) ; > > > > >extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ )) ; > > > > >extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ )) ; > > > > > >extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) > __attribute__ ((__nothrow__ )); > > > >extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) > __attribute__ ((__nothrow__ )); > > > >extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) > __attribute__ ((__nothrow__ )) ; > > > >extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) > __attribute__ ((__nothrow__ )) ; > > > > > > >extern __pid_t fork (void) __attribute__ ((__nothrow__)); > > > > > > > >extern __pid_t vfork (void) __attribute__ ((__nothrow__ )); > > > > > >extern char *ttyname (int __fd) __attribute__ ((__nothrow__ )); > > > >extern int ttyname_r (int __fd, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__ )) ; > > > >extern int isatty (int __fd) __attribute__ ((__nothrow__ )); > > > > > >extern int ttyslot (void) __attribute__ ((__nothrow__ )); > > > > >extern int link (const char *__from, const char *__to) > __attribute__ ((__nothrow__ )) ; > > > > >extern int linkat (int __fromfd, const char *__from, int __tofd, > const char *__to, int __flags) > __attribute__ ((__nothrow__ )) ; > > > > >extern int symlink (const char *__from, const char *__to) > __attribute__ ((__nothrow__ )) ; > > > > >extern ssize_t readlink (const char *__restrict __path, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__ )) ; > > > > >extern int symlinkat (const char *__from, int __tofd, > const char *__to) __attribute__ ((__nothrow__ )) ; > > >extern ssize_t readlinkat (int __fd, const char *__restrict __path, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__ )) ; > > > >extern int unlink (const char *__name) __attribute__ ((__nothrow__ )) ; > > > >extern int unlinkat (int __fd, const char *__name, int __flag) > __attribute__ ((__nothrow__ )) ; > > > >extern int rmdir (const char *__path) __attribute__ ((__nothrow__ )) ; > > > >extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ )); > > >extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ )); > > > > > > >extern char *getlogin (void); > > > > > > > >extern int getlogin_r (char *__name, size_t __name_len) ; > > > > >extern int setlogin (const char *__name) __attribute__ ((__nothrow__ )) ; ># 871 "../posix/unistd.h" ># 1 "../include/getopt.h" 1 > > > ># 1 "../posix/getopt.h" 1 ># 57 "../posix/getopt.h" >extern char *optarg; ># 71 "../posix/getopt.h" >extern int optind; > > > > >extern int opterr; > > > >extern int optopt; ># 150 "../posix/getopt.h" >extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) > __attribute__ ((__nothrow__ )); ># 5 "../include/getopt.h" 2 ># 872 "../posix/unistd.h" 2 > > > > > > > >extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ )) ; > > > > > > >extern int sethostname (const char *__name, size_t __len) > __attribute__ ((__nothrow__ )) ; > > > >extern int sethostid (long int __id) __attribute__ ((__nothrow__ )) ; > > > > > >extern int getdomainname (char *__name, size_t __len) > __attribute__ ((__nothrow__ )) ; >extern int setdomainname (const char *__name, size_t __len) > __attribute__ ((__nothrow__ )) ; > > > > > >extern int vhangup (void) __attribute__ ((__nothrow__ )); > > >extern int revoke (const char *__file) __attribute__ ((__nothrow__ )) ; > > > > > > > >extern int profil (unsigned short int *__sample_buffer, size_t __size, > size_t __offset, unsigned int __scale) > __attribute__ ((__nothrow__ )) ; > > > > > >extern int acct (const char *__name) __attribute__ ((__nothrow__ )); > > > >extern char *getusershell (void) __attribute__ ((__nothrow__ )); >extern void endusershell (void) __attribute__ ((__nothrow__ )); >extern void setusershell (void) __attribute__ ((__nothrow__ )); > > > > > >extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ )) ; > > > > > > >extern int chroot (const char *__path) __attribute__ ((__nothrow__ )) ; > > > >extern char *getpass (const char *__prompt) ; > > > > > > > >extern int fsync (int __fd); > > > > > >extern int syncfs (int __fd) __attribute__ ((__nothrow__ )); > > > > > > >extern long int gethostid (void); > > >extern void sync (void) __attribute__ ((__nothrow__ )); > > > > > >extern int getpagesize (void) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)); > > > > >extern int getdtablesize (void) __attribute__ ((__nothrow__ )); ># 993 "../posix/unistd.h" >extern int truncate (const char *__file, __off_t __length) > __attribute__ ((__nothrow__ )) ; ># 1005 "../posix/unistd.h" >extern int truncate64 (const char *__file, __off64_t __length) > __attribute__ ((__nothrow__ )) ; ># 1016 "../posix/unistd.h" >extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__ )) ; ># 1026 "../posix/unistd.h" >extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__ )) ; ># 1037 "../posix/unistd.h" >extern int brk (void *__addr) __attribute__ ((__nothrow__ )) ; > > > > > >extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ )); ># 1058 "../posix/unistd.h" >extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ )); ># 1112 "../posix/unistd.h" >extern int fdatasync (int __fildes); > > > > > > > >extern char *crypt (const char *__key, const char *__salt) > __attribute__ ((__nothrow__ )) ; > > > >extern void encrypt (char *__glibc_block, int __edflag) > __attribute__ ((__nothrow__ )) ; > > > > > > >extern void swab (const void *__restrict __from, void *__restrict __to, > ssize_t __n) __attribute__ ((__nothrow__ )) ; ># 1151 "../posix/unistd.h" > ># 3 "../include/unistd.h" 2 > > > > > > > > > > > > > > > > > > > > > >extern int __access (const char *__name, int __type); >extern int __euidaccess (const char *__name, int __type); >extern __off64_t __lseek64 (int __fd, __off64_t __offset, int __whence); >extern __off_t __lseek (int __fd, __off_t __offset, int __whence); > >extern __off_t __libc_lseek (int __fd, __off_t __offset, int __whence); >extern __off64_t __libc_lseek64 (int __fd, __off64_t __offset, int __whence); >extern ssize_t __pread (int __fd, void *__buf, size_t __nbytes, > __off_t __offset); >extern ssize_t __libc_pread (int __fd, void *__buf, size_t __nbytes, > __off_t __offset); >extern ssize_t __pread64 (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset); >extern ssize_t __libc_pread64 (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset); >extern ssize_t __pwrite (int __fd, const void *__buf, size_t __n, > __off_t __offset); >extern ssize_t __libc_pwrite (int __fd, const void *__buf, size_t __n, > __off_t __offset); >extern ssize_t __pwrite64 (int __fd, const void *__buf, size_t __n, > __off64_t __offset); > >extern ssize_t __libc_pwrite64 (int __fd, const void *__buf, size_t __n, > __off64_t __offset) __attribute__ ((visibility ("hidden"))); >extern ssize_t __libc_read (int __fd, void *__buf, size_t __n); > >extern ssize_t __libc_write (int __fd, const void *__buf, size_t __n); > >extern int __pipe (int __pipedes[2]); > >extern int __pipe2 (int __pipedes[2], int __flags); >extern unsigned int __sleep (unsigned int __seconds); >extern int __chown (const char *__file, > __uid_t __owner, __gid_t __group); > >extern int __fchown (int __fd, > __uid_t __owner, __gid_t __group); >extern int __lchown (const char *__file, __uid_t __owner, > __gid_t __group); >extern int __chdir (const char *__path); >extern int __fchdir (int __fd); >extern char *__getcwd (char *__buf, size_t __size); >extern int __rmdir (const char *__path); >extern int __execvpe (const char *file, char *const argv[], > char *const envp[]); > > > > > > > >char *__canonicalize_directory_name_internal (const char *__thisdir, > char *__buf, > size_t __size) __attribute__ ((visibility ("hidden"))); > >extern int __dup (int __fd); >extern int __dup2 (int __fd, int __fd2); > >extern int __dup3 (int __fd, int __fd2, int flags); > >extern int __execve (const char *__path, char *const __argv[], > char *const __envp[]); >extern long int __pathconf (const char *__path, int __name); >extern long int __fpathconf (int __fd, int __name); >extern long int __sysconf (int __name); > >extern __pid_t __getpid (void); > >extern __pid_t __getppid (void); >extern __pid_t __setsid (void); >extern __uid_t __getuid (void); >extern __uid_t __geteuid (void); >extern __gid_t __getgid (void); >extern __gid_t __getegid (void); >extern int __getgroups (int __size, __gid_t __list[]); > >extern int __group_member (__gid_t __gid); >extern int __setuid (__uid_t __uid); >extern int __setreuid (__uid_t __ruid, __uid_t __euid); >extern int __setgid (__gid_t __gid); >extern int __setpgid (__pid_t __pid, __pid_t __pgid); > >extern int __setregid (__gid_t __rgid, __gid_t __egid); >extern int __getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid); >extern int __getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid); >extern int __setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid); >extern int __setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid); > > > > >extern __pid_t __vfork (void); > >extern int __ttyname_r (int __fd, char *__buf, size_t __buflen); >extern int __isatty (int __fd); >extern int __link (const char *__from, const char *__to); >extern int __symlink (const char *__from, const char *__to); >extern ssize_t __readlink (const char *__path, char *__buf, size_t __len); >extern int __unlink (const char *__name); >extern int __gethostname (char *__name, size_t __len); >extern int __profil (unsigned short int *__sample_buffer, size_t __size, > size_t __offset, unsigned int __scale); >extern int __getdtablesize (void); >extern int __brk (void *__addr); >extern int __close (int __fd); > >extern int __libc_close (int __fd); >extern ssize_t __read (int __fd, void *__buf, size_t __nbytes); > >extern ssize_t __write (int __fd, const void *__buf, size_t __n); > >extern __pid_t __fork (void); > >extern int __getpagesize (void) __attribute__ ((__const__)); > >extern int __ftruncate (int __fd, __off_t __length); >extern int __ftruncate64 (int __fd, __off64_t __length); >extern int __truncate (const char *path, __off_t __length); >extern void *__sbrk (intptr_t __delta); > > > > > > > > >extern int __libc_enable_secure __attribute__ ((section (".data.rel.ro"))); >extern int __libc_enable_secure_decided; > > >extern int __libc_enable_secure_internal __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden"))); > > > > >extern void __libc_check_standard_fds (void); > > > >extern __pid_t __libc_fork (void); > > > >extern int __libc_pause (void); > >extern int __pause_nocancel (void) __attribute__ ((visibility ("hidden"))); > >extern int __have_sock_cloexec __attribute__ ((visibility ("hidden"))); >extern int __have_pipe2 __attribute__ ((visibility ("hidden"))); >extern int __have_dup3 __attribute__ ((visibility ("hidden"))); > >extern int __getlogin_r_loginuid (char *name, size_t namesize) > __attribute__ ((visibility ("hidden"))); > > ># 26 "rtld.c" 2 ># 1 "../include/sys/mman.h" 1 > ># 1 "../misc/sys/mman.h" 1 ># 25 "../misc/sys/mman.h" ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 26 "../misc/sys/mman.h" 2 ># 41 "../misc/sys/mman.h" ># 1 "../sysdeps/unix/sysv/linux/x86/bits/mman.h" 1 ># 45 "../sysdeps/unix/sysv/linux/x86/bits/mman.h" ># 1 "../bits/mman-linux.h" 1 ># 45 "../sysdeps/unix/sysv/linux/x86/bits/mman.h" 2 ># 42 "../misc/sys/mman.h" 2 > > > > > ># 57 "../misc/sys/mman.h" >extern void *mmap (void *__addr, size_t __len, int __prot, > int __flags, int __fd, __off_t __offset) __attribute__ ((__nothrow__ )); ># 70 "../misc/sys/mman.h" >extern void *mmap64 (void *__addr, size_t __len, int __prot, > int __flags, int __fd, __off64_t __offset) __attribute__ ((__nothrow__ )); > > > > >extern int munmap (void *__addr, size_t __len) __attribute__ ((__nothrow__ )); > > > > >extern int mprotect (void *__addr, size_t __len, int __prot) __attribute__ ((__nothrow__ )); > > > > > > > >extern int msync (void *__addr, size_t __len, int __flags); > > > > >extern int madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__ )); > > > >extern int posix_madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__ )); > > > > >extern int mlock (const void *__addr, size_t __len) __attribute__ ((__nothrow__ )); > > >extern int munlock (const void *__addr, size_t __len) __attribute__ ((__nothrow__ )); > > > > >extern int mlockall (int __flags) __attribute__ ((__nothrow__ )); > > > >extern int munlockall (void) __attribute__ ((__nothrow__ )); > > > > > > > >extern int mincore (void *__start, size_t __len, unsigned char *__vec) > __attribute__ ((__nothrow__ )); ># 133 "../misc/sys/mman.h" >extern void *mremap (void *__addr, size_t __old_len, size_t __new_len, > int __flags, ...) __attribute__ ((__nothrow__ )); > > > >extern int remap_file_pages (void *__start, size_t __size, int __prot, > size_t __pgoff, int __flags) __attribute__ ((__nothrow__ )); > > > > >extern int shm_open (const char *__name, int __oflag, mode_t __mode); > > >extern int shm_unlink (const char *__name); > > ># 3 "../include/sys/mman.h" 2 > > > >extern void *__mmap (void *__addr, size_t __len, int __prot, > int __flags, int __fd, __off_t __offset); >extern void *__mmap64 (void *__addr, size_t __len, int __prot, > int __flags, int __fd, __off64_t __offset); >extern int __munmap (void *__addr, size_t __len); >extern int __mprotect (void *__addr, size_t __len, int __prot); > >extern int __madvise (void *__addr, size_t __len, int __advice); > > > >extern void *__mremap (void *__addr, size_t __old_len, > size_t __new_len, int __flags, ...); ># 27 "rtld.c" 2 ># 1 "../include/sys/param.h" 1 ># 28 "rtld.c" 2 > ># 1 "../sysdeps/unix/sysv/linux/ldsodefs.h" 1 ># 22 "../sysdeps/unix/sysv/linux/ldsodefs.h" ># 1 "../sysdeps/gnu/ldsodefs.h" 1 ># 23 "../sysdeps/gnu/ldsodefs.h" ># 1 "/builddir/build/BUILD/glibc-2.19-883-g7e54fd0/build-i686-redhat-linux/libc-abis.h" 1 > > > >enum >{ > LIBC_ABI_DEFAULT = 0, > LIBC_ABI_UNIQUE, > LIBC_ABI_IFUNC, > LIBC_ABI_MAX >}; ># 24 "../sysdeps/gnu/ldsodefs.h" 2 ># 46 "../sysdeps/gnu/ldsodefs.h" ># 1 "../sysdeps/i386/ldsodefs.h" 1 ># 24 "../sysdeps/i386/ldsodefs.h" >struct La_i86_regs; >struct La_i86_retval; ># 38 "../sysdeps/i386/ldsodefs.h" ># 1 "../sysdeps/generic/ldsodefs.h" 1 ># 27 "../sysdeps/generic/ldsodefs.h" ># 1 "/usr/lib/gcc/i686-redhat-linux/4.9.1/include/stddef.h" 1 3 4 ># 28 "../sysdeps/generic/ldsodefs.h" 2 > > > > > ># 1 "../include/fpu_control.h" 1 ># 1 "../sysdeps/x86/fpu_control.h" 1 ># 91 "../sysdeps/x86/fpu_control.h" >typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__HI__))); ># 107 "../sysdeps/x86/fpu_control.h" >extern fpu_control_t __fpu_control; ># 2 "../include/fpu_control.h" 2 > > >extern void __setfpucw (fpu_control_t); ># 34 "../sysdeps/generic/ldsodefs.h" 2 > > ># 1 "../sysdeps/i386/dl-lookupcfg.h" 1 ># 21 "../sysdeps/i386/dl-lookupcfg.h" ># 1 "../sysdeps/generic/dl-lookupcfg.h" 1 ># 22 "../sysdeps/i386/dl-lookupcfg.h" 2 > >struct link_map; > >extern void __attribute__ ((regparm (3), stdcall)) _dl_unmap (struct link_map *map); ># 37 "../sysdeps/generic/ldsodefs.h" 2 > > > > > > ># 67 "../sysdeps/generic/ldsodefs.h" >typedef struct link_map *lookup_t; ># 137 "../sysdeps/generic/ldsodefs.h" >struct r_found_version > { > const char *name; > Elf32_Word hash; > > int hidden; > const char *filename; > }; > > > >enum r_dir_status { unknown, nonexisting, existing }; > >struct r_search_path_elem > { > > struct r_search_path_elem *next; > > > const char *what; > const char *where; > > > > const char *dirname; > size_t dirnamelen; > > enum r_dir_status status[0]; > }; > >struct r_strlenpair > { > const char *str; > size_t len; > }; > > > >struct libname_list > { > const char *name; > struct libname_list *next; > int dont_free; > > }; > > > > >enum allowmask > { > allow_libc = 1, > allow_libdl = 2, > allow_libpthread = 4, > allow_ldso = 8 > }; > > >struct audit_ifaces >{ > void (*activity) (uintptr_t *, unsigned int); > char *(*objsearch) (const char *, uintptr_t *, unsigned int); > unsigned int (*objopen) (struct link_map *, Lmid_t, uintptr_t *); > void (*preinit) (uintptr_t *); > union > { > uintptr_t (*symbind32) (Elf32_Sym *, unsigned int, uintptr_t *, > uintptr_t *, unsigned int *, const char *); > uintptr_t (*symbind64) (Elf64_Sym *, unsigned int, uintptr_t *, > uintptr_t *, unsigned int *, const char *); > }; > union > { > > Elf32_Addr (*i86_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, struct La_i86_regs *, unsigned int *, const char *name, long int *framesizep); > > }; > union > { > > unsigned int (*i86_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_i86_regs *, struct La_i86_retval *, const char *); > > }; > unsigned int (*objclose) (uintptr_t *); > > struct audit_ifaces *next; >}; > > > >extern int _dl_name_match_p (const char *__name, const struct link_map *__map) > __attribute__ ((regparm (3), stdcall)); > > >extern unsigned long int _dl_higher_prime_number (unsigned long int n) > __attribute__ ((regparm (3), stdcall)); > > > > >typedef void (*receiver_fct) (int, const char *, const char *); ># 258 "../sysdeps/generic/ldsodefs.h" >struct rtld_global >{ ># 270 "../sysdeps/generic/ldsodefs.h" > struct link_namespaces > { > > struct link_map *_ns_loaded; > > unsigned int _ns_nloaded; > > struct r_scope_elem *_ns_main_searchlist; > > > > size_t _ns_global_scope_alloc; > > struct unique_sym_table > { > __rtld_lock_recursive_t lock; > struct unique_sym > { > uint32_t hashval; > const char *name; > const Elf32_Sym *sym; > const struct link_map *map; > } *entries; > size_t size; > size_t n_elements; > void (*free) (void *); > } _ns_unique_sym_table; > > struct r_debug _ns_debug; > } _dl_ns[16]; > > size_t _dl_nns; ># 310 "../sysdeps/generic/ldsodefs.h" > __rtld_lock_recursive_t _dl_load_lock; > > > > __rtld_lock_recursive_t _dl_load_write_lock; > > > unsigned long long _dl_load_adds; > > > struct link_map *_dl_initfirst; > > > > hp_timing_t _dl_cpuclock_offset; > > > > struct link_map *_dl_profile_map; > > > unsigned long int _dl_num_relocations; > unsigned long int _dl_num_cache_relocations; > > > struct r_search_path_elem *_dl_all_dirs; > > > void **(*_dl_error_catch_tsd) (void) __attribute__ ((const)); > > > > > struct link_map _dl_rtld_map; > > struct auditstate audit_data[16]; > > > > > void (*_dl_rtld_lock_recursive) (void *); > void (*_dl_rtld_unlock_recursive) (void *); > > > > > > int (*_dl_make_stack_executable_hook) (void **) __attribute__ ((regparm (3), stdcall)); > > > Elf32_Word _dl_stack_flags; > > > _Bool _dl_tls_dtv_gaps; > > size_t _dl_tls_max_dtv_idx; > > struct dtv_slotinfo_list > { > size_t len; > struct dtv_slotinfo_list *next; > struct dtv_slotinfo > { > size_t gen; > struct link_map *map; > } slotinfo[0]; > } *_dl_tls_dtv_slotinfo_list; > > size_t _dl_tls_static_nelem; > > size_t _dl_tls_static_size; > > size_t _dl_tls_static_used; > > size_t _dl_tls_static_align; ># 395 "../sysdeps/generic/ldsodefs.h" > void *_dl_initial_dtv; > > size_t _dl_tls_generation; > > void (*_dl_init_static_tls) (struct link_map *); > > void (*_dl_wait_lookup_done) (void); > > > struct dl_scope_free_list > { > size_t count; > void *list[50]; > } *_dl_scope_free_list; > >}; ># 421 "../sysdeps/generic/ldsodefs.h" >extern struct rtld_global _rtld_local __attribute__ ((visibility ("hidden"))); > > >extern struct rtld_global _rtld_global ; ># 436 "../sysdeps/generic/ldsodefs.h" >struct rtld_global_ro >{ > > > > int _dl_debug_mask; ># 457 "../sysdeps/generic/ldsodefs.h" > unsigned int _dl_osversion; > > const char *_dl_platform; > size_t _dl_platformlen; > > > size_t _dl_pagesize; > > > int _dl_inhibit_cache; > > > struct r_scope_elem _dl_initial_searchlist; > > > int _dl_clktck; > > > int _dl_verbose; > > > int _dl_debug_fd; > > > int _dl_lazy; > > > int _dl_bind_not; > > > > int _dl_dynamic_weak; > > > fpu_control_t _dl_fpu_control; > > > int _dl_correct_cache_id; > > > uint64_t _dl_hwcap; > > > uint64_t _dl_hwcap_mask; > > > Elf32_auxv_t *_dl_auxv; > > > > > > ># 1 "../sysdeps/i386/dl-procinfo.c" 1 ># 49 "../sysdeps/i386/dl-procinfo.c" > const char _dl_x86_cap_flags[32][8] ># 60 "../sysdeps/i386/dl-procinfo.c" >; > > > > > > > > const char _dl_x86_platforms[4][5] > > > > > > > >; ># 511 "../sysdeps/generic/ldsodefs.h" 2 > > > const char *_dl_inhibit_rpath; > > > const char *_dl_origin_path; > > > > > Elf32_Addr _dl_use_load_bias; > > > const char *_dl_profile; > > const char *_dl_profile_output; > > const char *_dl_trace_prelink; > > struct link_map *_dl_trace_prelink_map; > > > struct r_search_path_elem *_dl_init_all_dirs; > > > > uintptr_t _dl_sysinfo; > > > > > > const Elf32_Ehdr *_dl_sysinfo_dso; > > > > struct link_map *_dl_sysinfo_map; > > > > > uint64_t _dl_hwcap2; > > > > > > > void (*_dl_debug_printf) (const char *, ...) > __attribute__ ((__format__ (__printf__, 1, 2))); > int (__attribute__ ((regparm (3), stdcall)) *_dl_catch_error) (const char **, const char **, > _Bool *, void (*) (void *), void *); > void (__attribute__ ((regparm (3), stdcall)) *_dl_signal_error) (int, const char *, const char *, > const char *); > void (*_dl_mcount) (Elf32_Addr frompc, Elf32_Addr selfpc); > lookup_t (__attribute__ ((regparm (3), stdcall)) *_dl_lookup_symbol_x) (const char *, > struct link_map *, > const Elf32_Sym **, > struct r_scope_elem *[], > const struct r_found_version *, > int, int, > struct link_map *); > int (*_dl_check_caller) (const void *, enum allowmask); > void *(*_dl_open) (const char *file, int mode, const void *caller_dlopen, > Lmid_t nsid, int argc, char *argv[], char *env[]); > void (*_dl_close) (void *map); > void *(*_dl_tls_get_addr_soft) (struct link_map *); > > int (*_dl_discover_osversion) (void); > > > > struct audit_ifaces *_dl_audit; > unsigned int _dl_naudit; > > > int _dl_pointer_guard; >}; > > > >extern struct rtld_global_ro _rtld_local_ro > __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden"))); >extern struct rtld_global_ro _rtld_global_ro > __attribute__ ((section (".data.rel.ro"))) ; ># 616 "../sysdeps/generic/ldsodefs.h" >extern void **_dl_initial_error_catch_tsd (void) __attribute__ ((const)) > __attribute__ ((visibility ("hidden"))); > > > > >extern int _dl_make_stack_executable (void **stack_endp) __attribute__ ((regparm (3), stdcall)); >extern __typeof (_dl_make_stack_executable) _dl_make_stack_executable __asm__ ("" "__GI__dl_make_stack_executable") __attribute__ ((visibility ("hidden"))); > > > > > > >extern void *__libc_stack_end > > __attribute__ ((section (".data.rel.ro"))) > > ; >extern __typeof (__libc_stack_end) __libc_stack_end __asm__ ("" "__GI___libc_stack_end") __attribute__ ((visibility ("hidden"))); > > >extern int _dl_argc __attribute__ ((visibility ("hidden"))) __attribute__ ((section (".data.rel.ro"))); >extern char **_dl_argv > > __attribute__ ((section (".data.rel.ro"))) > > ; > >extern unsigned int _dl_skip_args __attribute__ ((visibility ("hidden"))) > > __attribute__ ((section (".data.rel.ro"))) > > ; >extern unsigned int _dl_skip_args_internal __attribute__ ((visibility ("hidden"))) > > __attribute__ ((section (".data.rel.ro"))) > > ; >extern char **_dl_argv_internal __attribute__ ((visibility ("hidden"))) > > __attribute__ ((section (".data.rel.ro"))) > > ; > > > > > > >extern int _dl_starting_up; > ># 667 "../sysdeps/generic/ldsodefs.h" >#pragma weak _dl_starting_up ># 667 "../sysdeps/generic/ldsodefs.h" > > >extern int _dl_starting_up_internal __attribute__ ((visibility ("hidden"))); > > > >extern void *_dl_random __attribute__ ((visibility ("hidden"))) __attribute__ ((section (".data.rel.ro"))); > > >extern int _dl_sysdep_open_zero_fill (void); > > > > > >extern void _dl_debug_printf (const char *fmt, ...) > __attribute__ ((__format__ (__printf__, 1, 2))) __attribute__ ((visibility ("hidden"))); > > > > >extern void _dl_debug_printf_c (const char *fmt, ...) > __attribute__ ((__format__ (__printf__, 1, 2))); > > > > >extern void _dl_dprintf (int fd, const char *fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))) > __attribute__ ((visibility ("hidden"))); ># 724 "../sysdeps/generic/ldsodefs.h" >extern void _dl_signal_error (int errcode, const char *object, > const char *occurred, const char *errstring) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((__noreturn__)) __attribute__ ((visibility ("hidden"))); > > > >extern void _dl_signal_cerror (int errcode, const char *object, > const char *occation, const char *errstring) > __attribute__ ((regparm (3), stdcall)); > > > > > >extern void _dl_receive_error (receiver_fct fct, void (*operate) (void *), > void *args) > __attribute__ ((regparm (3), stdcall)); > > > > > >extern struct link_map *_dl_map_object (struct link_map *loader, > const char *name, > int type, int trace_mode, int mode, > Lmid_t nsid) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > > > > >extern void _dl_map_object_deps (struct link_map *map, > struct link_map **preloads, > unsigned int npreloads, int trace_mode, > int open_mode) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > >extern void _dl_setup_hash (struct link_map *map) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > > > > > > >extern void _dl_rtld_di_serinfo (struct link_map *loader, > Dl_serinfo *si, _Bool counting) > __attribute__ ((regparm (3), stdcall)); ># 786 "../sysdeps/generic/ldsodefs.h" >enum > { > > DL_LOOKUP_ADD_DEPENDENCY = 1, > > > DL_LOOKUP_RETURN_NEWEST = 2, > > DL_LOOKUP_GSCOPE_LOCK = 4, > }; > > >extern lookup_t _dl_lookup_symbol_x (const char *undef, > struct link_map *undef_map, > const Elf32_Sym **sym, > struct r_scope_elem *symbol_scope[], > const struct r_found_version *version, > int type_class, int flags, > struct link_map *skip_map) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > > >extern Elf32_Addr _dl_symbol_value (struct link_map *map, const char *name) > __attribute__ ((regparm (3), stdcall)); > > >extern void _dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > >extern struct link_map *_dl_new_object (char *realname, const char *libname, > int type, struct link_map *loader, > int mode, Lmid_t nsid) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > > > >extern void _dl_relocate_object (struct link_map *map, > struct r_scope_elem *scope[], > int reloc_mode, int consider_profiling) > __attribute__ ((visibility ("hidden"))); > > >extern void _dl_protect_relro (struct link_map *map) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > > > >extern void _dl_reloc_bad_type (struct link_map *map, > unsigned int type, int plt) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((__noreturn__)); > > >extern void _dl_resolve_conflicts (struct link_map *l, > Elf32_Rela *conflict, > Elf32_Rela *conflictend); > > > >extern int _dl_check_all_versions (struct link_map *map, int verbose, > int trace_mode) > __attribute__ ((regparm (3), stdcall)); > > > >extern int _dl_check_map_versions (struct link_map *map, int verbose, > int trace_mode) > __attribute__ ((regparm (3), stdcall)); > > > >extern void _dl_init (struct link_map *main_map, int argc, char **argv, > char **env) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > > >extern void _dl_fini (void) __attribute__ ((regparm (3), stdcall)); > > >extern void _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, > Lmid_t ns) > __attribute__ ((regparm (3), stdcall)); > > > > > >extern void _dl_debug_state (void); >extern __typeof (_dl_debug_state) _dl_debug_state __asm__ ("" "__GI__dl_debug_state") __attribute__ ((visibility ("hidden"))); > > > > >extern struct r_debug *_dl_debug_initialize (Elf32_Addr ldbase, Lmid_t ns) > __attribute__ ((regparm (3), stdcall)); > > >extern void _dl_init_paths (const char *library_path) __attribute__ ((regparm (3), stdcall)); > > > >extern void _dl_start_profile (void) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > >extern void _dl_mcount (Elf32_Addr frompc, Elf32_Addr selfpc); >extern void _dl_mcount_internal (Elf32_Addr frompc, Elf32_Addr selfpc) > __attribute__ ((visibility ("hidden"))); > > > > >extern void _dl_mcount_wrapper (void *selfpc); > > >extern void _dl_show_auxv (void) __attribute__ ((regparm (3), stdcall)); > > > >extern char *_dl_next_ld_env_entry (char ***position) __attribute__ ((regparm (3), stdcall)); > > >extern const struct r_strlenpair *_dl_important_hwcaps (const char *platform, > size_t paltform_len, > size_t *sz, > size_t *max_capstrlen) > __attribute__ ((regparm (3), stdcall)); > > > >extern const char *_dl_load_cache_lookup (const char *name) > __attribute__ ((regparm (3), stdcall)); > > > > > >extern void _dl_unload_cache (void) __attribute__ ((visibility ("hidden"))); > > > > >extern void *_dl_sysdep_read_whole_file (const char *file, size_t *sizep, > int prot) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > > > > >extern Elf32_Addr _dl_sysdep_start (void **start_argptr, > void (*dl_main) (const Elf32_Phdr *phdr, > Elf32_Word phnum, > Elf32_Addr *user_entry, > Elf32_auxv_t *auxv)) > __attribute__ ((visibility ("hidden"))); > >extern void _dl_sysdep_start_cleanup (void) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > > >extern size_t _dl_next_tls_modid (void) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > >extern size_t _dl_count_modids (void) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > >extern void _dl_determine_tlsoffset (void) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > > > >extern int _dl_tls_setup (void) __attribute__ ((regparm (3), stdcall)); >extern __typeof (_dl_tls_setup) _dl_tls_setup __asm__ ("" "__GI__dl_tls_setup") __attribute__ ((visibility ("hidden"))); > > >extern void *_dl_allocate_tls (void *mem) __attribute__ ((regparm (3), stdcall)); >extern __typeof (_dl_allocate_tls) _dl_allocate_tls __asm__ ("" "__GI__dl_allocate_tls") __attribute__ ((visibility ("hidden"))); > > >extern void _dl_get_tls_static_info (size_t *sizep, size_t *alignp) > __attribute__ ((regparm (3), stdcall)); > >extern void _dl_allocate_static_tls (struct link_map *map) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > > >extern void *_dl_allocate_tls_storage (void) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); >extern void *_dl_allocate_tls_init (void *) __attribute__ ((regparm (3), stdcall)); >extern __typeof (_dl_allocate_tls_init) _dl_allocate_tls_init __asm__ ("" "__GI__dl_allocate_tls_init") __attribute__ ((visibility ("hidden"))); > > >extern void _dl_deallocate_tls (void *tcb, _Bool dealloc_tcb) __attribute__ ((regparm (3), stdcall)); >extern __typeof (_dl_deallocate_tls) _dl_deallocate_tls __asm__ ("" "__GI__dl_deallocate_tls") __attribute__ ((visibility ("hidden"))); > >extern void _dl_nothread_init_static_tls (struct link_map *) __attribute__ ((visibility ("hidden"))); > > >extern const char *_dl_get_origin (void) __attribute__ ((visibility ("hidden"))); > > >extern size_t _dl_dst_count (const char *name, int is_path) __attribute__ ((visibility ("hidden"))); > > >extern char *_dl_dst_substitute (struct link_map *l, const char *name, > char *result, int is_path) __attribute__ ((visibility ("hidden"))); > > >extern int _dl_check_caller (const void *caller, enum allowmask mask) > __attribute__ ((visibility ("hidden"))); > > > > >extern void *_dl_open (const char *name, int mode, const void *caller, > Lmid_t nsid, int argc, char *argv[], char *env[]) > __attribute__ ((visibility ("hidden"))); > > > > >extern int _dl_scope_free (void *) __attribute__ ((visibility ("hidden"))); > > >extern void _dl_add_to_slotinfo (struct link_map *l) __attribute__ ((visibility ("hidden"))); > > > >extern struct link_map *_dl_update_slotinfo (unsigned long int req_modid); > > > >extern void *_dl_tls_get_addr_soft (struct link_map *l) __attribute__ ((visibility ("hidden"))); > >extern int _dl_addr_inside_object (struct link_map *l, const Elf32_Addr addr) > __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("hidden"))); > > >extern void _dl_show_scope (struct link_map *new, int from); > >extern struct link_map *_dl_find_dso_for_object (const Elf32_Addr addr) > __attribute__ ((regparm (3), stdcall)); >extern __typeof (_dl_find_dso_for_object) _dl_find_dso_for_object __asm__ ("" "__GI__dl_find_dso_for_object") __attribute__ ((visibility ("hidden"))); > > >extern void _dl_non_dynamic_init (void) __attribute__ ((regparm (3), stdcall)); > > >extern void _dl_aux_init (Elf32_auxv_t *av) __attribute__ ((regparm (3), stdcall)); > > > ># 39 "../sysdeps/i386/ldsodefs.h" 2 ># 47 "../sysdeps/gnu/ldsodefs.h" 2 ># 23 "../sysdeps/unix/sysv/linux/ldsodefs.h" 2 ># 30 "rtld.c" 2 > ># 1 "../sysdeps/generic/entry.h" 1 > >extern void _start (void) __attribute__ ((visibility ("hidden"))); ># 32 "rtld.c" 2 ># 1 "../include/fpu_control.h" 1 > > > >extern void __setfpucw (fpu_control_t); ># 33 "rtld.c" 2 > > ># 1 "dynamic-link.h" 1 ># 42 "dynamic-link.h" >int __attribute__ ((regparm (3), stdcall)) _dl_try_allocate_static_tls (struct link_map *map); ># 88 "dynamic-link.h" ># 1 "../sysdeps/i386/dl-machine.h" 1 ># 24 "../sysdeps/i386/dl-machine.h" ># 1 "../include/sys/param.h" 1 ># 25 "../sysdeps/i386/dl-machine.h" 2 > > ># 1 "../sysdeps/i386/dl-tlsdesc.h" 1 ># 24 "../sysdeps/i386/dl-tlsdesc.h" >struct tlsdesc >{ > ptrdiff_t __attribute__ ((regparm (1))) (*entry) (struct tlsdesc *); > void *arg; >}; > >typedef struct dl_tls_index >{ > unsigned long int ti_module; > unsigned long int ti_offset; >} tls_index; > > > >struct tlsdesc_dynamic_arg >{ > tls_index tlsinfo; > size_t gen_count; >}; > >extern ptrdiff_t __attribute__ ((visibility ("hidden"))) __attribute__ ((regparm (1))) > _dl_tlsdesc_return (struct tlsdesc *), > _dl_tlsdesc_undefweak (struct tlsdesc *), > _dl_tlsdesc_resolve_abs_plus_addend (struct tlsdesc *), > _dl_tlsdesc_resolve_rel (struct tlsdesc *), > _dl_tlsdesc_resolve_rela (struct tlsdesc *), > _dl_tlsdesc_resolve_hold (struct tlsdesc *); > > >extern void *__attribute__ ((regparm (3), stdcall)) _dl_make_tlsdesc_dynamic (struct link_map *map, > size_t ti_offset); > >extern ptrdiff_t __attribute__ ((visibility ("hidden"))) __attribute__ ((regparm (1))) > _dl_tlsdesc_dynamic (struct tlsdesc *); ># 28 "../sysdeps/i386/dl-machine.h" 2 > > >static inline int __attribute__ ((unused)) >elf_machine_matches_host (const Elf32_Ehdr *ehdr) >{ > return ehdr->e_machine == 3; >} > > > > > > >static inline Elf32_Addr __attribute__ ((unused, const)) >elf_machine_dynamic (void) >{ > > > > extern const Elf32_Addr _GLOBAL_OFFSET_TABLE_[] __attribute__ ((visibility ("hidden"))); > return _GLOBAL_OFFSET_TABLE_[0]; >} > > >static inline Elf32_Addr __attribute__ ((unused)) >elf_machine_load_address (void) >{ > > > > extern Elf32_Dyn bygotoff[] asm ("_DYNAMIC") __attribute__ ((visibility ("hidden"))); > return (Elf32_Addr) &bygotoff - elf_machine_dynamic (); >} ># 96 "../sysdeps/i386/dl-machine.h" >static inline int __attribute__ ((unused, always_inline)) >elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) >{ > Elf32_Addr *got; > extern void _dl_runtime_resolve (Elf32_Word) __attribute__ ((visibility ("hidden"))); > extern void _dl_runtime_profile (Elf32_Word) __attribute__ ((visibility ("hidden"))); > > if (l->l_info[23] && lazy) > { > > > > > got = (Elf32_Addr *) (l)->l_info[3]->d_un.d_ptr; > > > > if (got[1]) > { > l->l_mach.plt = got[1] + l->l_addr; > l->l_mach.gotplt = (Elf32_Addr) &got[3]; > } > got[1] = (Elf32_Addr) l; > > > > > > > > if (__builtin_expect ((profile), 0)) > { > got[2] = (Elf32_Addr) &_dl_runtime_profile; > > if (_rtld_local_ro._dl_profile != ((void *)0) > && _dl_name_match_p (_rtld_local_ro._dl_profile, l)) > > > _rtld_local._dl_profile_map = l; > } > else > > > got[2] = (Elf32_Addr) &_dl_runtime_resolve; > } > > return lazy; >} ># 261 "../sysdeps/i386/dl-machine.h" >static inline void __attribute__ ((unused)) >dl_platform_init (void) >{ > if (_rtld_local_ro._dl_platform != ((void *)0) && *_rtld_local_ro._dl_platform == '\0') > > _rtld_local_ro._dl_platform = ((void *)0); >} > >static inline Elf32_Addr >elf_machine_fixup_plt (struct link_map *map, lookup_t t, > const Elf32_Rel *reloc, > Elf32_Addr *reloc_addr, Elf32_Addr value) >{ > return *reloc_addr = value; >} > > >static inline Elf32_Addr >elf_machine_plt_value (struct link_map *map, const Elf32_Rel *reloc, > Elf32_Addr value) >{ > return value; >} ># 89 "dynamic-link.h" 2 > ># 1 "get-dynamic-info.h" 1 ># 19 "get-dynamic-info.h" ># 1 "../include/assert.h" 1 ># 1 "../assert/assert.h" 1 ># 64 "../assert/assert.h" > > > >extern void __assert_fail (const char *__assertion, const char *__file, > unsigned int __line, const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern void __assert_perror_fail (int __errnum, const char *__file, > unsigned int __line, const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > > > >extern void __assert (const char *__assertion, const char *__file, int __line) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > > ># 2 "../include/assert.h" 2 > > > > > >extern void __assert_fail (const char *__assertion, const char *__file, > unsigned int __line, const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern void __assert_perror_fail (int __errnum, const char *__file, > unsigned int __line, > const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern void __assert_fail_base (const char *fmt, const char *assertion, > const char *file, unsigned int line, > const char *function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern __typeof (__assert_fail) __assert_fail __asm__ ("" "__GI___assert_fail") __attribute__ ((visibility ("hidden"))); >extern __typeof (__assert_perror_fail) __assert_perror_fail __asm__ ("" "__GI___assert_perror_fail") __attribute__ ((visibility ("hidden"))); ># 20 "get-dynamic-info.h" 2 > > >static > > > >inline void __attribute__ ((unused, always_inline)) >elf_get_dynamic_info (struct link_map *l, Elf32_Dyn *temp) >{ > Elf32_Dyn *dyn = l->l_ld; > Elf32_Dyn **info; > > typedef Elf32_Word d_tag_utype; > > > > > > if (dyn == ((void *)0)) > return; > > > info = l->l_info; > > while (dyn->d_tag != 0) > { > if ((d_tag_utype) dyn->d_tag < 34) > info[dyn->d_tag] = dyn; > else if (dyn->d_tag >= 0x70000000 && > dyn->d_tag < 0x70000000 + 0) > info[dyn->d_tag - 0x70000000 + 34] = dyn; > else if ((d_tag_utype) (0x6fffffff - (dyn->d_tag)) < 16) > info[(34 + 0 + (0x6fffffff - (dyn->d_tag)))] = dyn; > else if ((d_tag_utype) ((Elf32_Word)-((Elf32_Sword) (dyn->d_tag) <<1>>1)-1) < 3) > info[((Elf32_Word)-((Elf32_Sword) (dyn->d_tag) <<1>>1)-1) + 34 + 0 > + 16] = dyn; > else if ((d_tag_utype) (0x6ffffdff - (dyn->d_tag)) < 12) > info[(0x6ffffdff - (dyn->d_tag)) + 34 + 0 > + 16 + 3] = dyn; > else if ((d_tag_utype) (0x6ffffeff - (dyn->d_tag)) < 11) > info[(0x6ffffeff - (dyn->d_tag)) + 34 + 0 > + 16 + 3 + 12] = dyn; > ++dyn; > } > > > > > > if (l->l_addr != 0) > { > Elf32_Addr l_addr = l->l_addr; > int cnt = 0; ># 89 "get-dynamic-info.h" > do if (info[4] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[4]->d_tag; temp[cnt].d_un.d_ptr = info[4]->d_un.d_ptr + l_addr; info[4] = temp + cnt++; } else info[4]->d_un.d_ptr += l_addr; } while (0); > do if (info[3] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[3]->d_tag; temp[cnt].d_un.d_ptr = info[3]->d_un.d_ptr + l_addr; info[3] = temp + cnt++; } else info[3]->d_un.d_ptr += l_addr; } while (0); > do if (info[5] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[5]->d_tag; temp[cnt].d_un.d_ptr = info[5]->d_un.d_ptr + l_addr; info[5] = temp + cnt++; } else info[5]->d_un.d_ptr += l_addr; } while (0); > do if (info[6] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[6]->d_tag; temp[cnt].d_un.d_ptr = info[6]->d_un.d_ptr + l_addr; info[6] = temp + cnt++; } else info[6]->d_un.d_ptr += l_addr; } while (0); > > do if (info[7] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[7]->d_tag; temp[cnt].d_un.d_ptr = info[7]->d_un.d_ptr + l_addr; info[7] = temp + cnt++; } else info[7]->d_un.d_ptr += l_addr; } while (0); > > > do if (info[17] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[17]->d_tag; temp[cnt].d_un.d_ptr = info[17]->d_un.d_ptr + l_addr; info[17] = temp + cnt++; } else info[17]->d_un.d_ptr += l_addr; } while (0); > > do if (info[23] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[23]->d_tag; temp[cnt].d_un.d_ptr = info[23]->d_un.d_ptr + l_addr; info[23] = temp + cnt++; } else info[23]->d_un.d_ptr += l_addr; } while (0); > do if (info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr + l_addr; info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] = temp + cnt++; } else info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr += l_addr; } while (0); > do if (info[(0x6ffffeff - (0x6ffffef5)) + 34 + 0 + 16 + 3 + 12] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(0x6ffffeff - (0x6ffffef5)) + 34 + 0 + 16 + 3 + 12]->d_tag; temp[cnt].d_un.d_ptr = info[(0x6ffffeff - (0x6ffffef5)) + 34 + 0 + 16 + 3 + 12]->d_un.d_ptr + l_addr; info[(0x6ffffeff - (0x6ffffef5)) + 34 + 0 + 16 + 3 + 12] = temp + cnt++; } else info[(0x6ffffeff - (0x6ffffef5)) + 34 + 0 + 16 + 3 + 12]->d_un.d_ptr += l_addr; } while (0) > ; > > ((cnt <= 8) ? (void) (0) : __assert_fail ("cnt <= 8", "get-dynamic-info.h", 104, __PRETTY_FUNCTION__)); > } > > if (info[20] != ((void *)0)) > { > > > > > > ((info[20]->d_un.d_val == 17 || info[20]->d_un.d_val == 7) ? (void) (0) : __assert_fail ("info[20]->d_un.d_val == 17 || info[20]->d_un.d_val == 7", > "get-dynamic-info.h" ># 114 "get-dynamic-info.h" > , > 115 ># 114 "get-dynamic-info.h" > , __PRETTY_FUNCTION__)) > ; > > } > > if (info[7] != ((void *)0)) > ((info[9]->d_un.d_val == sizeof (Elf32_Rela)) ? (void) (0) : __assert_fail ("info[9]->d_un.d_val == sizeof (Elf32_Rela)", "get-dynamic-info.h", 120, __PRETTY_FUNCTION__)); > > > if (info[17] != ((void *)0)) > ((info[19]->d_un.d_val == sizeof (Elf32_Rel)) ? (void) (0) : __assert_fail ("info[19]->d_un.d_val == sizeof (Elf32_Rel)", "get-dynamic-info.h", 124, __PRETTY_FUNCTION__)); ># 136 "get-dynamic-info.h" > if (info[30] != ((void *)0)) > { > > > > l->l_flags = info[30]->d_un.d_val; > > if (l->l_flags & 0x00000002) > info[16] = info[30]; > if (l->l_flags & 0x00000004) > info[22] = info[30]; > if (l->l_flags & 0x00000008) > info[24] = info[30]; > } > if (info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))] != ((void *)0)) > { > l->l_flags_1 = info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))]->d_un.d_val; > > > > > > > > if (__builtin_expect (_rtld_local_ro._dl_debug_mask & (1 << 6), 0) > && l->l_flags_1 & ~(0x00000001 | 0x00000008 | 0x00000020 | 0x00000040 | 0x00000080 | 0x00000800)) > _dl_debug_printf ("\nWARNING: Unsupported flag value(s) of 0x%x in DT_FLAGS_1.\n", > l->l_flags_1 & ~(0x00000001 | 0x00000008 | 0x00000020 | 0x00000040 | 0x00000080 | 0x00000800)); > > if (l->l_flags_1 & 0x00000001) > info[24] = info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))]; > } > if (info[29] != ((void *)0)) > > info[15] = ((void *)0); > >} ># 91 "dynamic-link.h" 2 ># 36 "rtld.c" 2 ># 1 "../sysdeps/unix/sysv/linux/i386/dl-librecon.h" 1 ># 22 "../sysdeps/unix/sysv/linux/i386/dl-librecon.h" ># 1 "../sysdeps/unix/sysv/linux/dl-librecon.h" 1 ># 23 "../sysdeps/unix/sysv/linux/dl-librecon.h" >static inline void __attribute__ ((unused, always_inline)) >_dl_osversion_init (char *assume_kernel) >{ > unsigned long int i, j, osversion = 0; > char *p = assume_kernel, *q; > > for (i = 0; i < 3; i++, p = q + 1) > { > j = __strtoul_internal (p, &q, 0, 0); > if (j >= 255 || p == q || (i < 2 && *q && *q != '.')) > { > osversion = 0; > break; > } > osversion |= j << (16 - 8 * i); > if (!*q) > break; > } > if (osversion) > _rtld_local_ro._dl_osversion = osversion; >} ># 23 "../sysdeps/unix/sysv/linux/i386/dl-librecon.h" 2 ># 37 "rtld.c" 2 ># 1 "../sysdeps/generic/unsecvars.h" 1 ># 38 "rtld.c" 2 ># 1 "../sysdeps/generic/dl-cache.h" 1 ># 60 "../sysdeps/generic/dl-cache.h" >struct file_entry >{ > int flags; > unsigned int key, value; >}; > >struct cache_file >{ > char magic[sizeof "ld.so-1.7.0" - 1]; > unsigned int nlibs; > struct file_entry libs[0]; >}; > > > > > > >struct file_entry_new >{ > int32_t flags; > uint32_t key, value; > uint32_t osversion; > uint64_t hwcap; >}; > >struct cache_file_new >{ > char magic[sizeof "glibc-ld.so.cache" - 1]; > char version[sizeof "1.1" - 1]; > uint32_t nlibs; > uint32_t len_strings; > uint32_t unused[5]; > > struct file_entry_new libs[0]; > >}; > > > > > > >extern int _dl_cache_libcmp (const char *p1, const char *p2) > __attribute__ ((regparm (3), stdcall)); ># 39 "rtld.c" 2 ># 1 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 1 ># 20 "../sysdeps/unix/sysv/linux/dl-osinfo.h" ># 1 "../include/endian.h" 1 ># 21 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 2 > > ># 1 "../sysdeps/unix/sysv/linux/not-cancel.h" 1 ># 24 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 2 ># 50 "../sysdeps/unix/sysv/linux/dl-osinfo.h" >static inline uintptr_t __attribute__ ((always_inline)) >_dl_setup_stack_chk_guard (void *dl_random) >{ > union > { > uintptr_t num; > unsigned char bytes[sizeof (uintptr_t)]; > } ret; > > > > > memcpy (ret.bytes, dl_random, sizeof (ret)); > > ret.num &= ~(uintptr_t) 0xff; > > > > > > return ret.num; >} > >static inline uintptr_t __attribute__ ((always_inline)) >_dl_setup_pointer_guard (void *dl_random, uintptr_t stack_chk_guard) >{ > uintptr_t ret; > memcpy (&ret, (char *) dl_random + sizeof (ret), sizeof (ret)); > return ret; >} ># 40 "rtld.c" 2 ># 1 "../sysdeps/unix/sysv/linux/i386/dl-procinfo.h" 1 ># 20 "../sysdeps/unix/sysv/linux/i386/dl-procinfo.h" ># 1 "../sysdeps/i386/dl-procinfo.h" 1 ># 34 "../sysdeps/i386/dl-procinfo.h" >enum >{ > HWCAP_I386_FPU = 1 << 0, > HWCAP_I386_VME = 1 << 1, > HWCAP_I386_DE = 1 << 2, > HWCAP_I386_PSE = 1 << 3, > HWCAP_I386_TSC = 1 << 4, > HWCAP_I386_MSR = 1 << 5, > HWCAP_I386_PAE = 1 << 6, > HWCAP_I386_MCE = 1 << 7, > HWCAP_I386_CX8 = 1 << 8, > HWCAP_I386_APIC = 1 << 9, > HWCAP_I386_SEP = 1 << 11, > HWCAP_I386_MTRR = 1 << 12, > HWCAP_I386_PGE = 1 << 13, > HWCAP_I386_MCA = 1 << 14, > HWCAP_I386_CMOV = 1 << 15, > HWCAP_I386_FCMOV = 1 << 16, > HWCAP_I386_MMX = 1 << 23, > HWCAP_I386_OSFXSR = 1 << 24, > HWCAP_I386_XMM = 1 << 25, > HWCAP_I386_XMM2 = 1 << 26, > HWCAP_I386_AMD3D = 1 << 31, > > > HWCAP_IMPORTANT = (HWCAP_I386_XMM2) > >}; > > > > >static inline const char * >__attribute__ ((unused)) >_dl_hwcap_string (int idx) >{ > return _rtld_local_ro._dl_x86_cap_flags[idx]; >}; > >static inline const char * >__attribute__ ((unused)) >_dl_platform_string (int idx) >{ > return _rtld_local_ro._dl_x86_platforms[idx - 48]; >}; > >static inline int >__attribute__ ((unused, always_inline)) >_dl_string_hwcap (const char *str) >{ > int i; > > for (i = 0; i < 32; i++) > { > if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (str) && __builtin_constant_p (_rtld_local_ro._dl_x86_cap_flags[i]) && (__s1_len = strlen (str), __s2_len = strlen (_rtld_local_ro._dl_x86_cap_flags[i]), (!((size_t)(const void *)((str) + 1) - (size_t)(const void *)(str) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((_rtld_local_ro._dl_x86_cap_flags[i]) + 1) - (size_t)(const void *)(_rtld_local_ro._dl_x86_cap_flags[i]) == 1) || __s2_len >= 4)) ? __builtin_strcmp (str, _rtld_local_ro._dl_x86_cap_flags[i]) : (__builtin_constant_p (str) && ((size_t)(const void *)((str) + 1) - (size_t)(const void *)(str) == 1) && (__s1_len = strlen (str), __s1_len < 4) ? (__builtin_constant_p (_rtld_local_ro._dl_x86_cap_flags[i]) && ((size_t)(const void *)((_rtld_local_ro._dl_x86_cap_flags[i]) + 1) - (size_t)(const void *)(_rtld_local_ro._dl_x86_cap_flags[i]) == 1) ? __builtin_strcmp (str, _rtld_local_ro._dl_x86_cap_flags[i]) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (_rtld_local_ro._dl_x86_cap_flags[i]); int __result = (((const unsigned char *) (const char *) (str))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (str))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (str))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (str))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (_rtld_local_ro._dl_x86_cap_flags[i]) && ((size_t)(const void *)((_rtld_local_ro._dl_x86_cap_flags[i]) + 1) - (size_t)(const void *)(_rtld_local_ro._dl_x86_cap_flags[i]) == 1) && (__s2_len = strlen (_rtld_local_ro._dl_x86_cap_flags[i]), __s2_len < 4) ? (__builtin_constant_p (str) && ((size_t)(const void *)((str) + 1) - (size_t)(const void *)(str) == 1) ? __builtin_strcmp (str, _rtld_local_ro._dl_x86_cap_flags[i]) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (str); int __result = (((const unsigned char *) (const char *) (_rtld_local_ro._dl_x86_cap_flags[i]))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (_rtld_local_ro._dl_x86_cap_flags[i]))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (_rtld_local_ro._dl_x86_cap_flags[i]))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (_rtld_local_ro._dl_x86_cap_flags[i]))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (str, _rtld_local_ro._dl_x86_cap_flags[i])))); }) == 0) > return i; > } > return -1; >}; > >static inline int >__attribute__ ((unused, always_inline)) >_dl_string_platform (const char *str) >{ > int i; > > if (str != ((void *)0)) > for (i = 0; i < 4; ++i) > { > if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (str) && __builtin_constant_p (_rtld_local_ro._dl_x86_platforms[i]) && (__s1_len = strlen (str), __s2_len = strlen (_rtld_local_ro._dl_x86_platforms[i]), (!((size_t)(const void *)((str) + 1) - (size_t)(const void *)(str) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((_rtld_local_ro._dl_x86_platforms[i]) + 1) - (size_t)(const void *)(_rtld_local_ro._dl_x86_platforms[i]) == 1) || __s2_len >= 4)) ? __builtin_strcmp (str, _rtld_local_ro._dl_x86_platforms[i]) : (__builtin_constant_p (str) && ((size_t)(const void *)((str) + 1) - (size_t)(const void *)(str) == 1) && (__s1_len = strlen (str), __s1_len < 4) ? (__builtin_constant_p (_rtld_local_ro._dl_x86_platforms[i]) && ((size_t)(const void *)((_rtld_local_ro._dl_x86_platforms[i]) + 1) - (size_t)(const void *)(_rtld_local_ro._dl_x86_platforms[i]) == 1) ? __builtin_strcmp (str, _rtld_local_ro._dl_x86_platforms[i]) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (_rtld_local_ro._dl_x86_platforms[i]); int __result = (((const unsigned char *) (const char *) (str))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (str))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (str))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (str))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (_rtld_local_ro._dl_x86_platforms[i]) && ((size_t)(const void *)((_rtld_local_ro._dl_x86_platforms[i]) + 1) - (size_t)(const void *)(_rtld_local_ro._dl_x86_platforms[i]) == 1) && (__s2_len = strlen (_rtld_local_ro._dl_x86_platforms[i]), __s2_len < 4) ? (__builtin_constant_p (str) && ((size_t)(const void *)((str) + 1) - (size_t)(const void *)(str) == 1) ? __builtin_strcmp (str, _rtld_local_ro._dl_x86_platforms[i]) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (str); int __result = (((const unsigned char *) (const char *) (_rtld_local_ro._dl_x86_platforms[i]))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (_rtld_local_ro._dl_x86_platforms[i]))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (_rtld_local_ro._dl_x86_platforms[i]))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (_rtld_local_ro._dl_x86_platforms[i]))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (str, _rtld_local_ro._dl_x86_platforms[i])))); }) == 0) > return 48 + i; > } > return -1; >}; ># 21 "../sysdeps/unix/sysv/linux/i386/dl-procinfo.h" 2 > > > > >static inline int >__attribute__ ((unused)) >_dl_procinfo (unsigned int type, unsigned long int word) >{ > > > int i; > > > if (type == 26) > return -1; > > _dl_dprintf (1, "AT_HWCAP: "); > > for (i = 0; i < 32; ++i) > if (word & (1 << i)) > _dl_dprintf (1, " %s", _rtld_local_ro._dl_x86_cap_flags[i]); > > _dl_dprintf (1, "\n"); > > return 0; >} ># 41 "rtld.c" 2 > > > > ># 1 "../include/assert.h" 1 ># 1 "../assert/assert.h" 1 ># 64 "../assert/assert.h" > > > >extern void __assert_fail (const char *__assertion, const char *__file, > unsigned int __line, const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern void __assert_perror_fail (int __errnum, const char *__file, > unsigned int __line, const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > > > >extern void __assert (const char *__assertion, const char *__file, int __line) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > > ># 2 "../include/assert.h" 2 > > > > > >extern void __assert_fail (const char *__assertion, const char *__file, > unsigned int __line, const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern void __assert_perror_fail (int __errnum, const char *__file, > unsigned int __line, > const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern void __assert_fail_base (const char *fmt, const char *assertion, > const char *file, unsigned int line, > const char *function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern __typeof (__assert_fail) __assert_fail __asm__ ("" "__GI___assert_fail") __attribute__ ((visibility ("hidden"))); >extern __typeof (__assert_perror_fail) __assert_perror_fail __asm__ ("" "__GI___assert_perror_fail") __attribute__ ((visibility ("hidden"))); ># 46 "rtld.c" 2 > > >extern __typeof (__mempcpy) __mempcpy __attribute__ ((visibility ("hidden"))); > > >extern __typeof (_exit) exit_internal asm ("_exit") __attribute__ ((visibility ("hidden"))); > > > >static void print_unresolved (int errcode, const char *objname, > const char *errsting); > > >static void print_missing_version (int errcode, const char *objname, > const char *errsting); > > >static void print_statistics (hp_timing_t *total_timep); > > >static void process_dl_audit (char *str); > > >enum mode { normal, list, verify, trace }; > > > > >static void process_envvars (enum mode *modep); > > > > > > > >int _dl_argc __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden"))); >char **_dl_argv __attribute__ ((section (".data.rel.ro"))) = ((void *)0); >unsigned int _dl_skip_args __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden"))); > >extern __typeof (_dl_argv) _dl_argv_internal __attribute__ ((alias ("_dl_argv"))); ># 96 "rtld.c" >uintptr_t __pointer_chk_guard_local > __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden"))) __attribute__ ((nocommon)); > > > > > > >static struct audit_list >{ > const char *name; > struct audit_list *next; >} *audit_list; ># 117 "rtld.c" >int _dl_starting_up = 0; >extern __typeof (_dl_starting_up) _dl_starting_up_internal __attribute__ ((alias ("_dl_starting_up"), visibility ("hidden"))); > > > >struct rtld_global _rtld_global = > { > > > ._dl_stack_flags = ((1 << 2)|(1 << 1)|(1 << 0)), > > ._dl_load_lock = {{ { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { { 0, 0 } } } }}, > ._dl_load_write_lock = {{ { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { { 0, 0 } } } }}, > > ._dl_nns = 1, > ._dl_ns = > { > > [0] = { ._ns_unique_sym_table > = { .lock = {{ { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { { 0, 0 } } } }} } } > > } > }; > > > > >extern struct rtld_global _rtld_local > __attribute__ ((alias ("_rtld_global"), visibility ("hidden"))); > > > > >struct rtld_global_ro _rtld_global_ro __attribute__ ((section (".data.rel.ro"))) = > { > ># 1 "../sysdeps/i386/dl-procinfo.c" 1 ># 47 "../sysdeps/i386/dl-procinfo.c" > ._dl_x86_cap_flags > > > > >= { > "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce", > "cx8", "apic", "10", "sep", "mtrr", "pge", "mca", "cmov", > "pat", "pse36", "pn", "clflush", "20", "dts", "acpi", "mmx", > "fxsr", "sse", "sse2", "ss", "ht", "tm", "ia64", "pbe" > } > > > > >, > > > > ._dl_x86_platforms > > > > >= { > "i386", "i486", "i586", "i686" > } > > > > >, ># 154 "rtld.c" 2 > > ._dl_sysinfo = (uintptr_t) _dl_sysinfo_int80, > > ._dl_debug_fd = 2, > ._dl_use_load_bias = -2, > ._dl_correct_cache_id = 3, > ._dl_hwcap_mask = HWCAP_IMPORTANT, > ._dl_lazy = 1, > ._dl_fpu_control = 0x037f, > ._dl_pointer_guard = 1, > ._dl_pagesize = 4096, > ._dl_inhibit_cache = 0, > > > ._dl_debug_printf = _dl_debug_printf, > ._dl_catch_error = _dl_catch_error, > ._dl_signal_error = _dl_signal_error, > ._dl_mcount = _dl_mcount_internal, > ._dl_lookup_symbol_x = _dl_lookup_symbol_x, > ._dl_check_caller = _dl_check_caller, > ._dl_open = _dl_open, > ._dl_close = _dl_close, > ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft, > > ._dl_discover_osversion = _dl_discover_osversion > > }; > > > > >extern struct rtld_global_ro _rtld_local_ro > __attribute__ ((alias ("_rtld_global_ro"), visibility ("hidden"))); > > >static void dl_main (const Elf32_Phdr *phdr, Elf32_Word phnum, > Elf32_Addr *user_entry, Elf32_auxv_t *auxv); > > >static struct libname_list _dl_rtld_libname; >static struct libname_list _dl_rtld_libname2; > > > >static hp_timing_t relocate_time; >static hp_timing_t load_time __attribute__ ((section (".data.rel.ro"))); >static hp_timing_t start_time __attribute__ ((section (".data.rel.ro"))); ># 210 "rtld.c" >asm (".text\n\t" ".type _dl_sysinfo_int80,@function\n\t" ".hidden _dl_sysinfo_int80\n" ".cfi_startproc" "\n" "_dl_sysinfo_int80:\n\t" "int $0x80;\n\t" "ret;\n\t" ".cfi_endproc" "\n" ".size _dl_sysinfo_int80,.-_dl_sysinfo_int80\n\t" ".previous"); ># 224 "rtld.c" >static Elf32_Addr _dl_start_final (void *arg); ># 238 "rtld.c" >extern char _begin[] __attribute__ ((visibility ("hidden"))); >extern char _etext[] __attribute__ ((visibility ("hidden"))); >extern char _end[] __attribute__ ((visibility ("hidden"))); > > > >asm ("\n .text\n .align 16\n0: movl (%esp), %ebx\n ret\n .align 16\n.globl _start\n.globl _dl_start_user\n_start:\n # Note that _dl_start gets the parameter in %eax.\n movl %esp, %eax\n call _dl_start\n_dl_start_user:\n # Save the user entry point address in %edi.\n movl %eax, %edi\n # Point %ebx at the GOT.\n call 0b\n addl $_GLOBAL_OFFSET_TABLE_, %ebx\n # See if we were run as a command with the executable file\n # name as an extra leading argument.\n movl _dl_skip_args@GOTOFF(%ebx), %eax\n # Pop the original argument count.\n popl %edx\n # Adjust the stack pointer to skip _dl_skip_args words.\n leal (%esp,%eax,4), %esp\n # Subtract _dl_skip_args from argc.\n subl %eax, %edx\n # Push argc back on the stack.\n push %edx\n # The special initializer gets called with the stack just\n # as the application's entry point will see it; it can\n # switch stacks if it moves these contents over.\n" "\n # Load the parameters again.\n # (eax, edx, ecx, *--esp) = (_dl_loaded, argc, argv, envp)\n movl _rtld_local@GOTOFF(%ebx), %eax\n leal 8(%esp,%edx,4), %esi\n leal 4(%esp), %ecx\n movl %esp, %ebp\n # Make sure _dl_init is run with 16 byte aligned stack.\n andl $-16, %esp\n pushl %eax\n pushl %eax\n pushl %ebp\n pushl %esi\n # Clear %ebp, so that even constructors have terminated backchain.\n xorl %ebp, %ebp\n # Call the function to run the initializers.\n call _dl_init_internal@PLT\n # Pass our finalizer function to the user in %edx, as per ELF ABI.\n leal _dl_fini@GOTOFF(%ebx), %edx\n # Restore %esp _start expects.\n movl (%esp), %esp\n # Jump to the user's entry point.\n jmp *%edi\n .previous\n"); ># 256 "rtld.c" >static inline Elf32_Addr __attribute__ ((always_inline)) >_dl_start_final (void *arg) > > > > >{ > Elf32_Addr start_addr; > > if ((1)) > { > > if (! (1)) > __asm__ __volatile__ ("rdtsc" : "=A" (start_time)); > > > > > } ># 285 "rtld.c" > _dl_setup_hash (&_rtld_local._dl_rtld_map); > _rtld_local._dl_rtld_map.l_real = &_rtld_local._dl_rtld_map; > _rtld_local._dl_rtld_map.l_map_start = (Elf32_Addr) _begin; > _rtld_local._dl_rtld_map.l_map_end = (Elf32_Addr) _end; > _rtld_local._dl_rtld_map.l_text_end = (Elf32_Addr) _etext; > > > > > > > > __asm__ __volatile__ ("rdtsc" : "=A" (_rtld_local._dl_cpuclock_offset)); > > > __libc_stack_end = __builtin_frame_address (0); > > > > > > start_addr = _dl_sysdep_start (arg, &dl_main); > > > hp_timing_t rtld_total_time; > if ((1)) > { > hp_timing_t end_time; > > > __asm__ __volatile__ ("rdtsc" : "=A" (end_time)); > > > ((rtld_total_time) = (end_time) - (start_time)); > } > > > if (__builtin_expect ((_rtld_local_ro._dl_debug_mask & (1 << 7)), 0)) > { > > print_statistics (&rtld_total_time); > > > > } > > return start_addr; >} > >static Elf32_Addr __attribute__ ((__used__)) __attribute__ ((regparm (3), stdcall)) >_dl_start (void *arg) >{ ># 350 "rtld.c" ># 1 "dynamic-link.h" 1 ># 42 "dynamic-link.h" >int __attribute__ ((regparm (3), stdcall)) _dl_try_allocate_static_tls (struct link_map *map); ># 58 "dynamic-link.h" >auto inline void __attribute__((always_inline)) >elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, > const Elf32_Sym *sym, const struct r_found_version *version, > void *const reloc_addr, int skip_ifunc); >auto inline void __attribute__((always_inline)) >elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc, > void *const reloc_addr); ># 76 "dynamic-link.h" >auto inline void __attribute__((always_inline)) >elf_machine_lazy_rel (struct link_map *map, > Elf32_Addr l_addr, const Elf32_Rel *reloc, > int skip_ifunc); ># 88 "dynamic-link.h" ># 1 "../sysdeps/i386/dl-machine.h" 1 ># 302 "../sysdeps/i386/dl-machine.h" >auto inline void >__attribute ((always_inline)) >elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, > const Elf32_Sym *sym, const struct r_found_version *version, > void *const reloc_addr_arg, int skip_ifunc) >{ > Elf32_Addr *const reloc_addr = reloc_addr_arg; > const unsigned int r_type = ((reloc->r_info) & 0xff); ># 334 "../sysdeps/i386/dl-machine.h" > { > > > > struct link_map *sym_map = (&_rtld_local._dl_rtld_map); > Elf32_Addr value = sym_map == ((void *)0) ? 0 : sym_map->l_addr + sym->st_value; > > if (sym != ((void *)0) > && __builtin_expect (((sym->st_info) & 0xf) == 10, > 0) > && __builtin_expect (sym->st_shndx != 0, 1) > && __builtin_expect (!skip_ifunc, 1)) > value = ((Elf32_Addr (*) (void)) value) (); > > switch (r_type) > { > > > > > > > case 6: > case 7: > *reloc_addr = value; > break; > > case 35: > > > > > > *reloc_addr = 1; > > > > > > > break; > case 36: > > > > > > > break; > case 41: > { > struct tlsdesc volatile *td = > (struct tlsdesc volatile *)reloc_addr; > > > > > > > { ># 407 "../sysdeps/i386/dl-machine.h" > { > td->arg = (void*)(sym->st_value - sym_map->l_tls_offset > + (Elf32_Word)td->arg); > td->entry = _dl_tlsdesc_return; > } > } > break; > } > case 37: > > > *reloc_addr += map->l_tls_offset - sym->st_value; ># 430 "../sysdeps/i386/dl-machine.h" > break; > case 14: > > > *reloc_addr += sym->st_value - map->l_tls_offset; ># 445 "../sysdeps/i386/dl-machine.h" > break; ># 482 "../sysdeps/i386/dl-machine.h" > } > } >} ># 634 "../sysdeps/i386/dl-machine.h" >auto inline void >__attribute ((always_inline)) >elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc, > void *const reloc_addr_arg) >{ > Elf32_Addr *const reloc_addr = reloc_addr_arg; > ((((reloc->r_info) & 0xff) == 8) ? (void) (0) : __assert_fail ("((reloc->r_info) & 0xff) == 8", "../sysdeps/i386/dl-machine.h", 640, __PRETTY_FUNCTION__)); > *reloc_addr += l_addr; >} ># 655 "../sysdeps/i386/dl-machine.h" >auto inline void >__attribute__ ((always_inline)) >elf_machine_lazy_rel (struct link_map *map, > Elf32_Addr l_addr, const Elf32_Rel *reloc, > int skip_ifunc) >{ > Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); > const unsigned int r_type = ((reloc->r_info) & 0xff); > > if (__builtin_expect ((r_type == 7), 1)) > { > if (__builtin_expect (map->l_mach.plt, 0) == 0) > *reloc_addr += l_addr; > else > *reloc_addr = (map->l_mach.plt > + (((Elf32_Addr) reloc_addr) - map->l_mach.gotplt) * 4); > } > else if (__builtin_expect ((r_type == 41), 1)) > { > struct tlsdesc volatile * __attribute__((__unused__)) td = > (struct tlsdesc volatile *)reloc_addr; > > > > if (((reloc->r_info) >> 8) == 0) > td->entry = _dl_tlsdesc_resolve_abs_plus_addend; > > > else if (td->arg == 0) > { > td->arg = (void*)reloc; > td->entry = _dl_tlsdesc_resolve_rel; > } > else > { > > > > const Elf32_Rel *const r = reloc; > > const Elf32_Sym *const symtab = > (const void *) (map)->l_info[6]->d_un.d_ptr; > > > > ((map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)) ? (void) (0) : __assert_fail ("map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)", "../sysdeps/i386/dl-machine.h", 700, __PRETTY_FUNCTION__)); > > > > { > const Elf32_Half *const version = > (const void *) (map)->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr; > Elf32_Half ndx = version[((r->r_info) >> 8)] & 0x7fff; > elf_machine_rel (map, r, &symtab[((r->r_info) >> 8)], > &map->l_versions[ndx], > (void *) (l_addr + r->r_offset), skip_ifunc); > } > > > > > > } > } > else if (__builtin_expect ((r_type == 42), 0)) > { > Elf32_Addr value = map->l_addr + *reloc_addr; > if (__builtin_expect ((!skip_ifunc), 1)) > value = ((Elf32_Addr (*) (void)) value) (); > *reloc_addr = value; > } > else > _dl_reloc_bad_type (map, r_type, 1); >} ># 89 "dynamic-link.h" 2 > ># 1 "get-dynamic-info.h" 1 ># 19 "get-dynamic-info.h" ># 1 "../include/assert.h" 1 ># 1 "../assert/assert.h" 1 ># 64 "../assert/assert.h" > > > >extern void __assert_fail (const char *__assertion, const char *__file, > unsigned int __line, const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern void __assert_perror_fail (int __errnum, const char *__file, > unsigned int __line, const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > > > >extern void __assert (const char *__assertion, const char *__file, int __line) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > > ># 2 "../include/assert.h" 2 > > > > > >extern void __assert_fail (const char *__assertion, const char *__file, > unsigned int __line, const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern void __assert_perror_fail (int __errnum, const char *__file, > unsigned int __line, > const char *__function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern void __assert_fail_base (const char *fmt, const char *assertion, > const char *file, unsigned int line, > const char *function) > __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__)); > > >extern __typeof (__assert_fail) __assert_fail __asm__ ("" "__GI___assert_fail") __attribute__ ((visibility ("hidden"))); >extern __typeof (__assert_perror_fail) __assert_perror_fail __asm__ ("" "__GI___assert_perror_fail") __attribute__ ((visibility ("hidden"))); ># 20 "get-dynamic-info.h" 2 > > > > >auto > >inline void __attribute__ ((unused, always_inline)) >elf_get_dynamic_info (struct link_map *l, Elf32_Dyn *temp) >{ > Elf32_Dyn *dyn = l->l_ld; > Elf32_Dyn **info; > > typedef Elf32_Word d_tag_utype; ># 42 "get-dynamic-info.h" > info = l->l_info; > > while (dyn->d_tag != 0) > { > if ((d_tag_utype) dyn->d_tag < 34) > info[dyn->d_tag] = dyn; > else if (dyn->d_tag >= 0x70000000 && > dyn->d_tag < 0x70000000 + 0) > info[dyn->d_tag - 0x70000000 + 34] = dyn; > else if ((d_tag_utype) (0x6fffffff - (dyn->d_tag)) < 16) > info[(34 + 0 + (0x6fffffff - (dyn->d_tag)))] = dyn; > else if ((d_tag_utype) ((Elf32_Word)-((Elf32_Sword) (dyn->d_tag) <<1>>1)-1) < 3) > info[((Elf32_Word)-((Elf32_Sword) (dyn->d_tag) <<1>>1)-1) + 34 + 0 > + 16] = dyn; > else if ((d_tag_utype) (0x6ffffdff - (dyn->d_tag)) < 12) > info[(0x6ffffdff - (dyn->d_tag)) + 34 + 0 > + 16 + 3] = dyn; > else if ((d_tag_utype) (0x6ffffeff - (dyn->d_tag)) < 11) > info[(0x6ffffeff - (dyn->d_tag)) + 34 + 0 > + 16 + 3 + 12] = dyn; > ++dyn; > } > > > > > > if (l->l_addr != 0) > { > Elf32_Addr l_addr = l->l_addr; > int cnt = 0; ># 89 "get-dynamic-info.h" > do if (info[4] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[4]->d_tag; temp[cnt].d_un.d_ptr = info[4]->d_un.d_ptr + l_addr; info[4] = temp + cnt++; } else info[4]->d_un.d_ptr += l_addr; } while (0); > do if (info[3] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[3]->d_tag; temp[cnt].d_un.d_ptr = info[3]->d_un.d_ptr + l_addr; info[3] = temp + cnt++; } else info[3]->d_un.d_ptr += l_addr; } while (0); > do if (info[5] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[5]->d_tag; temp[cnt].d_un.d_ptr = info[5]->d_un.d_ptr + l_addr; info[5] = temp + cnt++; } else info[5]->d_un.d_ptr += l_addr; } while (0); > do if (info[6] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[6]->d_tag; temp[cnt].d_un.d_ptr = info[6]->d_un.d_ptr + l_addr; info[6] = temp + cnt++; } else info[6]->d_un.d_ptr += l_addr; } while (0); > > > > > do if (info[17] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[17]->d_tag; temp[cnt].d_un.d_ptr = info[17]->d_un.d_ptr + l_addr; info[17] = temp + cnt++; } else info[17]->d_un.d_ptr += l_addr; } while (0); > > do if (info[23] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[23]->d_tag; temp[cnt].d_un.d_ptr = info[23]->d_un.d_ptr + l_addr; info[23] = temp + cnt++; } else info[23]->d_un.d_ptr += l_addr; } while (0); > do if (info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr + l_addr; info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] = temp + cnt++; } else info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr += l_addr; } while (0); > do if (info[(0x6ffffeff - (0x6ffffef5)) + 34 + 0 + 16 + 3 + 12] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(0x6ffffeff - (0x6ffffef5)) + 34 + 0 + 16 + 3 + 12]->d_tag; temp[cnt].d_un.d_ptr = info[(0x6ffffeff - (0x6ffffef5)) + 34 + 0 + 16 + 3 + 12]->d_un.d_ptr + l_addr; info[(0x6ffffeff - (0x6ffffef5)) + 34 + 0 + 16 + 3 + 12] = temp + cnt++; } else info[(0x6ffffeff - (0x6ffffef5)) + 34 + 0 + 16 + 3 + 12]->d_un.d_ptr += l_addr; } while (0) > ; > > ((cnt <= 8) ? (void) (0) : __assert_fail ("cnt <= 8", "get-dynamic-info.h", 104, __PRETTY_FUNCTION__)); > } > > if (info[20] != ((void *)0)) > { > > ((info[20]->d_un.d_val == 17) ? (void) (0) : __assert_fail ("info[20]->d_un.d_val == 17", "get-dynamic-info.h", 110, __PRETTY_FUNCTION__)); > > > > > > > } > > > > > > if (info[17] != ((void *)0)) > ((info[19]->d_un.d_val == sizeof (Elf32_Rel)) ? (void) (0) : __assert_fail ("info[19]->d_un.d_val == sizeof (Elf32_Rel)", "get-dynamic-info.h", 124, __PRETTY_FUNCTION__)); > > > > ((info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))] == ((void *)0) || (info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))]->d_un.d_val & ~0x00000001) == 0) ? (void) (0) : __assert_fail ("info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))] == ((void *)0) || (info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))]->d_un.d_val & ~0x00000001) == 0", > "get-dynamic-info.h" ># 128 "get-dynamic-info.h" > , > 129 ># 128 "get-dynamic-info.h" > , __PRETTY_FUNCTION__)) > ; > ((info[30] == ((void *)0) || (info[30]->d_un.d_val & ~0x00000008) == 0) ? (void) (0) : __assert_fail ("info[30] == ((void *)0) || (info[30]->d_un.d_val & ~0x00000008) == 0", > "get-dynamic-info.h" ># 130 "get-dynamic-info.h" > , > 131 ># 130 "get-dynamic-info.h" > , __PRETTY_FUNCTION__)) > ; > > ((info[29] == ((void *)0)) ? (void) (0) : __assert_fail ("info[29] == ((void *)0)", "get-dynamic-info.h", 133, __PRETTY_FUNCTION__)); > ((info[15] == ((void *)0)) ? (void) (0) : __assert_fail ("info[15] == ((void *)0)", "get-dynamic-info.h", 134, __PRETTY_FUNCTION__)); ># 172 "get-dynamic-info.h" >} ># 91 "dynamic-link.h" 2 ># 172 "dynamic-link.h" ># 1 "do-rel.h" 1 ># 40 "do-rel.h" >auto inline void __attribute__ ((always_inline)) >elf_dynamic_do_Rel (struct link_map *map, > Elf32_Addr reladdr, Elf32_Addr relsize, > __typeof (((Elf32_Dyn *) 0)->d_un.d_val) nrelative, > int lazy, int skip_ifunc) >{ > const Elf32_Rel *r = (const void *) reladdr; > const Elf32_Rel *end = (const void *) (reladdr + relsize); > Elf32_Addr l_addr = map->l_addr; ># 82 "do-rel.h" > { > const Elf32_Sym *const symtab = > (const void *) (map)->l_info[6]->d_un.d_ptr; > const Elf32_Rel *relative = r; > r += nrelative; ># 111 "do-rel.h" > for (; relative < r; ++relative) > elf_machine_rel_relative (l_addr, relative, (void *) (l_addr + relative->r_offset)); > > > > ((map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)) ? (void) (0) : __assert_fail ("map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)", "do-rel.h", 116, __PRETTY_FUNCTION__)); > > > > { > const Elf32_Half *const version = > (const void *) (map)->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr; > > for (; r < end; ++r) > { ># 136 "do-rel.h" > Elf32_Half ndx = version[((r->r_info) >> 8)] & 0x7fff; > elf_machine_rel (map, r, &symtab[((r->r_info) >> 8)], > &map->l_versions[ndx], > (void *) (l_addr + r->r_offset), skip_ifunc); > } ># 156 "do-rel.h" > } ># 183 "do-rel.h" > } >} ># 173 "dynamic-link.h" 2 ># 351 "rtld.c" 2 > > if ((1) && (1)) > > __asm__ __volatile__ ("rdtsc" : "=A" (start_time)); ># 377 "rtld.c" > _rtld_local._dl_rtld_map.l_addr = elf_machine_load_address (); > > > _rtld_local._dl_rtld_map.l_ld = (void *) _rtld_local._dl_rtld_map.l_addr + elf_machine_dynamic (); > elf_get_dynamic_info (&_rtld_local._dl_rtld_map, ((void *)0)); ># 391 "rtld.c" > if (_rtld_local._dl_rtld_map.l_addr || ! _rtld_local._dl_rtld_map.l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf5)))]) > { > > > > do { int edr_lazy = elf_machine_runtime_setup ((&_rtld_local._dl_rtld_map), (0), (0)); do { struct { Elf32_Addr start, size; __typeof (((Elf32_Dyn *) 0)->d_un.d_val) nrelative; int lazy; } ranges[2] = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 } }; if (((&_rtld_local._dl_rtld_map))->l_info[17]) { ranges[0].start = (((&_rtld_local._dl_rtld_map)))->l_info[17]->d_un.d_ptr; ranges[0].size = ((&_rtld_local._dl_rtld_map))->l_info[18]->d_un.d_val; if ((&_rtld_local._dl_rtld_map)->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffa)))] != ((void *)0)) ranges[0].nrelative = ((((&_rtld_local._dl_rtld_map)->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffa)))]->d_un.d_val)<(ranges[0].size / sizeof (Elf32_Rel)))?((&_rtld_local._dl_rtld_map)->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffa)))]->d_un.d_val):(ranges[0].size / sizeof (Elf32_Rel))); } if (((&_rtld_local._dl_rtld_map))->l_info[20] && (!0 || ((&_rtld_local._dl_rtld_map))->l_info[20]->d_un.d_val == 17)) { Elf32_Addr start = (((&_rtld_local._dl_rtld_map)))->l_info[23]->d_un.d_ptr; Elf32_Addr size = ((&_rtld_local._dl_rtld_map))->l_info[2]->d_un.d_val; if (ranges[0].start + ranges[0].size == (start + size)) ranges[0].size -= size; if (! (1) && ((edr_lazy) || ranges[0].size == 0)) { ranges[1].start = start; ranges[1].size = size; ranges[1].lazy = (edr_lazy); } else { ranges[0].size += size; } } if ((1)) elf_dynamic_do_Rel (((&_rtld_local._dl_rtld_map)), ranges[0].start, ranges[0].size, ranges[0].nrelative, 0, 0); else { int ranges_index; for (ranges_index = 0; ranges_index < 2; ++ranges_index) elf_dynamic_do_Rel (((&_rtld_local._dl_rtld_map)), ranges[ranges_index].start, ranges[ranges_index].size, ranges[ranges_index].nrelative, ranges[ranges_index].lazy, 0); } } while (0); ; } while (0); > } > _rtld_local._dl_rtld_map.l_relocated = 1; ># 410 "rtld.c" > { > > Elf32_Addr entry = _dl_start_final (arg); ># 421 "rtld.c" > return (entry); > } >} ># 433 "rtld.c" >struct relocate_args >{ > struct link_map *l; > int reloc_mode; >}; > >struct map_args >{ > > char *str; > struct link_map *loader; > int mode; > > struct link_map *map; >}; > >struct dlmopen_args >{ > const char *fname; > struct link_map *map; >}; > >struct lookup_args >{ > const char *name; > struct link_map *map; > void *result; >}; > > >struct version_check_args >{ > int doexit; > int dotrace; >}; > >static void >relocate_doit (void *a) >{ > struct relocate_args *args = (struct relocate_args *) a; > > _dl_relocate_object (args->l, args->l->l_scope, args->reloc_mode, 0); >} > >static void >map_doit (void *a) >{ > struct map_args *args = (struct map_args *) a; > int type = (args->mode == 0x20000000) ? lt_executable : lt_library; > args->map = _dl_map_object (args->loader, args->str, type, 0, > args->mode, 0); >} > >static void >dlmopen_doit (void *a) >{ > struct dlmopen_args *args = (struct dlmopen_args *) a; > args->map = _dl_open (args->fname, > (0x00001 | 0x80000000 | 0x08000000 > | 0x04000000), > dl_main, -1, _dl_argc, _dl_argv_internal, > __environ); >} > >static void >lookup_doit (void *a) >{ > struct lookup_args *args = (struct lookup_args *) a; > const Elf32_Sym *ref = ((void *)0); > args->result = ((void *)0); > lookup_t l = _dl_lookup_symbol_x (args->name, args->map, &ref, > args->map->l_local_scope, ((void *)0), 0, > DL_LOOKUP_RETURN_NEWEST, ((void *)0)); > if (ref != ((void *)0)) > args->result = (void *) (((l) ? (l)->l_addr : 0) + ref->st_value); >} > >static void >version_check_doit (void *a) >{ > struct version_check_args *args = (struct version_check_args *) a; > if (_dl_check_all_versions (_rtld_local._dl_ns[0]._ns_loaded, 1, > args->dotrace) && args->doexit) > > exit_internal (1); >} > > >static inline struct link_map * >find_needed (const char *name) >{ > struct r_scope_elem *scope = &_rtld_local._dl_ns[0]._ns_loaded->l_searchlist; > unsigned int n = scope->r_nlist; > > while (n-- > 0) > if (_dl_name_match_p (name, scope->r_list[n])) > return scope->r_list[n]; > > > return ((void *)0); >} > >static int >match_version (const char *string, struct link_map *map) >{ > const char *strtab = (const void *) (map)->l_info[5]->d_un.d_ptr; > Elf32_Verdef *def; > > > if (map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffc)))] == ((void *)0)) > > return 0; > > def = (Elf32_Verdef *) ((char *) map->l_addr > + map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffc)))]->d_un.d_ptr); > while (1) > { > Elf32_Verdaux *aux = (Elf32_Verdaux *) ((char *) def + def->vd_aux); > > > if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (string) && __builtin_constant_p (strtab + aux->vda_name) && (__s1_len = strlen (string), __s2_len = strlen (strtab + aux->vda_name), (!((size_t)(const void *)((string) + 1) - (size_t)(const void *)(string) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((strtab + aux->vda_name) + 1) - (size_t)(const void *)(strtab + aux->vda_name) == 1) || __s2_len >= 4)) ? __builtin_strcmp (string, strtab + aux->vda_name) : (__builtin_constant_p (string) && ((size_t)(const void *)((string) + 1) - (size_t)(const void *)(string) == 1) && (__s1_len = strlen (string), __s1_len < 4) ? (__builtin_constant_p (strtab + aux->vda_name) && ((size_t)(const void *)((strtab + aux->vda_name) + 1) - (size_t)(const void *)(strtab + aux->vda_name) == 1) ? __builtin_strcmp (string, strtab + aux->vda_name) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (strtab + aux->vda_name); int __result = (((const unsigned char *) (const char *) (string))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (string))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (string))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (string))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (strtab + aux->vda_name) && ((size_t)(const void *)((strtab + aux->vda_name) + 1) - (size_t)(const void *)(strtab + aux->vda_name) == 1) && (__s2_len = strlen (strtab + aux->vda_name), __s2_len < 4) ? (__builtin_constant_p (string) && ((size_t)(const void *)((string) + 1) - (size_t)(const void *)(string) == 1) ? __builtin_strcmp (string, strtab + aux->vda_name) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (string); int __result = (((const unsigned char *) (const char *) (strtab + aux->vda_name))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (strtab + aux->vda_name))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (strtab + aux->vda_name))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (strtab + aux->vda_name))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (string, strtab + aux->vda_name)))); }) == 0) > > return 1; > > > if (def->vd_next == 0) > break; > > > def = (Elf32_Verdef *) ((char *) def + def->vd_next); > } > > return 0; >} > >static _Bool tls_init_tp_called; > >static void * >init_tls (void) >{ > > _rtld_local._dl_tls_static_nelem = _rtld_local._dl_tls_max_dtv_idx; > > > > if (_rtld_local._dl_initial_dtv != ((void *)0)) > return ((void *)0); > > > > > size_t nelem = _rtld_local._dl_tls_max_dtv_idx + 1 + (62); > > > _rtld_local._dl_tls_dtv_slotinfo_list = (struct dtv_slotinfo_list *) > calloc (sizeof (struct dtv_slotinfo_list) > + nelem * sizeof (struct dtv_slotinfo), 1); > > > > struct dtv_slotinfo *slotinfo = _rtld_local._dl_tls_dtv_slotinfo_list->slotinfo; > _rtld_local._dl_tls_dtv_slotinfo_list->len = nelem; > _rtld_local._dl_tls_dtv_slotinfo_list->next = ((void *)0); > > > > ((_rtld_local._dl_ns[0 + 1]._ns_loaded == ((void *)0)) ? (void) (0) : __assert_fail ("_rtld_local._dl_ns[0 + 1]._ns_loaded == ((void *)0)", "rtld.c", 599, __PRETTY_FUNCTION__)); > int i = 0; > for (struct link_map *l = _rtld_local._dl_ns[0]._ns_loaded; l != ((void *)0); > l = l->l_next) > if (l->l_tls_blocksize != 0) > { > > > slotinfo[i].map = l; > > ++i; > } > ((i == _rtld_local._dl_tls_max_dtv_idx) ? (void) (0) : __assert_fail ("i == _rtld_local._dl_tls_max_dtv_idx", "rtld.c", 611, __PRETTY_FUNCTION__)); > > > _dl_determine_tlsoffset (); > > > > > > > void *tcbp = _dl_allocate_tls_storage (); > if (tcbp == ((void *)0)) > do { _dl_dprintf (2, "cannot allocate TLS data structures for initial thread"); exit_internal (127); } while (1) > ; > > > > _rtld_local._dl_initial_dtv = (((tcbhead_t *) (tcbp))->dtv); > > > const char *lossage = ({ void *_thrdescr = (tcbp); tcbhead_t *_head = _thrdescr; union user_desc_init _segdescr; int _result; _head->tcb = _thrdescr; _head->self = _thrdescr; _head->sysinfo = _rtld_local_ro._dl_sysinfo; tls_fill_user_desc (&_segdescr, -1, _thrdescr); asm volatile ("xchgl %3, %%ebx\n\t" "int $0x80\n\t" "xchgl %3, %%ebx\n\t" : "=a" (_result), "=m" (_segdescr.desc.entry_number) : "0" (243), "r" (&_segdescr.desc), "m" (_segdescr.desc)); if (_result == 0) __asm ("movl %0, %%gs" :: "q" (_segdescr.desc.entry_number * 8 + 3)); _result == 0 ? ((void *)0) : "set_thread_area failed when setting up thread-local storage\n"; }); > if (__builtin_expect ((lossage != ((void *)0)), 0)) > do { _dl_dprintf (2, "cannot set up thread-local storage: %s\n", lossage); exit_internal (127); } while (1); > tls_init_tp_called = 1; > > return tcbp; >} > > > > >void ** __attribute__ ((const)) >_dl_initial_error_catch_tsd (void) >{ > static void *data; > return &data; >} > > > >static unsigned int >do_preload (char *fname, struct link_map *main_map, const char *where) >{ > const char *objname; > const char *err_str = ((void *)0); > struct map_args args; > _Bool malloced; > > args.str = fname; > args.loader = main_map; > args.mode = 0x04000000; > > unsigned int old_nloaded = _rtld_local._dl_ns[0]._ns_nloaded; > > (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit, &args); > if (__builtin_expect ((err_str != ((void *)0)), 0)) > { > _dl_dprintf (2, "ERROR: ld.so: object '%s' from %s cannot be preloaded (%s): ignored.\n", fname, where, err_str) > > ; > > > } > else if (_rtld_local._dl_ns[0]._ns_nloaded != old_nloaded) > > return 1; > > > return 0; >} > > > >static void >rtld_lock_default_lock_recursive (void *lock) >{ > ++((pthread_mutex_t *)(lock))->__data.__count;; >} > >static void >rtld_lock_default_unlock_recursive (void *lock) >{ > --((pthread_mutex_t *)(lock))->__data.__count;; >} > > > >static void >security_init (void) >{ > > uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random); > > ({ if (sizeof (({ struct pthread *__self; asm ("movl %%gs:%c1,%0" : "=r" (__self) : "i" (__builtin_offsetof (struct pthread, header.self))); __self;})->header.stack_guard) == 1) asm volatile ("movb %b0,%%gs:%P1" : : "iq" (stack_chk_guard), "i" (__builtin_offsetof (struct pthread, header.stack_guard))); else if (sizeof (({ struct pthread *__self; asm ("movl %%gs:%c1,%0" : "=r" (__self) : "i" (__builtin_offsetof (struct pthread, header.self))); __self;})->header.stack_guard) == 4) asm volatile ("movl %0,%%gs:%P1" : : "ir" (stack_chk_guard), "i" (__builtin_offsetof (struct pthread, header.stack_guard))); else { if (sizeof (({ struct pthread *__self; asm ("movl %%gs:%c1,%0" : "=r" (__self) : "i" (__builtin_offsetof (struct pthread, header.self))); __self;})->header.stack_guard) != 8) abort (); asm volatile ("movl %%eax,%%gs:%P1\n\t" "movl %%edx,%%gs:%P2" : : "A" ((uint64_t) ((__typeof__ (*(0 ? (__typeof__ (0 ? (__typeof__ ((__typeof__ (stack_chk_guard)) 0) *) 0 : (void *) ((__builtin_classify_type ((__typeof__ (stack_chk_guard)) 0) == 5)))) 0 : (__typeof__ (0 ? (__intptr_t *) 0 : (void *) (!((__builtin_classify_type ((__typeof__ (stack_chk_guard)) 0) == 5))))) 0))) (stack_chk_guard))), "i" (__builtin_offsetof (struct pthread, header.stack_guard)), "i" (__builtin_offsetof (struct pthread, header.stack_guard) + 4)); }}); > > > > > > if (_rtld_local_ro._dl_pointer_guard) > { > uintptr_t pointer_chk_guard = _dl_setup_pointer_guard (_dl_random, > stack_chk_guard); > > ({ if (sizeof (({ struct pthread *__self; asm ("movl %%gs:%c1,%0" : "=r" (__self) : "i" (__builtin_offsetof (struct pthread, header.self))); __self;})->header.pointer_guard) == 1) asm volatile ("movb %b0,%%gs:%P1" : : "iq" (pointer_chk_guard), "i" (__builtin_offsetof (struct pthread, header.pointer_guard))); else if (sizeof (({ struct pthread *__self; asm ("movl %%gs:%c1,%0" : "=r" (__self) : "i" (__builtin_offsetof (struct pthread, header.self))); __self;})->header.pointer_guard) == 4) asm volatile ("movl %0,%%gs:%P1" : : "ir" (pointer_chk_guard), "i" (__builtin_offsetof (struct pthread, header.pointer_guard))); else { if (sizeof (({ struct pthread *__self; asm ("movl %%gs:%c1,%0" : "=r" (__self) : "i" (__builtin_offsetof (struct pthread, header.self))); __self;})->header.pointer_guard) != 8) abort (); asm volatile ("movl %%eax,%%gs:%P1\n\t" "movl %%edx,%%gs:%P2" : : "A" ((uint64_t) ((__typeof__ (*(0 ? (__typeof__ (0 ? (__typeof__ ((__typeof__ (pointer_chk_guard)) 0) *) 0 : (void *) ((__builtin_classify_type ((__typeof__ (pointer_chk_guard)) 0) == 5)))) 0 : (__typeof__ (0 ? (__intptr_t *) 0 : (void *) (!((__builtin_classify_type ((__typeof__ (pointer_chk_guard)) 0) == 5))))) 0))) (pointer_chk_guard))), "i" (__builtin_offsetof (struct pthread, header.pointer_guard)), "i" (__builtin_offsetof (struct pthread, header.pointer_guard) + 4)); }}); > > __pointer_chk_guard_local = pointer_chk_guard; > } > > > > > _dl_random = ((void *)0); >} > ># 1 "setup-vdso.h" 1 ># 19 "setup-vdso.h" >static inline void __attribute__ ((always_inline)) >setup_vdso (struct link_map *main_map __attribute__ ((unused)), > struct link_map ***first_preload __attribute__ ((unused))) >{ > > if (_rtld_local_ro._dl_sysinfo_dso == ((void *)0)) > return; > > > > > > > struct link_map *l = _dl_new_object ((char *) "", "", lt_library, ((void *)0), > 0, 0); > if (__builtin_expect ((l != ((void *)0)), 1)) > { > static Elf32_Dyn dyn_temp[8] __attribute__ ((section (".data.rel.ro"))); > > l->l_phdr = ((const void *) _rtld_local_ro._dl_sysinfo_dso > + _rtld_local_ro._dl_sysinfo_dso->e_phoff); > l->l_phnum = _rtld_local_ro._dl_sysinfo_dso->e_phnum; > for (uint_fast16_t i = 0; i < l->l_phnum; ++i) > { > const Elf32_Phdr *const ph = &l->l_phdr[i]; > if (ph->p_type == 2) > { > l->l_ld = (void *) ph->p_vaddr; > l->l_ldnum = ph->p_memsz / sizeof (Elf32_Dyn); > } > else if (ph->p_type == 1) > { > if (! l->l_addr) > l->l_addr = ph->p_vaddr; > if (ph->p_vaddr + ph->p_memsz >= l->l_map_end) > l->l_map_end = ph->p_vaddr + ph->p_memsz; > if ((ph->p_flags & (1 << 0)) > && ph->p_vaddr + ph->p_memsz >= l->l_text_end) > l->l_text_end = ph->p_vaddr + ph->p_memsz; > } > else > > ((ph->p_type != 7) ? (void) (0) : __assert_fail ("ph->p_type != 7", "setup-vdso.h", 61, __PRETTY_FUNCTION__)); > } > l->l_map_start = (Elf32_Addr) _rtld_local_ro._dl_sysinfo_dso; > l->l_addr = l->l_map_start - l->l_addr; > l->l_map_end += l->l_addr; > l->l_text_end += l->l_addr; > l->l_ld = (void *) ((Elf32_Addr) l->l_ld + l->l_addr); > elf_get_dynamic_info (l, dyn_temp); > _dl_setup_hash (l); > l->l_relocated = 1; > > > l->l_used = 1; > > > > > > l->l_local_scope[0]->r_nlist = 1; > l->l_local_scope[0]->r_list = &l->l_real; > > > > > > if (l->l_info[14] != ((void *)0)) > { > > > const char *dsoname = ((char *) (l)->l_info[5]->d_un.d_ptr > + l->l_info[14]->d_un.d_val); > size_t len = strlen (dsoname) + 1; > char *copy = malloc (len); > if (copy == ((void *)0)) > do { _dl_dprintf (2, "out of memory\n"); exit_internal (127); } while (1); > l->l_libname->name = memcpy (copy, dsoname, len); > if (_rtld_local_ro._dl_debug_mask) > l->l_name = copy; > } > > > _dl_add_to_namespace_list (l, 0); > > > > ((l->l_next == ((void *)0)) ? (void) (0) : __assert_fail ("l->l_next == ((void *)0)", "setup-vdso.h", 106, __PRETTY_FUNCTION__)); > ((l->l_prev == main_map) ? (void) (0) : __assert_fail ("l->l_prev == main_map", "setup-vdso.h", 107, __PRETTY_FUNCTION__)); > _rtld_local._dl_rtld_map.l_next = l; > l->l_prev = &_rtld_local._dl_rtld_map; > *first_preload = &l->l_next; > > > > > > _rtld_local_ro._dl_sysinfo_map = l; > > if (_rtld_local_ro._dl_sysinfo == (uintptr_t) _dl_sysinfo_int80) > _rtld_local_ro._dl_sysinfo = _rtld_local_ro._dl_sysinfo_dso->e_entry + l->l_addr; > > } > >} ># 727 "rtld.c" 2 > > >static const char *library_path __attribute__ ((section (".data.rel.ro"))); > >static const char *preloadlist __attribute__ ((section (".data.rel.ro"))); > >static int version_info __attribute__ ((section (".data.rel.ro"))); > >static void >dl_main (const Elf32_Phdr *phdr, > Elf32_Word phnum, > Elf32_Addr *user_entry, > Elf32_auxv_t *auxv) >{ > const Elf32_Phdr *ph; > enum mode mode; > struct link_map *main_map; > size_t file_size; > char *file; > _Bool has_interp = 0; > unsigned int i; > _Bool prelinked = 0; > _Bool rtld_is_main = 0; > > hp_timing_t start; > hp_timing_t stop; > hp_timing_t diff; > > void *tcbp = ((void *)0); > > > > _rtld_local._dl_error_catch_tsd = &_dl_initial_error_catch_tsd; > > > _rtld_local._dl_init_static_tls = &_dl_nothread_init_static_tls; > > > > _rtld_local._dl_rtld_lock_recursive = rtld_lock_default_lock_recursive; > _rtld_local._dl_rtld_unlock_recursive = rtld_lock_default_unlock_recursive; > > > > > _rtld_local._dl_make_stack_executable_hook = &_dl_make_stack_executable; > > > process_envvars (&mode); > > > _dl_starting_up_internal = 1; > > if (*user_entry == (Elf32_Addr) _start) > { ># 797 "rtld.c" > rtld_is_main = 1; > > > _rtld_local._dl_rtld_map.l_name = (_dl_argv_internal[0]); > > while (_dl_argc > 1) > if (! __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_dl_argv_internal[1]) && __builtin_constant_p ("--list") && (__s1_len = strlen (_dl_argv_internal[1]), __s2_len = strlen ("--list"), (!((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--list") + 1) - (size_t)(const void *)("--list") == 1) || __s2_len >= 4)) ? __builtin_strcmp (_dl_argv_internal[1], "--list") : (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) && (__s1_len = strlen (_dl_argv_internal[1]), __s1_len < 4) ? (__builtin_constant_p ("--list") && ((size_t)(const void *)(("--list") + 1) - (size_t)(const void *)("--list") == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--list") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("--list"); int __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("--list") && ((size_t)(const void *)(("--list") + 1) - (size_t)(const void *)("--list") == 1) && (__s2_len = strlen ("--list"), __s2_len < 4) ? (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--list") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (_dl_argv_internal[1]); int __result = (((const unsigned char *) (const char *) ("--list"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--list"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--list"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("--list"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (_dl_argv_internal[1], "--list")))); })) > { > mode = list; > _rtld_local_ro._dl_lazy = -1; > > ++_dl_skip_args; > --_dl_argc; > ++_dl_argv_internal; > } > else if (! __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_dl_argv_internal[1]) && __builtin_constant_p ("--verify") && (__s1_len = strlen (_dl_argv_internal[1]), __s2_len = strlen ("--verify"), (!((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--verify") + 1) - (size_t)(const void *)("--verify") == 1) || __s2_len >= 4)) ? __builtin_strcmp (_dl_argv_internal[1], "--verify") : (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) && (__s1_len = strlen (_dl_argv_internal[1]), __s1_len < 4) ? (__builtin_constant_p ("--verify") && ((size_t)(const void *)(("--verify") + 1) - (size_t)(const void *)("--verify") == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--verify") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("--verify"); int __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("--verify") && ((size_t)(const void *)(("--verify") + 1) - (size_t)(const void *)("--verify") == 1) && (__s2_len = strlen ("--verify"), __s2_len < 4) ? (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--verify") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (_dl_argv_internal[1]); int __result = (((const unsigned char *) (const char *) ("--verify"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--verify"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--verify"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("--verify"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (_dl_argv_internal[1], "--verify")))); })) > { > mode = verify; > > ++_dl_skip_args; > --_dl_argc; > ++_dl_argv_internal; > } > else if (! __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_dl_argv_internal[1]) && __builtin_constant_p ("--inhibit-cache") && (__s1_len = strlen (_dl_argv_internal[1]), __s2_len = strlen ("--inhibit-cache"), (!((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--inhibit-cache") + 1) - (size_t)(const void *)("--inhibit-cache") == 1) || __s2_len >= 4)) ? __builtin_strcmp (_dl_argv_internal[1], "--inhibit-cache") : (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) && (__s1_len = strlen (_dl_argv_internal[1]), __s1_len < 4) ? (__builtin_constant_p ("--inhibit-cache") && ((size_t)(const void *)(("--inhibit-cache") + 1) - (size_t)(const void *)("--inhibit-cache") == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--inhibit-cache") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("--inhibit-cache"); int __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("--inhibit-cache") && ((size_t)(const void *)(("--inhibit-cache") + 1) - (size_t)(const void *)("--inhibit-cache") == 1) && (__s2_len = strlen ("--inhibit-cache"), __s2_len < 4) ? (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--inhibit-cache") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (_dl_argv_internal[1]); int __result = (((const unsigned char *) (const char *) ("--inhibit-cache"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--inhibit-cache"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--inhibit-cache"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("--inhibit-cache"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (_dl_argv_internal[1], "--inhibit-cache")))); })) > { > _rtld_local_ro._dl_inhibit_cache = 1; > ++_dl_skip_args; > --_dl_argc; > ++_dl_argv_internal; > } > else if (! __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_dl_argv_internal[1]) && __builtin_constant_p ("--library-path") && (__s1_len = strlen (_dl_argv_internal[1]), __s2_len = strlen ("--library-path"), (!((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--library-path") + 1) - (size_t)(const void *)("--library-path") == 1) || __s2_len >= 4)) ? __builtin_strcmp (_dl_argv_internal[1], "--library-path") : (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) && (__s1_len = strlen (_dl_argv_internal[1]), __s1_len < 4) ? (__builtin_constant_p ("--library-path") && ((size_t)(const void *)(("--library-path") + 1) - (size_t)(const void *)("--library-path") == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--library-path") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("--library-path"); int __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("--library-path") && ((size_t)(const void *)(("--library-path") + 1) - (size_t)(const void *)("--library-path") == 1) && (__s2_len = strlen ("--library-path"), __s2_len < 4) ? (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--library-path") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (_dl_argv_internal[1]); int __result = (((const unsigned char *) (const char *) ("--library-path"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--library-path"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--library-path"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("--library-path"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (_dl_argv_internal[1], "--library-path")))); }) > && _dl_argc > 2) > { > library_path = _dl_argv_internal[2]; > > _dl_skip_args += 2; > _dl_argc -= 2; > _dl_argv_internal += 2; > } > else if (! __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_dl_argv_internal[1]) && __builtin_constant_p ("--inhibit-rpath") && (__s1_len = strlen (_dl_argv_internal[1]), __s2_len = strlen ("--inhibit-rpath"), (!((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--inhibit-rpath") + 1) - (size_t)(const void *)("--inhibit-rpath") == 1) || __s2_len >= 4)) ? __builtin_strcmp (_dl_argv_internal[1], "--inhibit-rpath") : (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) && (__s1_len = strlen (_dl_argv_internal[1]), __s1_len < 4) ? (__builtin_constant_p ("--inhibit-rpath") && ((size_t)(const void *)(("--inhibit-rpath") + 1) - (size_t)(const void *)("--inhibit-rpath") == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--inhibit-rpath") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("--inhibit-rpath"); int __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("--inhibit-rpath") && ((size_t)(const void *)(("--inhibit-rpath") + 1) - (size_t)(const void *)("--inhibit-rpath") == 1) && (__s2_len = strlen ("--inhibit-rpath"), __s2_len < 4) ? (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--inhibit-rpath") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (_dl_argv_internal[1]); int __result = (((const unsigned char *) (const char *) ("--inhibit-rpath"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--inhibit-rpath"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--inhibit-rpath"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("--inhibit-rpath"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (_dl_argv_internal[1], "--inhibit-rpath")))); }) > && _dl_argc > 2) > { > _rtld_local_ro._dl_inhibit_rpath = _dl_argv_internal[2]; > > _dl_skip_args += 2; > _dl_argc -= 2; > _dl_argv_internal += 2; > } > else if (! __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_dl_argv_internal[1]) && __builtin_constant_p ("--audit") && (__s1_len = strlen (_dl_argv_internal[1]), __s2_len = strlen ("--audit"), (!((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("--audit") + 1) - (size_t)(const void *)("--audit") == 1) || __s2_len >= 4)) ? __builtin_strcmp (_dl_argv_internal[1], "--audit") : (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) && (__s1_len = strlen (_dl_argv_internal[1]), __s1_len < 4) ? (__builtin_constant_p ("--audit") && ((size_t)(const void *)(("--audit") + 1) - (size_t)(const void *)("--audit") == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--audit") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("--audit"); int __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (_dl_argv_internal[1]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("--audit") && ((size_t)(const void *)(("--audit") + 1) - (size_t)(const void *)("--audit") == 1) && (__s2_len = strlen ("--audit"), __s2_len < 4) ? (__builtin_constant_p (_dl_argv_internal[1]) && ((size_t)(const void *)((_dl_argv_internal[1]) + 1) - (size_t)(const void *)(_dl_argv_internal[1]) == 1) ? __builtin_strcmp (_dl_argv_internal[1], "--audit") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (_dl_argv_internal[1]); int __result = (((const unsigned char *) (const char *) ("--audit"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--audit"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--audit"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("--audit"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (_dl_argv_internal[1], "--audit")))); }) && _dl_argc > 2) > { > process_dl_audit (_dl_argv_internal[2]); > > _dl_skip_args += 2; > _dl_argc -= 2; > _dl_argv_internal += 2; > } > else > break; > > > > if (_dl_argc < 2) > do { _dl_dprintf (2, "Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]\nYou have invoked `ld.so', the helper program for shared library executables.\nThis program usually lives in the file `/lib/ld.so', and special directives\nin executable files using ELF shared libraries tell the system's program\nloader to load the helper program from this file. This helper program loads\nthe shared libraries needed by the program executable, prepares the program\nto run, and runs it. You may invoke this helper program directly from the\ncommand line to load and run an ELF executable file; this is like executing\nthat file itself, but always uses this helper program from the file you\nspecified, instead of the helper program file specified in the executable\nfile you run. This is mostly of use for maintainers to test new versions\nof this helper program; chances are you did not intend to run this program.\n\n --list list all dependencies and how they are resolved\n --verify verify that given object really is a dynamically linked\n object we can handle\n --inhibit-cache Do not use " "/etc" "/ld.so.cache" "\n --library-path PATH use given PATH instead of content of the environment\n variable LD_LIBRARY_PATH\n --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names\n in LIST\n --audit LIST use objects named in LIST as auditors\n"); exit_internal (127); } while (1) ># 881 "rtld.c" > ; > > ++_dl_skip_args; > --_dl_argc; > ++_dl_argv_internal; ># 899 "rtld.c" > for (ph = phdr; ph < &phdr[phnum]; ++ph) > if (ph->p_type == 0x6474e551) > { > _rtld_local._dl_stack_flags = ph->p_flags; > break; > } > > if (__builtin_expect (mode, normal) == verify) > { > const char *objname; > const char *err_str = ((void *)0); > struct map_args args; > _Bool malloced; > > args.str = (_dl_argv_internal[0]); > args.loader = ((void *)0); > args.mode = 0x20000000; > (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit, > &args); > if (__builtin_expect ((err_str != ((void *)0)), 0)) > > > exit_internal (1); > } > else > { > __asm__ __volatile__ ("rdtsc" : "=A" (start)); > _dl_map_object (((void *)0), (_dl_argv_internal[0]), lt_executable, 0, > 0x20000000, 0); > __asm__ __volatile__ ("rdtsc" : "=A" (stop)); > > ((load_time) = (stop) - (start)); > } > > > main_map = _rtld_local._dl_ns[0]._ns_loaded; > > if (__builtin_expect (mode, normal) == normal > && _rtld_local._dl_rtld_map.l_info[14] != ((void *)0) > && main_map->l_info[14] != ((void *)0) > && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) && __builtin_constant_p ((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) && (__s1_len = strlen ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val), __s2_len = strlen ((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val), (!((size_t)(const void *)(((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) == 1) || __s2_len >= 4)) ? __builtin_strcmp ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val, (const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) : (__builtin_constant_p ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) && ((size_t)(const void *)(((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) == 1) && (__s1_len = strlen ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val), __s1_len < 4) ? (__builtin_constant_p ((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) && ((size_t)(const void *)(((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) == 1) ? __builtin_strcmp ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val, (const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val); int __result = (((const unsigned char *) (const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) && ((size_t)(const void *)(((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) == 1) && (__s2_len = strlen ((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val), __s2_len < 4) ? (__builtin_constant_p ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) && ((size_t)(const void *)(((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) == 1) ? __builtin_strcmp ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val, (const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val); int __result = (((const unsigned char *) (const char *) ((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ((const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val, (const char *) (main_map)->l_info[5]->d_un.d_ptr + main_map->l_info[14]->d_un.d_val)))); }) > > > == 0) > do { _dl_dprintf (2, "loader cannot load itself\n"); exit_internal (127); } while (1); > > phdr = main_map->l_phdr; > phnum = main_map->l_phnum; > > > > > main_map->l_name = (char *) ""; > *user_entry = main_map->l_entry; > > > > > for (Elf32_auxv_t *av = auxv; av->a_type != 0; av++) > switch (av->a_type) > { > case 3: > av->a_un.a_val = (uintptr_t) phdr; > break; > case 5: > av->a_un.a_val = phnum; > break; > case 9: > av->a_un.a_val = *user_entry; > break; > case 31: > av->a_un.a_val = (uintptr_t) _dl_argv[0]; > break; > } > > } > else > { > > > main_map = _dl_new_object ((char *) "", "", lt_executable, ((void *)0), > 0x20000000, 0); > ((main_map != ((void *)0)) ? (void) (0) : __assert_fail ("main_map != ((void *)0)", "rtld.c", 981, __PRETTY_FUNCTION__)); > main_map->l_phdr = phdr; > main_map->l_phnum = phnum; > main_map->l_entry = *user_entry; > > > > _dl_add_to_namespace_list (main_map, 0); > ((main_map == _rtld_local._dl_ns[0]._ns_loaded) ? (void) (0) : __assert_fail ("main_map == _rtld_local._dl_ns[0]._ns_loaded", "rtld.c", 989, __PRETTY_FUNCTION__)); ># 1008 "rtld.c" > } > > main_map->l_map_end = 0; > main_map->l_text_end = 0; > > main_map->l_map_start = ~0; > > ++main_map->l_direct_opencount; > > > for (ph = phdr; ph < &phdr[phnum]; ++ph) > switch (ph->p_type) > { > case 6: > > main_map->l_addr = (Elf32_Addr) phdr - ph->p_vaddr; > break; > case 2: > > > main_map->l_ld = (void *) main_map->l_addr + ph->p_vaddr; > break; > case 3: > > > > > > > _dl_rtld_libname.name = ((const char *) main_map->l_addr > + ph->p_vaddr); > > _rtld_local._dl_rtld_map.l_libname = &_dl_rtld_libname; > > > > > > > if (_rtld_local._dl_rtld_map.l_ld == ((void *)0)) > { > const char *p = ((void *)0); > const char *cp = _dl_rtld_libname.name; > > > while (*cp != '\0') > if (*cp++ == '/') > p = cp; > > if (p != ((void *)0)) > { > _dl_rtld_libname2.name = p; > > _dl_rtld_libname.next = &_dl_rtld_libname2; > } > } > > has_interp = 1; > break; > case 1: > { > Elf32_Addr mapstart; > Elf32_Addr allocend; > > > mapstart = (main_map->l_addr > + (ph->p_vaddr & ~(_rtld_local_ro._dl_pagesize - 1))); > if (main_map->l_map_start > mapstart) > main_map->l_map_start = mapstart; > > > allocend = main_map->l_addr + ph->p_vaddr + ph->p_memsz; > if (main_map->l_map_end < allocend) > main_map->l_map_end = allocend; > if ((ph->p_flags & (1 << 0)) && allocend > main_map->l_text_end) > main_map->l_text_end = allocend; > } > break; > > case 7: > if (ph->p_memsz > 0) > { > > > > > main_map->l_tls_blocksize = ph->p_memsz; > main_map->l_tls_align = ph->p_align; > if (ph->p_align == 0) > main_map->l_tls_firstbyte_offset = 0; > else > main_map->l_tls_firstbyte_offset = (ph->p_vaddr > & (ph->p_align - 1)); > main_map->l_tls_initimage_size = ph->p_filesz; > main_map->l_tls_initimage = (void *) ph->p_vaddr; > > > _rtld_local._dl_tls_max_dtv_idx = main_map->l_tls_modid = 1; > } > break; > > case 0x6474e551: > _rtld_local._dl_stack_flags = ph->p_flags; > break; > > case 0x6474e552: > main_map->l_relro_addr = ph->p_vaddr; > main_map->l_relro_size = ph->p_memsz; > break; > } > > > > if (main_map->l_tls_initimage != ((void *)0)) > main_map->l_tls_initimage > = (char *) main_map->l_tls_initimage + main_map->l_addr; > if (! main_map->l_map_end) > main_map->l_map_end = ~0; > if (! main_map->l_text_end) > main_map->l_text_end = ~0; > if (! _rtld_local._dl_rtld_map.l_libname && _rtld_local._dl_rtld_map.l_name) > { > > > _dl_rtld_libname.name = _rtld_local._dl_rtld_map.l_name; > > _rtld_local._dl_rtld_map.l_libname = &_dl_rtld_libname; > } > else > ((_rtld_local._dl_rtld_map.l_libname) ? (void) (0) : __assert_fail ("_rtld_local._dl_rtld_map.l_libname", "rtld.c", 1137, __PRETTY_FUNCTION__)); > > > > if (_rtld_local._dl_rtld_map.l_info[14] != ((void *)0) > && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (_rtld_local._dl_rtld_map.l_libname->name) && __builtin_constant_p ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) && (__s1_len = strlen (_rtld_local._dl_rtld_map.l_libname->name), __s2_len = strlen ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val), (!((size_t)(const void *)((_rtld_local._dl_rtld_map.l_libname->name) + 1) - (size_t)(const void *)(_rtld_local._dl_rtld_map.l_libname->name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) == 1) || __s2_len >= 4)) ? __builtin_strcmp (_rtld_local._dl_rtld_map.l_libname->name, (const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) : (__builtin_constant_p (_rtld_local._dl_rtld_map.l_libname->name) && ((size_t)(const void *)((_rtld_local._dl_rtld_map.l_libname->name) + 1) - (size_t)(const void *)(_rtld_local._dl_rtld_map.l_libname->name) == 1) && (__s1_len = strlen (_rtld_local._dl_rtld_map.l_libname->name), __s1_len < 4) ? (__builtin_constant_p ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) && ((size_t)(const void *)(((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) == 1) ? __builtin_strcmp (_rtld_local._dl_rtld_map.l_libname->name, (const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val); int __result = (((const unsigned char *) (const char *) (_rtld_local._dl_rtld_map.l_libname->name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (_rtld_local._dl_rtld_map.l_libname->name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (_rtld_local._dl_rtld_map.l_libname->name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (_rtld_local._dl_rtld_map.l_libname->name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) && ((size_t)(const void *)(((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) + 1) - (size_t)(const void *)((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) == 1) && (__s2_len = strlen ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val), __s2_len < 4) ? (__builtin_constant_p (_rtld_local._dl_rtld_map.l_libname->name) && ((size_t)(const void *)((_rtld_local._dl_rtld_map.l_libname->name) + 1) - (size_t)(const void *)(_rtld_local._dl_rtld_map.l_libname->name) == 1) ? __builtin_strcmp (_rtld_local._dl_rtld_map.l_libname->name, (const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (_rtld_local._dl_rtld_map.l_libname->name); int __result = (((const unsigned char *) (const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ((const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (_rtld_local._dl_rtld_map.l_libname->name, (const char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_val)))); }) > > != 0) > { > static struct libname_list newname; > newname.name = ((char *) (&_rtld_local._dl_rtld_map)->l_info[5]->d_un.d_ptr > + _rtld_local._dl_rtld_map.l_info[14]->d_un.d_ptr); > newname.next = ((void *)0); > newname.dont_free = 1; > > ((_rtld_local._dl_rtld_map.l_libname->next == ((void *)0)) ? (void) (0) : __assert_fail ("_rtld_local._dl_rtld_map.l_libname->next == ((void *)0)", "rtld.c", 1152, __PRETTY_FUNCTION__)); > _rtld_local._dl_rtld_map.l_libname->next = &newname; > } > > > ((_rtld_local._dl_rtld_map.l_relocated) ? (void) (0) : __assert_fail ("_rtld_local._dl_rtld_map.l_relocated", "rtld.c", 1157, __PRETTY_FUNCTION__)); > > if (! rtld_is_main) > { > > elf_get_dynamic_info (main_map, ((void *)0)); > > _dl_setup_hash (main_map); > } > > if (__builtin_expect (mode, normal) == verify) > { > > > > > if (main_map->l_ld == ((void *)0)) > exit_internal (1); > > > > do { if (main_map->l_info[1]) { const Elf32_Dyn *d; const char *strtab; strtab = (const char *) (main_map)->l_info[5]->d_un.d_ptr; for (d = main_map->l_ld; d->d_tag != 0; ++d) if (d->d_tag == 1 && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (strtab + d->d_un.d_val) && __builtin_constant_p ("libc.so.5") && (__s1_len = strlen (strtab + d->d_un.d_val), __s2_len = strlen ("libc.so.5"), (!((size_t)(const void *)((strtab + d->d_un.d_val) + 1) - (size_t)(const void *)(strtab + d->d_un.d_val) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("libc.so.5") + 1) - (size_t)(const void *)("libc.so.5") == 1) || __s2_len >= 4)) ? __builtin_strcmp (strtab + d->d_un.d_val, "libc.so.5") : (__builtin_constant_p (strtab + d->d_un.d_val) && ((size_t)(const void *)((strtab + d->d_un.d_val) + 1) - (size_t)(const void *)(strtab + d->d_un.d_val) == 1) && (__s1_len = strlen (strtab + d->d_un.d_val), __s1_len < 4) ? (__builtin_constant_p ("libc.so.5") && ((size_t)(const void *)(("libc.so.5") + 1) - (size_t)(const void *)("libc.so.5") == 1) ? __builtin_strcmp (strtab + d->d_un.d_val, "libc.so.5") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("libc.so.5"); int __result = (((const unsigned char *) (const char *) (strtab + d->d_un.d_val))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (strtab + d->d_un.d_val))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (strtab + d->d_un.d_val))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (strtab + d->d_un.d_val))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("libc.so.5") && ((size_t)(const void *)(("libc.so.5") + 1) - (size_t)(const void *)("libc.so.5") == 1) && (__s2_len = strlen ("libc.so.5"), __s2_len < 4) ? (__builtin_constant_p (strtab + d->d_un.d_val) && ((size_t)(const void *)((strtab + d->d_un.d_val) + 1) - (size_t)(const void *)(strtab + d->d_un.d_val) == 1) ? __builtin_strcmp (strtab + d->d_un.d_val, "libc.so.5") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (strtab + d->d_un.d_val); int __result = (((const unsigned char *) (const char *) ("libc.so.5"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("libc.so.5"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("libc.so.5"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("libc.so.5"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (strtab + d->d_un.d_val, "libc.so.5")))); }) == 0) break; _dl_dprintf (1, d->d_tag != 0 ? "5\n" : "6\n"); } } while (0); > > exit_internal (has_interp ? 0 : 2); > } > > struct link_map **first_preload = &_rtld_local._dl_rtld_map.l_next; > > > setup_vdso (main_map, &first_preload); > > > do { int version = _dl_discover_osversion (); if (__builtin_expect ((version >= 0), 1)) { if (__builtin_expect (_rtld_local_ro._dl_osversion == 0, 1) || _rtld_local_ro._dl_osversion > version) _rtld_local_ro._dl_osversion = version; if ((2 * 65536 + 6 * 256 + 32) > 0 && version < (2 * 65536 + 6 * 256 + 32)) do { _dl_dprintf (2, "FATAL: kernel too old\n"); exit_internal (127); } while (1); } else if ((2 * 65536 + 6 * 256 + 32) > 0) do { _dl_dprintf (2, "FATAL: cannot determine kernel version\n"); exit_internal (127); } while (1); } while (0); > > > > > _dl_init_paths (library_path); > > > struct r_debug *r = _dl_debug_initialize (_rtld_local._dl_rtld_map.l_addr, > 0); > r->r_state = RT_CONSISTENT; > > > > > if (! _rtld_local._dl_rtld_map.l_name) > > > _rtld_local._dl_rtld_map.l_name = (char *) _rtld_local._dl_rtld_map.l_libname->name; > _rtld_local._dl_rtld_map.l_type = lt_library; > main_map->l_next = &_rtld_local._dl_rtld_map; > _rtld_local._dl_rtld_map.l_prev = main_map; > ++_rtld_local._dl_ns[0]._ns_nloaded; > ++_rtld_local._dl_load_adds; > > > > > if (_rtld_local_ro._dl_use_load_bias == (Elf32_Addr) -2) > _rtld_local_ro._dl_use_load_bias = main_map->l_addr == 0 ? -1 : 0; > > > > const Elf32_Ehdr *rtld_ehdr; > > > > > > > > extern const Elf32_Ehdr __ehdr_start __attribute__ ((visibility ("hidden"))); > rtld_ehdr = &__ehdr_start; > > > > ((rtld_ehdr->e_ehsize == sizeof *rtld_ehdr) ? (void) (0) : __assert_fail ("rtld_ehdr->e_ehsize == sizeof *rtld_ehdr", "rtld.c", 1235, __PRETTY_FUNCTION__)); > ((rtld_ehdr->e_phentsize == sizeof (Elf32_Phdr)) ? (void) (0) : __assert_fail ("rtld_ehdr->e_phentsize == sizeof (Elf32_Phdr)", "rtld.c", 1236, __PRETTY_FUNCTION__)); > > const Elf32_Phdr *rtld_phdr = (const void *) rtld_ehdr + rtld_ehdr->e_phoff; > > _rtld_local._dl_rtld_map.l_phdr = rtld_phdr; > _rtld_local._dl_rtld_map.l_phnum = rtld_ehdr->e_phnum; > > > > size_t cnt = rtld_ehdr->e_phnum; > while (cnt-- > 0) > if (rtld_phdr[cnt].p_type == 0x6474e552) > { > _rtld_local._dl_rtld_map.l_relro_addr = rtld_phdr[cnt].p_vaddr; > _rtld_local._dl_rtld_map.l_relro_size = rtld_phdr[cnt].p_memsz; > break; > } > > > if (_rtld_local._dl_rtld_map.l_tls_blocksize != 0) > > _rtld_local._dl_rtld_map.l_tls_modid = _dl_next_tls_modid (); > > > if (__builtin_expect ((audit_list != ((void *)0)), 0)) > { > > struct audit_ifaces *last_audit = ((void *)0); > struct audit_list *al = audit_list->next; > > > > tcbp = init_tls (); > > > > > > security_init (); > > do > { > int tls_idx = _rtld_local._dl_tls_max_dtv_idx; > > > > > > > struct dlmopen_args dlmargs; > dlmargs.fname = al->name; > dlmargs.map = ((void *)0); > > const char *objname; > const char *err_str = ((void *)0); > _Bool malloced; > (void) _dl_catch_error (&objname, &err_str, &malloced, dlmopen_doit, > &dlmargs); > if (__builtin_expect ((err_str != ((void *)0)), 0)) > { > not_loaded: > _dl_dprintf (2, "ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", al->name, err_str) > > ; > if (malloced) > free ((char *) err_str); > } > else > { > struct lookup_args largs; > largs.name = "la_version"; > largs.map = dlmargs.map; > > > (void) _dl_catch_error (&objname, &err_str, &malloced, > lookup_doit, &largs); > > unsigned int (*laversion) (unsigned int); > unsigned int lav; > if (err_str == ((void *)0) > && (laversion = largs.result) != ((void *)0) > && (lav = laversion (1)) > 0 > && lav <= 1) > { > > > union > { > struct audit_ifaces ifaces; > > void (*fptr[8]) (void); > } *newp = malloc (sizeof (*newp)); > > > > static const char audit_iface_names[] = > "la_activity\0" > "la_objsearch\0" > "la_objopen\0" > "la_preinit\0" > > "la_symbind32\0" > > > > > > > "la_" "i86_gnu_pltenter" "\0" > "la_" "i86_gnu_pltexit" "\0" > "la_objclose\0"; > unsigned int cnt = 0; > const char *cp = audit_iface_names; > do > { > largs.name = cp; > (void) _dl_catch_error (&objname, &err_str, &malloced, > lookup_doit, &largs); > > > if (err_str == ((void *)0) && largs.result != ((void *)0)) > { > newp->fptr[cnt] = largs.result; > > > > _rtld_local._dl_rtld_map.l_audit[cnt].cookie > = (intptr_t) &_rtld_local._dl_rtld_map; > } > else > newp->fptr[cnt] = ((void *)0); > ++cnt; > > cp = (char *) rawmemchr (cp, '\0') + 1; > } > while (*cp != '\0'); > ((cnt == 8) ? (void) (0) : __assert_fail ("cnt == 8", "rtld.c", 1372, __PRETTY_FUNCTION__)); > > > newp->ifaces.next = ((void *)0); > if (last_audit == ((void *)0)) > last_audit = _rtld_local_ro._dl_audit = &newp->ifaces; > else > last_audit = last_audit->next = &newp->ifaces; > ++_rtld_local_ro._dl_naudit; > > > dlmargs.map->l_auditing = 1; > } > else > { > > > > > Lmid_t ns = dlmargs.map->l_ns; > > _dl_close (dlmargs.map); > > > ((_rtld_local._dl_ns[ns]._ns_loaded == ((void *)0)) ? (void) (0) : __assert_fail ("_rtld_local._dl_ns[ns]._ns_loaded == ((void *)0)", "rtld.c", 1396, __PRETTY_FUNCTION__)); > ((_rtld_local._dl_ns[ns]._ns_nloaded == 0) ? (void) (0) : __assert_fail ("_rtld_local._dl_ns[ns]._ns_nloaded == 0", "rtld.c", 1397, __PRETTY_FUNCTION__)); > > _rtld_local._dl_tls_max_dtv_idx = tls_idx; > goto not_loaded; > } > } > > al = al->next; > } > while (al != audit_list->next); > > > > if (__builtin_expect ((_rtld_local_ro._dl_naudit > 0), 0)) > { > struct link_map *ls[2] = { main_map, &_rtld_local._dl_rtld_map }; > > for (unsigned int outer = 0; outer < 2; ++outer) > { > struct audit_ifaces *afct = _rtld_local_ro._dl_audit; > for (unsigned int cnt = 0; cnt < _rtld_local_ro._dl_naudit; ++cnt) > { > if (afct->objopen != ((void *)0)) > { > ls[outer]->l_audit[cnt].bindflags > = afct->objopen (ls[outer], 0, > &ls[outer]->l_audit[cnt].cookie); > > ls[outer]->l_audit_any_plt > |= ls[outer]->l_audit[cnt].bindflags != 0; > } > > afct = afct->next; > } > } > } > } > > > > size_t count_modids = _dl_count_modids (); > > > > > > > > if (main_map->l_info[21] != ((void *)0)) > > > main_map->l_info[21]->d_un.d_ptr = (Elf32_Addr) r; > > > > if (_rtld_local._dl_rtld_map.l_info[21] != ((void *)0)) > _rtld_local._dl_rtld_map.l_info[21]->d_un.d_ptr = (Elf32_Addr) r; > > > > r->r_state = RT_ADD; > _dl_debug_state (); > do { __asm__ __volatile__ ("990: nop" "\n" ".pushsection .note.stapsdt" "," "\"?\"" "," "\"note\"" "\n" ".balign 4" "\n" ".4byte 992f-991f" "," "994f-993f" "," "3" "\n" "991: .asciz \"stapsdt\"" "\n" "992: .balign 4" "\n" "993: .4byte 990b" "\n" ".4byte _.stapsdt.base" "\n" ".4byte 0" "\n" ".asciz \"rtld\"" "\n" ".asciz \"init_start\"" "\n" ".asciz \"%n[_SDT_S1]@%[_SDT_A1] %n[_SDT_S2]@%[_SDT_A2]\"" "\n" "994: .balign 4" "\n" ".popsection" "\n" :: [_SDT_S1] "n" (((!__extension__ (__builtin_constant_p ((((unsigned long long) (__typeof (__builtin_choose_expr (((__builtin_classify_type (0) + 3) & -4) == 4, (0), 0U))) __sdt_unsp) & ((unsigned long long)1 << (sizeof (unsigned long long) * 8 - 1))) == 0) || (__typeof (__builtin_choose_expr (((__builtin_classify_type (0) + 3) & -4) == 4, (0), 0U))) -1 > (__typeof (__builtin_choose_expr (((__builtin_classify_type (0) + 3) & -4) == 4, (0), 0U))) 0)) ? 1 : -1) * (int) ((__builtin_classify_type (0) == 14 || __builtin_classify_type (0) == 5) ? sizeof (void *) : sizeof (0))), [_SDT_A1] "nor" ((0)), [_SDT_S2] "n" (((!__extension__ (__builtin_constant_p ((((unsigned long long) (__typeof (__builtin_choose_expr (((__builtin_classify_type (r) + 3) & -4) == 4, (r), 0U))) __sdt_unsp) & ((unsigned long long)1 << (sizeof (unsigned long long) * 8 - 1))) == 0) || (__typeof (__builtin_choose_expr (((__builtin_classify_type (r) + 3) & -4) == 4, (r), 0U))) -1 > (__typeof (__builtin_choose_expr (((__builtin_classify_type (r) + 3) & -4) == 4, (r), 0U))) 0)) ? 1 : -1) * (int) ((__builtin_classify_type (r) == 14 || __builtin_classify_type (r) == 5) ? sizeof (void *) : sizeof (r))), [_SDT_A2] "nor" ((r))); __asm__ __volatile__ (".ifndef _.stapsdt.base" "\n" ".pushsection .stapsdt.base" "," "\"aG\"" "," "\"progbits\"" "," ".stapsdt.base" "," "comdat" "\n" ".weak _.stapsdt.base" "\n" ".hidden _.stapsdt.base" "\n" "_.stapsdt.base: .space 1" "\n" ".size _.stapsdt.base" "," "1" "\n" ".popsection" "\n" ".endif" "\n"); } while (0); > > > > if (__builtin_expect ((_rtld_local_ro._dl_naudit > 0), 0)) > { > struct audit_ifaces *afct = _rtld_local_ro._dl_audit; > for (unsigned int cnt = 0; cnt < _rtld_local_ro._dl_naudit; ++cnt) > { > if (afct->activity != ((void *)0)) > afct->activity (&main_map->l_audit[cnt].cookie, LA_ACT_ADD); > > afct = afct->next; > } > } > > > > > ((*first_preload == ((void *)0)) ? (void) (0) : __assert_fail ("*first_preload == ((void *)0)", "rtld.c", 1478, __PRETTY_FUNCTION__)); > struct link_map **preloads = ((void *)0); > unsigned int npreloads = 0; > > if (__builtin_expect ((preloadlist != ((void *)0)), 0)) > { > > > > > > char *list = (__extension__ ({ const char *__old = (preloadlist); size_t __len = strlen (__old) + 1; char *__new = (char *) __builtin_alloca (__len); (char *) memcpy (__new, __old, __len); })); > char *p; > > __asm__ __volatile__ ("rdtsc" : "=A" (start)); > > > while ((p = (strsep) (&list, " :")) != ((void *)0)) > if (p[0] != '\0' > && (__builtin_expect (! __libc_enable_secure_internal, 1) > || (__extension__ (__builtin_constant_p ('/') && !__builtin_constant_p (p) && ('/') == '\0' ? (char *) __rawmemchr (p, '/') : __builtin_strchr (p, '/'))) == ((void *)0))) > npreloads += do_preload (p, main_map, "LD_PRELOAD"); > > __asm__ __volatile__ ("rdtsc" : "=A" (stop)); > ((diff) = (stop) - (start)); > ((load_time) += (diff)); > } > > > > > > > > static const char preload_file[] = "/etc/ld.so.preload"; > if (__builtin_expect ((__access (preload_file, 4) == 0), 0)) > { > > file = _dl_sysdep_read_whole_file (preload_file, &file_size, > 0x1 | 0x2); > if (__builtin_expect ((file != ((void *) -1)), 0)) > { > > > > char *problem; > char *runp; > size_t rest; > > > runp = file; > rest = file_size; > while (rest > 0) > { > char *comment = memchr (runp, '#', rest); > if (comment == ((void *)0)) > break; > > rest -= comment - runp; > do > *comment = ' '; > while (--rest > 0 && *++comment != '\n'); > } > > > > > if (file[file_size - 1] != ' ' && file[file_size - 1] != '\t' > && file[file_size - 1] != '\n' && file[file_size - 1] != ':') > { > problem = &file[file_size]; > while (problem > file && problem[-1] != ' ' > && problem[-1] != '\t' > && problem[-1] != '\n' && problem[-1] != ':') > --problem; > > if (problem > file) > problem[-1] = '\0'; > } > else > { > problem = ((void *)0); > file[file_size - 1] = '\0'; > } > > __asm__ __volatile__ ("rdtsc" : "=A" (start)); > > if (file != problem) > { > char *p; > runp = file; > while ((p = __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (": \t\n") && ((size_t)(const void *)((": \t\n") + 1) - (size_t)(const void *)(": \t\n") == 1) && (__r0 = ((const char *) (": \t\n"))[0], ((const char *) (": \t\n"))[0] != '\0') ? ((__r1 = ((const char *) (": \t\n"))[1], ((const char *) (": \t\n"))[1] == '\0') ? __strsep_1c (&runp, __r0) : ((__r2 = ((const char *) (": \t\n"))[2], __r2 == '\0') ? __strsep_2c (&runp, __r0, __r1) : (((const char *) (": \t\n"))[3] == '\0' ? __strsep_3c (&runp, __r0, __r1, __r2) : __strsep_g (&runp, ": \t\n")))) : __strsep_g (&runp, ": \t\n")); })) != ((void *)0)) > if (p[0] != '\0') > npreloads += do_preload (p, main_map, preload_file); > } > > if (problem != ((void *)0)) > { > char *p = (__extension__ ({ const char *__old = (problem); size_t __len = strnlen (__old, (file_size - (problem - file))); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); })); > > npreloads += do_preload (p, main_map, preload_file); > } > > __asm__ __volatile__ ("rdtsc" : "=A" (stop)); > ((diff) = (stop) - (start)); > ((load_time) += (diff)); > > > __munmap (file, file_size); > } > } > > if (__builtin_expect ((*first_preload != ((void *)0)), 0)) > { > > struct link_map *l = *first_preload; > preloads = __builtin_alloca (npreloads * sizeof preloads[0]); > i = 0; > do > { > preloads[i++] = l; > l = l->l_next; > } while (l); > ((i == npreloads) ? (void) (0) : __assert_fail ("i == npreloads", "rtld.c", 1601, __PRETTY_FUNCTION__)); > } > > > > > __asm__ __volatile__ ("rdtsc" : "=A" (start)); > _dl_map_object_deps (main_map, preloads, npreloads, mode == trace, 0); > __asm__ __volatile__ ("rdtsc" : "=A" (stop)); > ((diff) = (stop) - (start)); > ((load_time) += (diff)); > > > for (i = main_map->l_searchlist.r_nlist; i > 0; ) > main_map->l_searchlist.r_list[--i]->l_global = 1; > > > _rtld_local._dl_rtld_map.l_prev->l_next = _rtld_local._dl_rtld_map.l_next; > if (_rtld_local._dl_rtld_map.l_next != ((void *)0)) > _rtld_local._dl_rtld_map.l_next->l_prev = _rtld_local._dl_rtld_map.l_prev; > > for (i = 1; i < main_map->l_searchlist.r_nlist; ++i) > if (main_map->l_searchlist.r_list[i] == &_rtld_local._dl_rtld_map) > break; > > _Bool rtld_multiple_ref = 0; > if (__builtin_expect ((i < main_map->l_searchlist.r_nlist), 1)) > { > > > > > rtld_multiple_ref = 1; > > _rtld_local._dl_rtld_map.l_prev = main_map->l_searchlist.r_list[i - 1]; > if (__builtin_expect (mode, normal) == normal) > { > _rtld_local._dl_rtld_map.l_next = (i + 1 < main_map->l_searchlist.r_nlist > ? main_map->l_searchlist.r_list[i + 1] > : ((void *)0)); > > if (_rtld_local_ro._dl_sysinfo_map != ((void *)0) > && _rtld_local._dl_rtld_map.l_prev->l_next == _rtld_local_ro._dl_sysinfo_map > && _rtld_local._dl_rtld_map.l_next != _rtld_local_ro._dl_sysinfo_map) > _rtld_local._dl_rtld_map.l_prev = _rtld_local_ro._dl_sysinfo_map; > > } > else > > > > > > _rtld_local._dl_rtld_map.l_next = _rtld_local._dl_rtld_map.l_prev->l_next; > > ((_rtld_local._dl_rtld_map.l_prev->l_next == _rtld_local._dl_rtld_map.l_next) ? (void) (0) : __assert_fail ("_rtld_local._dl_rtld_map.l_prev->l_next == _rtld_local._dl_rtld_map.l_next", "rtld.c", 1656, __PRETTY_FUNCTION__)); > _rtld_local._dl_rtld_map.l_prev->l_next = &_rtld_local._dl_rtld_map; > if (_rtld_local._dl_rtld_map.l_next != ((void *)0)) > { > ((_rtld_local._dl_rtld_map.l_next->l_prev == _rtld_local._dl_rtld_map.l_prev) ? (void) (0) : __assert_fail ("_rtld_local._dl_rtld_map.l_next->l_prev == _rtld_local._dl_rtld_map.l_prev", "rtld.c", 1660, __PRETTY_FUNCTION__)); > _rtld_local._dl_rtld_map.l_next->l_prev = &_rtld_local._dl_rtld_map; > } > } > > > > { > struct version_check_args args; > args.doexit = mode == normal; > args.dotrace = mode == trace; > _dl_receive_error (print_missing_version, version_check_doit, &args); > } ># 1681 "rtld.c" > _Bool was_tls_init_tp_called = tls_init_tp_called; > if (tcbp == ((void *)0)) > tcbp = init_tls (); > > if (__builtin_expect ((audit_list == ((void *)0)), 1)) > > > security_init (); > > if (__builtin_expect (mode, normal) != normal) > { > > > > > struct link_map *l; > > if (_rtld_local_ro._dl_debug_mask & (1 << 11)) > { > struct r_scope_elem *scope = &main_map->l_searchlist; > > for (i = 0; i < scope->r_nlist; i++) > { > l = scope->r_list [i]; > if (l->l_faked) > { > _dl_dprintf (1, "\t%s => not found\n", l->l_libname->name); > continue; > } > if (_dl_name_match_p (_rtld_local_ro._dl_trace_prelink, l)) > _rtld_local_ro._dl_trace_prelink_map = l; > _dl_dprintf (1, "\t%s => %s (0x%0*Zx, 0x%0*Zx)", ((l->l_libname->name)[0] ? (l->l_libname->name) : ((_dl_argv_internal[0]) ?: "<main program>")), ((l->l_name)[0] ? (l->l_name) : ((_dl_argv_internal[0]) ?: "<main program>")), (int) sizeof l->l_map_start * 2, (size_t) l->l_map_start, (int) sizeof l->l_addr * 2, (size_t) l->l_addr) > > > > > > ; > > if (l->l_tls_modid) > _dl_dprintf (1, " TLS(0x%Zx, 0x%0*Zx)\n", l->l_tls_modid, (int) sizeof l->l_tls_offset * 2, (size_t) l->l_tls_offset) > > ; > else > _dl_dprintf (1, "\n"); > } > } > else if (_rtld_local_ro._dl_debug_mask & (1 << 8)) > { > > > > struct link_map *l = main_map; > > > struct relocate_args args = { .l = l, > .reloc_mode = ((_rtld_local_ro._dl_lazy > ? 0x00001 : 0) > | 0x02000000) }; > _dl_receive_error (print_unresolved, relocate_doit, &args); > > > > Elf32_Dyn *dyn = main_map->l_ld; > _Bool first = 1; > while (dyn->d_tag != 0) > { > if (dyn->d_tag == 1) > { > l = l->l_next; > > > > if (l == _rtld_local_ro._dl_sysinfo_map) > l = l->l_next; > > if (!l->l_used) > { > if (first) > { > _dl_dprintf (1, "Unused direct dependencies:\n"); > first = 0; > } > > _dl_dprintf (1, "\t%s\n", l->l_name); > } > } > > ++dyn; > } > > exit_internal (first != 1); > } > else if (! main_map->l_info[1]) > _dl_dprintf (1, "\tstatically linked\n"); > else > { > for (l = main_map->l_next; l; l = l->l_next) > if (l->l_faked) > > _dl_dprintf (1, "\t%s => not found\n", l->l_libname->name); > else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (l->l_libname->name) && __builtin_constant_p (l->l_name) && (__s1_len = strlen (l->l_libname->name), __s2_len = strlen (l->l_name), (!((size_t)(const void *)((l->l_libname->name) + 1) - (size_t)(const void *)(l->l_libname->name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((l->l_name) + 1) - (size_t)(const void *)(l->l_name) == 1) || __s2_len >= 4)) ? __builtin_strcmp (l->l_libname->name, l->l_name) : (__builtin_constant_p (l->l_libname->name) && ((size_t)(const void *)((l->l_libname->name) + 1) - (size_t)(const void *)(l->l_libname->name) == 1) && (__s1_len = strlen (l->l_libname->name), __s1_len < 4) ? (__builtin_constant_p (l->l_name) && ((size_t)(const void *)((l->l_name) + 1) - (size_t)(const void *)(l->l_name) == 1) ? __builtin_strcmp (l->l_libname->name, l->l_name) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (l->l_name); int __result = (((const unsigned char *) (const char *) (l->l_libname->name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (l->l_libname->name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (l->l_libname->name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (l->l_libname->name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (l->l_name) && ((size_t)(const void *)((l->l_name) + 1) - (size_t)(const void *)(l->l_name) == 1) && (__s2_len = strlen (l->l_name), __s2_len < 4) ? (__builtin_constant_p (l->l_libname->name) && ((size_t)(const void *)((l->l_libname->name) + 1) - (size_t)(const void *)(l->l_libname->name) == 1) ? __builtin_strcmp (l->l_libname->name, l->l_name) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (l->l_libname->name); int __result = (((const unsigned char *) (const char *) (l->l_name))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (l->l_name))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (l->l_name))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (l->l_name))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (l->l_libname->name, l->l_name)))); }) == 0) > _dl_dprintf (1, "\t%s (0x%0*Zx)\n", l->l_libname->name, (int) sizeof l->l_map_start * 2, (size_t) l->l_map_start) > > ; > else > _dl_dprintf (1, "\t%s => %s (0x%0*Zx)\n", l->l_libname->name, l->l_name, (int) sizeof l->l_map_start * 2, (size_t) l->l_map_start) > > ; > } > > if (__builtin_expect (mode, trace) != trace) > for (i = 1; i < (unsigned int) _dl_argc; ++i) > { > const Elf32_Sym *ref = ((void *)0); > Elf32_Addr loadbase; > lookup_t result; > > result = _dl_lookup_symbol_x (_dl_argv_internal[i], main_map, > &ref, main_map->l_scope, > ((void *)0), 1, > DL_LOOKUP_ADD_DEPENDENCY, ((void *)0)); > > loadbase = ((result) ? (result)->l_addr : 0); > > _dl_dprintf (1, "%s found at 0x%0*Zd in object at 0x%0*Zd\n", _dl_argv_internal[i], (int) sizeof ref->st_value * 2, (size_t) ref->st_value, (int) sizeof loadbase * 2, (size_t) loadbase) > > > > ; > } > else > { > > if (_rtld_local_ro._dl_lazy >= 0 && _rtld_local_ro._dl_verbose) > { > > struct relocate_args args; > unsigned int i; > > args.reloc_mode = ((_rtld_local_ro._dl_lazy ? 0x00001 : 0) > | 0x02000000); > > i = main_map->l_searchlist.r_nlist; > while (i-- > 0) > { > struct link_map *l = main_map->l_initfini[i]; > if (l != &_rtld_local._dl_rtld_map && ! l->l_faked) > { > args.l = l; > _dl_receive_error (print_unresolved, relocate_doit, > &args); > } > } > > if ((_rtld_local_ro._dl_debug_mask & (1 << 11)) > && rtld_multiple_ref) > { > > _rtld_local._dl_rtld_map.l_relocated = 0; > _dl_relocate_object (&_rtld_local._dl_rtld_map, > main_map->l_scope, 0x02000000, 0); > } > } > > if (version_info) > { > > > int first = 1; > struct link_map *map; > > for (map = main_map; map != ((void *)0); map = map->l_next) > { > const char *strtab; > Elf32_Dyn *dyn = map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffe)))]; > Elf32_Verneed *ent; > > if (dyn == ((void *)0)) > continue; > > strtab = (const void *) (map)->l_info[5]->d_un.d_ptr; > ent = (Elf32_Verneed *) (map->l_addr + dyn->d_un.d_ptr); > > if (first) > { > _dl_dprintf (1, "\n\tVersion information:\n"); > first = 0; > } > > _dl_dprintf (1, "\t%s:\n", ((map->l_name)[0] ? (map->l_name) : ((_dl_argv_internal[0]) ?: "<main program>"))); > > while (1) > { > Elf32_Vernaux *aux; > struct link_map *needed; > > needed = find_needed (strtab + ent->vn_file); > aux = (Elf32_Vernaux *) ((char *) ent + ent->vn_aux); > > while (1) > { > const char *fname = ((void *)0); > > if (needed != ((void *)0) > && match_version (strtab + aux->vna_name, > needed)) > fname = needed->l_name; > > _dl_dprintf (1, "\t\t%s (%s) %s=> %s\n", strtab + ent->vn_file, strtab + aux->vna_name, aux->vna_flags & 0x2 ? "[WEAK] " : "", fname ?: "not found") > > > > > ; > > if (aux->vna_next == 0) > > break; > > > aux = (Elf32_Vernaux *) ((char *) aux > + aux->vna_next); > } > > if (ent->vn_next == 0) > > break; > > > ent = (Elf32_Verneed *) ((char *) ent + ent->vn_next); > } > } > } > } > > exit_internal (0); > } > > if (main_map->l_info[(34 + 0 + 16 + 3 + 12 + (0x6ffffeff - (0x6ffffef9)))] > && ! __builtin_expect (_rtld_local_ro._dl_profile != ((void *)0), 0) > && ! __builtin_expect (_rtld_local_ro._dl_dynamic_weak, 0)) > { > Elf32_Lib *liblist, *liblistend; > struct link_map **r_list, **r_listend, *l; > const char *strtab = (const void *) (main_map)->l_info[5]->d_un.d_ptr; > > ((main_map->l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf7)))] != ((void *)0)) ? (void) (0) : __assert_fail ("main_map->l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf7)))] != ((void *)0)", "rtld.c", 1928, __PRETTY_FUNCTION__)); > liblist = (Elf32_Lib *) > main_map->l_info[(34 + 0 + 16 + 3 + 12 + (0x6ffffeff - (0x6ffffef9)))]->d_un.d_ptr; > liblistend = (Elf32_Lib *) > ((char *) liblist + > main_map->l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf7)))]->d_un.d_val); > r_list = main_map->l_searchlist.r_list; > r_listend = r_list + main_map->l_searchlist.r_nlist; > > for (; r_list < r_listend && liblist < liblistend; r_list++) > { > l = *r_list; > > if (l == main_map) > continue; > > > if (l->l_addr) > break; > > > if (l->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf8)))] == ((void *)0) > || l->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf8)))]->d_un.d_val > != liblist->l_checksum) > break; > > if (l->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf5)))] == ((void *)0) > || l->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf5)))]->d_un.d_val > != liblist->l_time_stamp) > break; > > if (! _dl_name_match_p (strtab + liblist->l_name, l)) > break; > > ++liblist; > } > > > if (r_list == r_listend && liblist == liblistend) > prelinked = 1; > > if (__builtin_expect ((_rtld_local_ro._dl_debug_mask & (1 << 0)), 0)) > _dl_debug_printf ("\nprelink checking: %s\n", > prelinked ? "ok" : "failed"); > } > > > > _rtld_local._dl_ns[0]._ns_main_searchlist = &main_map->l_searchlist; > > > > _rtld_local_ro._dl_initial_searchlist = *_rtld_local._dl_ns[0]._ns_main_searchlist; > > > > _rtld_local_ro._dl_init_all_dirs = _rtld_local._dl_all_dirs; > > > if (__builtin_expect ((_rtld_local_ro._dl_debug_mask & (1 << 9)), 0)) > { > _dl_debug_printf ("\nInitial object scopes\n"); > > for (struct link_map *l = main_map; l != ((void *)0); l = l->l_next) > _dl_show_scope (l, 0); > } > > if (prelinked) > { > if (main_map->l_info [(34 + 0 + 16 + 3 + 12 + (0x6ffffeff - (0x6ffffef8)))] != ((void *)0)) > { > Elf32_Rela *conflict, *conflictend; > > hp_timing_t start; > hp_timing_t stop; > > > __asm__ __volatile__ ("rdtsc" : "=A" (start)); > ((main_map->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf6)))] != ((void *)0)) ? (void) (0) : __assert_fail ("main_map->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf6)))] != ((void *)0)", "rtld.c", 2006, __PRETTY_FUNCTION__)); > conflict = (Elf32_Rela *) > main_map->l_info [(34 + 0 + 16 + 3 + 12 + (0x6ffffeff - (0x6ffffef8)))]->d_un.d_ptr; > conflictend = (Elf32_Rela *) > ((char *) conflict > + main_map->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf6)))]->d_un.d_val); > _dl_resolve_conflicts (main_map, conflict, conflictend); > __asm__ __volatile__ ("rdtsc" : "=A" (stop)); > ((relocate_time) = (stop) - (start)); > } > > > > for (struct link_map *l = main_map; l != ((void *)0); l = l->l_next) > { > l->l_relocated = 1; > if (l->l_relro_size) > _dl_protect_relro (l); > > > if (l->l_tls_blocksize != 0 && tls_init_tp_called) > _dl_add_to_slotinfo (l); > } > } > else > { ># 2041 "rtld.c" > int consider_profiling = _rtld_local_ro._dl_profile != ((void *)0); > > hp_timing_t start; > hp_timing_t stop; > > > > _rtld_local_ro._dl_lazy |= consider_profiling; > > __asm__ __volatile__ ("rdtsc" : "=A" (start)); > unsigned i = main_map->l_searchlist.r_nlist; > while (i-- > 0) > { > struct link_map *l = main_map->l_initfini[i]; > > > > > struct libname_list *lnp = l->l_libname->next; > > while (__builtin_expect (lnp != ((void *)0), 0)) > { > lnp->dont_free = 1; > lnp = lnp->next; > } > > l->l_free_initfini = 0; > > if (l != &_rtld_local._dl_rtld_map) > _dl_relocate_object (l, l->l_scope, _rtld_local_ro._dl_lazy ? 0x00001 : 0, > consider_profiling); > > > if (l->l_tls_blocksize != 0 && tls_init_tp_called) > _dl_add_to_slotinfo (l); > } > __asm__ __volatile__ ("rdtsc" : "=A" (stop)); > > ((relocate_time) = (stop) - (start)); > > > > > > if (__builtin_expect ((_rtld_local._dl_profile_map != ((void *)0)), 0)) > > _dl_start_profile (); > } > > if ((!was_tls_init_tp_called && _rtld_local._dl_tls_max_dtv_idx > 0) > || count_modids != _dl_count_modids ()) > ++_rtld_local._dl_tls_generation; > > > > > _dl_allocate_tls_init (tcbp); > > > if (! tls_init_tp_called) > { > const char *lossage = ({ void *_thrdescr = (tcbp); tcbhead_t *_head = _thrdescr; union user_desc_init _segdescr; int _result; _head->tcb = _thrdescr; _head->self = _thrdescr; _head->sysinfo = _rtld_local_ro._dl_sysinfo; tls_fill_user_desc (&_segdescr, -1, _thrdescr); asm volatile ("xchgl %3, %%ebx\n\t" "int $0x80\n\t" "xchgl %3, %%ebx\n\t" : "=a" (_result), "=m" (_segdescr.desc.entry_number) : "0" (243), "r" (&_segdescr.desc), "m" (_segdescr.desc)); if (_result == 0) __asm ("movl %0, %%gs" :: "q" (_segdescr.desc.entry_number * 8 + 3)); _result == 0 ? ((void *)0) : "set_thread_area failed when setting up thread-local storage\n"; }); > if (__builtin_expect ((lossage != ((void *)0)), 0)) > do { _dl_dprintf (2, "cannot set up thread-local storage: %s\n", lossage); exit_internal (127); } while (1) > ; > } > > > ((_rtld_local_ro._dl_init_all_dirs == _rtld_local._dl_all_dirs) ? (void) (0) : __assert_fail ("_rtld_local_ro._dl_init_all_dirs == _rtld_local._dl_all_dirs", "rtld.c", 2109, __PRETTY_FUNCTION__)); > > if (! prelinked && rtld_multiple_ref) > { ># 2121 "rtld.c" > hp_timing_t start; > hp_timing_t stop; > hp_timing_t add; > > > __asm__ __volatile__ ("rdtsc" : "=A" (start)); > > _rtld_local._dl_rtld_map.l_relocated = 0; > _dl_relocate_object (&_rtld_local._dl_rtld_map, main_map->l_scope, 0, 0); > __asm__ __volatile__ ("rdtsc" : "=A" (stop)); > ((add) = (stop) - (start)); > ((relocate_time) += (add)); > } > > > > > > > _dl_sysdep_start_cleanup (); > > > > if (__builtin_expect ((_rtld_local_ro._dl_naudit > 0), 0)) > { > struct link_map *head = _rtld_local._dl_ns[0]._ns_loaded; > > if (head->l_auditing == 0) > { > struct audit_ifaces *afct = _rtld_local_ro._dl_audit; > for (unsigned int cnt = 0; cnt < _rtld_local_ro._dl_naudit; ++cnt) > { > if (afct->activity != ((void *)0)) > afct->activity (&head->l_audit[cnt].cookie, LA_ACT_CONSISTENT); > > afct = afct->next; > } > } > } > > > > > r = _dl_debug_initialize (0, 0); > r->r_state = RT_CONSISTENT; > _dl_debug_state (); > do { __asm__ __volatile__ ("990: nop" "\n" ".pushsection .note.stapsdt" "," "\"?\"" "," "\"note\"" "\n" ".balign 4" "\n" ".4byte 992f-991f" "," "994f-993f" "," "3" "\n" "991: .asciz \"stapsdt\"" "\n" "992: .balign 4" "\n" "993: .4byte 990b" "\n" ".4byte _.stapsdt.base" "\n" ".4byte 0" "\n" ".asciz \"rtld\"" "\n" ".asciz \"init_complete\"" "\n" ".asciz \"%n[_SDT_S1]@%[_SDT_A1] %n[_SDT_S2]@%[_SDT_A2]\"" "\n" "994: .balign 4" "\n" ".popsection" "\n" :: [_SDT_S1] "n" (((!__extension__ (__builtin_constant_p ((((unsigned long long) (__typeof (__builtin_choose_expr (((__builtin_classify_type (0) + 3) & -4) == 4, (0), 0U))) __sdt_unsp) & ((unsigned long long)1 << (sizeof (unsigned long long) * 8 - 1))) == 0) || (__typeof (__builtin_choose_expr (((__builtin_classify_type (0) + 3) & -4) == 4, (0), 0U))) -1 > (__typeof (__builtin_choose_expr (((__builtin_classify_type (0) + 3) & -4) == 4, (0), 0U))) 0)) ? 1 : -1) * (int) ((__builtin_classify_type (0) == 14 || __builtin_classify_type (0) == 5) ? sizeof (void *) : sizeof (0))), [_SDT_A1] "nor" ((0)), [_SDT_S2] "n" (((!__extension__ (__builtin_constant_p ((((unsigned long long) (__typeof (__builtin_choose_expr (((__builtin_classify_type (r) + 3) & -4) == 4, (r), 0U))) __sdt_unsp) & ((unsigned long long)1 << (sizeof (unsigned long long) * 8 - 1))) == 0) || (__typeof (__builtin_choose_expr (((__builtin_classify_type (r) + 3) & -4) == 4, (r), 0U))) -1 > (__typeof (__builtin_choose_expr (((__builtin_classify_type (r) + 3) & -4) == 4, (r), 0U))) 0)) ? 1 : -1) * (int) ((__builtin_classify_type (r) == 14 || __builtin_classify_type (r) == 5) ? sizeof (void *) : sizeof (r))), [_SDT_A2] "nor" ((r))); __asm__ __volatile__ (".ifndef _.stapsdt.base" "\n" ".pushsection .stapsdt.base" "," "\"aG\"" "," "\"progbits\"" "," ".stapsdt.base" "," "comdat" "\n" ".weak _.stapsdt.base" "\n" ".hidden _.stapsdt.base" "\n" "_.stapsdt.base: .space 1" "\n" ".size _.stapsdt.base" "," "1" "\n" ".popsection" "\n" ".endif" "\n"); } while (0); > > > > _dl_unload_cache (); > > > > >} > > > >static void >print_unresolved (int errcode __attribute__ ((unused)), const char *objname, > const char *errstring) >{ > if (objname[0] == '\0') > objname = ((_dl_argv_internal[0]) ?: "<program name unknown>"); > _dl_dprintf (2, "%s (%s)\n", errstring, objname); >} > > > >static void >print_missing_version (int errcode __attribute__ ((unused)), > const char *objname, const char *errstring) >{ > _dl_dprintf (2, "%s: %s: %s\n", ((_dl_argv_internal[0]) ?: "<program name unknown>"), objname, errstring) > ; >} > > >static int any_debug __attribute__ ((section (".data.rel.ro"))); > > > >static void >process_dl_debug (const char *dl_debug) >{ > > > static const struct > { > unsigned char len; > const char name[10]; > const char helptext[41]; > unsigned short int mask; > } debopts[] = > { > > { sizeof ("libs") - 1, "libs", "display library search paths", > (1 << 0) | (1 << 1) }, > { sizeof ("reloc") - 1, "reloc", "display relocation processing", > (1 << 5) | (1 << 1) }, > { sizeof ("files") - 1, "files", "display progress for input file", > (1 << 6) | (1 << 1) }, > { sizeof ("symbols") - 1, "symbols", "display symbol table processing", > (1 << 3) | (1 << 1) }, > { sizeof ("bindings") - 1, "bindings", "display information about symbol binding", > (1 << 2) | (1 << 1) }, > { sizeof ("versions") - 1, "versions", "display version dependencies", > (1 << 4) | (1 << 1) }, > { sizeof ("scopes") - 1, "scopes", "display scope information", > (1 << 9) }, > { sizeof ("all") - 1, "all", "all previous options combined", > (1 << 0) | (1 << 5) | (1 << 6) | (1 << 3) > | (1 << 2) | (1 << 4) | (1 << 1) > | (1 << 9) }, > { sizeof ("statistics") - 1, "statistics", "display relocation statistics", > (1 << 7) }, > { sizeof ("unused") - 1, "unused", "determined unused DSOs", > (1 << 8) }, > { sizeof ("help") - 1, "help", "display this help message and exit", > (1 << 10) }, > }; > > > > while (*dl_debug != '\0') > { > if (*dl_debug != ' ' && *dl_debug != ',' && *dl_debug != ':') > { > size_t cnt; > size_t len = 1; > > while (dl_debug[len] != '\0' && dl_debug[len] != ' ' > && dl_debug[len] != ',' && dl_debug[len] != ':') > ++len; > > for (cnt = 0; cnt < (sizeof (debopts) / sizeof (debopts[0])); ++cnt) > if (debopts[cnt].len == len > && memcmp (dl_debug, debopts[cnt].name, len) == 0) > { > _rtld_local_ro._dl_debug_mask |= debopts[cnt].mask; > any_debug = 1; > break; > } > > if (cnt == (sizeof (debopts) / sizeof (debopts[0]))) > { > > > char *copy = (__extension__ ({ const char *__old = (dl_debug); size_t __len = strnlen (__old, (len)); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); })); > _dl_dprintf (2, "warning: debug option `%s' unknown; try LD_DEBUG=help\n", copy) > ; > } > > dl_debug += len; > continue; > } > > ++dl_debug; > } > > if (_rtld_local_ro._dl_debug_mask & (1 << 8)) > { > > > > _rtld_local_ro._dl_lazy = 0; > } > > if (_rtld_local_ro._dl_debug_mask & (1 << 10)) > { > size_t cnt; > > _dl_dprintf (1, "Valid options for the LD_DEBUG environment variable are:\n\n") > ; > > for (cnt = 0; cnt < (sizeof (debopts) / sizeof (debopts[0])); ++cnt) > _dl_dprintf (1, " %.*s%s%s\n", debopts[cnt].len, debopts[cnt].name, " " + debopts[cnt].len - 3, debopts[cnt].helptext) > > ; > > _dl_dprintf (1, "\nTo direct the debugging output into a file instead of standard output\na filename can be specified using the LD_DEBUG_OUTPUT environment variable.\n") > > ; > exit_internal (0); > } >} > >static void >process_dl_audit (char *str) >{ > > char *p; > > while ((p = (strsep) (&str, ":")) != ((void *)0)) > if (p[0] != '\0' > && (__builtin_expect (! __libc_enable_secure_internal, 1) > || (__extension__ (__builtin_constant_p ('/') && !__builtin_constant_p (p) && ('/') == '\0' ? (char *) __rawmemchr (p, '/') : __builtin_strchr (p, '/'))) == ((void *)0))) > { > > > struct audit_list *newp = malloc (sizeof (*newp)); > newp->name = p; > > if (audit_list == ((void *)0)) > audit_list = newp->next = newp; > else > { > newp->next = audit_list->next; > audit_list = audit_list->next = newp; > } > } >} > > > > >extern char **_environ __attribute__ ((visibility ("hidden"))); > > >static void >process_envvars (enum mode *modep) >{ > char **runp = _environ; > char *envline; > enum mode mode = normal; > char *debug_output = ((void *)0); > > > _rtld_local_ro._dl_profile_output > = &"/var/tmp\0/var/profile"[__libc_enable_secure_internal ? 9 : 0]; > > while ((envline = _dl_next_ld_env_entry (&runp)) != ((void *)0)) > { > size_t len = 0; > > while (envline[len] != '\0' && envline[len] != '=') > ++len; > > if (envline[len] != '=') > > > > continue; > > switch (len) > { > case 4: > > if (memcmp (envline, "WARN", 4) == 0) > _rtld_local_ro._dl_verbose = envline[5] != '\0'; > break; > > case 5: > > if (memcmp (envline, "DEBUG", 5) == 0) > { > process_dl_debug (&envline[6]); > break; > } > if (memcmp (envline, "AUDIT", 5) == 0) > process_dl_audit (&envline[6]); > break; > > case 7: > > if (memcmp (envline, "VERBOSE", 7) == 0) > { > version_info = envline[8] != '\0'; > break; > } > > > if (memcmp (envline, "PRELOAD", 7) == 0) > { > preloadlist = &envline[8]; > break; > } > > > if (memcmp (envline, "PROFILE", 7) == 0 && envline[8] != '\0') > _rtld_local_ro._dl_profile = &envline[8]; > break; > > case 8: > > if (memcmp (envline, "BIND_NOW", 8) == 0) > { > _rtld_local_ro._dl_lazy = envline[9] == '\0'; > break; > } > if (memcmp (envline, "BIND_NOT", 8) == 0) > _rtld_local_ro._dl_bind_not = envline[9] != '\0'; > break; > > case 9: > > > if (!__libc_enable_secure_internal > && memcmp (envline, "SHOW_AUXV", 9) == 0) > _dl_show_auxv (); > break; > > case 10: > > if (memcmp (envline, "HWCAP_MASK", 10) == 0) > _rtld_local_ro._dl_hwcap_mask = __strtoul_internal (&envline[11], ((void *)0), > 0, 0); > break; > > case 11: > > if (!__libc_enable_secure_internal > && memcmp (envline, "ORIGIN_PATH", 11) == 0) > _rtld_local_ro._dl_origin_path = &envline[12]; > break; > > case 12: > > if (memcmp (envline, "LIBRARY_PATH", 12) == 0) > { > library_path = &envline[13]; > break; > } > > > if (memcmp (envline, "DEBUG_OUTPUT", 12) == 0) > { > debug_output = &envline[13]; > break; > } > > if (!__libc_enable_secure_internal > && memcmp (envline, "DYNAMIC_WEAK", 12) == 0) > _rtld_local_ro._dl_dynamic_weak = 1; > break; > > case 13: > > > > if (memcmp (envline, "ASSUME_KERNEL", 13) == 0) { _dl_osversion_init (&envline[14]); break; } > > if (!__libc_enable_secure_internal > && memcmp (envline, "USE_LOAD_BIAS", 13) == 0) > { > _rtld_local_ro._dl_use_load_bias = envline[14] == '1' ? -1 : 0; > break; > } > > if (memcmp (envline, "POINTER_GUARD", 13) == 0) > _rtld_local_ro._dl_pointer_guard = envline[14] != '0'; > break; > > case 14: > > if (!__libc_enable_secure_internal > && memcmp (envline, "PROFILE_OUTPUT", 14) == 0 > && envline[15] != '\0') > _rtld_local_ro._dl_profile_output = &envline[15]; > break; > > case 16: > > if (memcmp (envline, "TRACE_PRELINKING", 16) == 0) > { > mode = trace; > _rtld_local_ro._dl_verbose = 1; > _rtld_local_ro._dl_debug_mask |= (1 << 11); > _rtld_local_ro._dl_trace_prelink = &envline[17]; > } > break; > > case 20: > > if (memcmp (envline, "TRACE_LOADED_OBJECTS", 20) == 0) > mode = trace; > break; > > > > > > > case 15: if (memcmp (envline, "LIBRARY_VERSION", 15) == 0) _rtld_local_ro._dl_correct_cache_id = envline[16] == '5' ? 2 : 3; break; > > } > } > > > *modep = mode; > > > > if (__builtin_expect (__libc_enable_secure_internal, 0)) > { > static const char unsecure_envvars[] = > > "LD_AOUT_LIBRARY_PATH\0" "LD_AOUT_PRELOAD\0" > > "GCONV_PATH\0" "GETCONF_DIR\0" "HOSTALIASES\0" "LD_AUDIT\0" "LD_DEBUG\0" "LD_DEBUG_OUTPUT\0" "LD_DYNAMIC_WEAK\0" "LD_LIBRARY_PATH\0" "LD_ORIGIN_PATH\0" "LD_PRELOAD\0" "LD_PROFILE\0" "LD_SHOW_AUXV\0" "LD_USE_LOAD_BIAS\0" "LOCALDOMAIN\0" "LOCPATH\0" "MALLOC_TRACE\0" "NIS_PATH\0" "NLSPATH\0" "RESOLV_HOST_CONF\0" "RES_OPTIONS\0" "TMPDIR\0" "TZDIR\0"; > const char *nextp; > > nextp = unsecure_envvars; > do > { > unsetenv (nextp); > > nextp = (char *) (strchr) (nextp, '\0') + 1; > } > while (*nextp != '\0'); > > if (__access ("/etc/suid-debug", 0) != 0) > { > unsetenv ("MALLOC_CHECK_"); > _rtld_local_ro._dl_debug_mask = 0; > } > > if (mode != normal) > exit_internal (5); > } > > > > else if (any_debug && debug_output != ((void *)0)) > { > > const int flags = 01 | 02000 | 0100 | 0400000; > > > > size_t name_len = strlen (debug_output); > char buf[name_len + 12]; > char *startp; > > buf[name_len + 11] = '\0'; > startp = _itoa (__getpid (), &buf[name_len + 11], 10, 0); > *--startp = '.'; > startp = memcpy (startp - name_len, debug_output, name_len); > > _rtld_local_ro._dl_debug_fd = __open (startp, flags, (0400|0200|(0400 >> 3)|(0200 >> 3)|((0400 >> 3) >> 3)|((0200 >> 3) >> 3))); > if (_rtld_local_ro._dl_debug_fd == -1) > > _rtld_local_ro._dl_debug_fd = 1; > } >} > > > >static void >__attribute ((noinline)) >print_statistics (hp_timing_t *rtld_total_timep) >{ > > char buf[200]; > char *cp; > char *wp; > > > if ((1)) > { > do { char __buf[20]; char *__dest = (buf); size_t __len = (sizeof (buf)); char *__cp = _itoa ((*rtld_total_timep), __buf + sizeof (__buf), 10, 0); size_t __cp_len = (((__buf + sizeof (__buf) - __cp)<(__len))?(__buf + sizeof (__buf) - __cp):(__len)); memcpy (__dest, __cp, __cp_len); memcpy (__dest + __cp_len, " cycles", (((__len - __cp_len)<(sizeof (" cycles")))?(__len - __cp_len):(sizeof (" cycles")))); __dest[__len - 1] = '\0'; } while (0); > _dl_debug_printf ("\nruntime linker statistics:\n" > " total startup time in dynamic loader: %s\n", buf); > > > char pbuf[30]; > do { char __buf[20]; char *__dest = (buf); size_t __len = (sizeof (buf)); char *__cp = _itoa ((relocate_time), __buf + sizeof (__buf), 10, 0); size_t __cp_len = (((__buf + sizeof (__buf) - __cp)<(__len))?(__buf + sizeof (__buf) - __cp):(__len)); memcpy (__dest, __cp, __cp_len); memcpy (__dest + __cp_len, " cycles", (((__len - __cp_len)<(sizeof (" cycles")))?(__len - __cp_len):(sizeof (" cycles")))); __dest[__len - 1] = '\0'; } while (0); > cp = _itoa ((1000ULL * relocate_time) / *rtld_total_timep, > pbuf + sizeof (pbuf), 10, 0); > wp = pbuf; > switch (pbuf + sizeof (pbuf) - cp) > { > case 3: > *wp++ = *cp++; > case 2: > *wp++ = *cp++; > case 1: > *wp++ = '.'; > *wp++ = *cp++; > } > *wp = '\0'; > _dl_debug_printf (" time needed for relocation: %s (%s%%)\n", > buf, pbuf); > } > > > unsigned long int num_relative_relocations = 0; > for (Lmid_t ns = 0; ns < _rtld_local._dl_nns; ++ns) > { > if (_rtld_local._dl_ns[ns]._ns_loaded == ((void *)0)) > continue; > > struct r_scope_elem *scope = &_rtld_local._dl_ns[ns]._ns_loaded->l_searchlist; > > for (unsigned int i = 0; i < scope->r_nlist; i++) > { > struct link_map *l = scope->r_list [i]; > > if (l->l_addr != 0 && l->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffa)))]) > num_relative_relocations > += l->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffa)))]->d_un.d_val; > > > > > if ((l->l_addr != 0 || !l->l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf5)))]) > && l->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff9)))]) > > > > > > num_relative_relocations > += l->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff9)))]->d_un.d_val; > } > } > > _dl_debug_printf (" number of relocations: %lu\n" > " number of relocations from cache: %lu\n" > " number of relative relocations: %lu\n", > _rtld_local._dl_num_relocations, > _rtld_local._dl_num_cache_relocations, > num_relative_relocations); > > > > if ((1)) > { > char pbuf[30]; > do { char __buf[20]; char *__dest = (buf); size_t __len = (sizeof (buf)); char *__cp = _itoa ((load_time), __buf + sizeof (__buf), 10, 0); size_t __cp_len = (((__buf + sizeof (__buf) - __cp)<(__len))?(__buf + sizeof (__buf) - __cp):(__len)); memcpy (__dest, __cp, __cp_len); memcpy (__dest + __cp_len, " cycles", (((__len - __cp_len)<(sizeof (" cycles")))?(__len - __cp_len):(sizeof (" cycles")))); __dest[__len - 1] = '\0'; } while (0); > cp = _itoa ((1000ULL * load_time) / *rtld_total_timep, > pbuf + sizeof (pbuf), 10, 0); > wp = pbuf; > switch (pbuf + sizeof (pbuf) - cp) > { > case 3: > *wp++ = *cp++; > case 2: > *wp++ = *cp++; > case 1: > *wp++ = '.'; > *wp++ = *cp++; > } > *wp = '\0'; > _dl_debug_printf (" time needed to load objects: %s (%s%%)\n", > > buf, pbuf); > } > >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 1133134
:
930003
| 930372