# 1 "rtld.c" # 1 "" # 1 "" # 1 "./../include/libc-symbols.h" 1 # 55 "./../include/libc-symbols.h" # 1 "/var/tmp/portage/sys-libs/glibc-2.4-r4/work/build-default-s390x-ibm-linux-gnu-nptl/config.h" 1 # 56 "./../include/libc-symbols.h" 2 # 817 "./../include/libc-symbols.h" # 1 "../sysdeps/generic/symbol-hacks.h" 1 # 818 "./../include/libc-symbols.h" 2 # 1 "" 2 # 1 "rtld.c" # 20 "rtld.c" # 1 "../include/errno.h" 1 # 1 "../stdlib/errno.h" 1 # 29 "../stdlib/errno.h" # 1 "../include/features.h" 1 # 323 "../include/features.h" # 1 "../include/sys/cdefs.h" 1 # 1 "../misc/sys/cdefs.h" 1 # 313 "../misc/sys/cdefs.h" # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 314 "../misc/sys/cdefs.h" 2 # 4 "../include/sys/cdefs.h" 2 extern void __chk_fail (void) __attribute__ ((__noreturn__)); extern __typeof (__chk_fail) __chk_fail __asm__ ("" "__GI___chk_fail") __attribute__ ((visibility ("hidden"))); # 324 "../include/features.h" 2 # 346 "../include/features.h" # 1 "../include/gnu/stubs.h" 1 # 347 "../include/features.h" 2 # 30 "../stdlib/errno.h" 2 # 1 "../sysdeps/unix/sysv/linux/bits/errno.h" 1 # 25 "../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 # 11 "/usr/include/asm/errno.h" 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 # 12 "/usr/include/asm/errno.h" 2 3 4 # 5 "/usr/include/linux/errno.h" 2 3 4 # 26 "../sysdeps/unix/sysv/linux/bits/errno.h" 2 # 43 "../sysdeps/unix/sysv/linux/bits/errno.h" extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); # 37 "../stdlib/errno.h" 2 # 55 "../stdlib/errno.h" extern char *program_invocation_name, *program_invocation_short_name; # 69 "../stdlib/errno.h" typedef int error_t; # 4 "../include/errno.h" 2 # 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1 # 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" # 1 "../sysdeps/generic/dl-sysdep.h" 1 # 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2 # 9 "../include/errno.h" 2 # 18 "../include/errno.h" extern int rtld_errno __attribute__ ((visibility ("hidden"))); # 39 "../include/errno.h" extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((visibility ("hidden"))) ; # 21 "rtld.c" 2 # 1 "../include/dlfcn.h" 1 # 1 "../dlfcn/dlfcn.h" 1 # 26 "../dlfcn/dlfcn.h" # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 214 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 3 4 typedef long unsigned int size_t; # 27 "../dlfcn/dlfcn.h" 2 # 1 "../include/bits/dlfcn.h" 1 # 1 "../bits/dlfcn.h" 1 # 58 "../bits/dlfcn.h" extern void _dl_mcount_wrapper_check (void *__selfpc) __attribute__ ((__nothrow__)); # 2 "../include/bits/dlfcn.h" 2 extern void _dl_mcount_wrapper_check (void *__selfpc); # 30 "../dlfcn/dlfcn.h" 2 # 46 "../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__)) __attribute__ ((__nonnull__ (1))); extern void *dlsym (void *__restrict __handle, __const char *__restrict __name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); 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__)) __attribute__ ((__nonnull__ (2, 3))); 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__)) __attribute__ ((__nonnull__ (2))); extern int dladdr1 (__const void *__address, Dl_info *__info, void **__extra_info, int __flags) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); enum { RTLD_DL_SYMENT = 1, RTLD_DL_LINKMAP = 2 }; extern int dlinfo (void *__restrict __handle, int __request, void *__restrict __arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); 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 # 33 "../include/link.h" # 1 "../elf/link.h" 1 # 25 "../elf/link.h" # 1 "../include/elf.h" 1 # 1 "../elf/elf.h" 1 # 25 "../elf/elf.h" # 1 "../sysdeps/generic/stdint.h" 1 # 27 "../sysdeps/generic/stdint.h" # 1 "../bits/wchar.h" 1 # 28 "../sysdeps/generic/stdint.h" 2 # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 29 "../sysdeps/generic/stdint.h" 2 # 37 "../sysdeps/generic/stdint.h" typedef signed char int8_t; typedef short int int16_t; typedef int int32_t; typedef long int int64_t; typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; typedef unsigned long int uint64_t; # 66 "../sysdeps/generic/stdint.h" typedef signed char int_least8_t; typedef short int int_least16_t; typedef int int_least32_t; typedef long int int_least64_t; typedef unsigned char uint_least8_t; typedef unsigned short int uint_least16_t; typedef unsigned int uint_least32_t; typedef unsigned long int uint_least64_t; # 91 "../sysdeps/generic/stdint.h" typedef signed char int_fast8_t; typedef long int int_fast16_t; typedef long int int_fast32_t; typedef long int int_fast64_t; # 104 "../sysdeps/generic/stdint.h" typedef unsigned char uint_fast8_t; typedef unsigned long int uint_fast16_t; typedef unsigned long int uint_fast32_t; typedef unsigned long int uint_fast64_t; # 120 "../sysdeps/generic/stdint.h" typedef long int intptr_t; typedef unsigned long int uintptr_t; # 135 "../sysdeps/generic/stdint.h" typedef long int intmax_t; typedef unsigned long int uintmax_t; # 30 "../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; # 267 "../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; # 374 "../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; # 487 "../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; # 532 "../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; # 626 "../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; # 798 "../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; # 840 "../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; # 887 "../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; # 921 "../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; # 999 "../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; # 1047 "../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; # 1393 "../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; # 1469 "../elf/elf.h" typedef struct { Elf32_Word hwp_flags1; Elf32_Word hwp_flags2; } Elf_Options_Hw; # 1621 "../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; # 1652 "../elf/elf.h" typedef Elf32_Addr Elf32_Conflict; # 2623 "../elf/elf.h" # 3 "../include/elf.h" 2 # 1 "../sysdeps/generic/dl-dtprocnum.h" 1 # 6 "../include/elf.h" 2 # 26 "../elf/link.h" 2 # 1 "../include/dlfcn.h" 1 # 27 "../elf/link.h" 2 # 1 "../include/sys/types.h" 1 # 1 "../posix/sys/types.h" 1 # 29 "../posix/sys/types.h" # 1 "../bits/types.h" 1 # 28 "../bits/types.h" # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 29 "../bits/types.h" 2 # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 32 "../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; typedef signed long int __int64_t; typedef unsigned long int __uint64_t; typedef long int __quad_t; typedef unsigned long int __u_quad_t; # 134 "../bits/types.h" # 1 "../sysdeps/unix/sysv/linux/s390/bits/typesizes.h" 1 # 135 "../bits/types.h" 2 typedef unsigned long int __dev_t; typedef unsigned int __uid_t; typedef unsigned int __gid_t; typedef unsigned long int __ino_t; typedef unsigned long int __ino64_t; typedef unsigned int __mode_t; typedef unsigned long int __nlink_t; typedef long int __off_t; typedef long int __off64_t; typedef int __pid_t; typedef struct { int __val[2]; } __fsid_t; typedef long int __clock_t; typedef unsigned long int __rlim_t; typedef unsigned long int __rlim64_t; typedef unsigned int __id_t; typedef long int __time_t; typedef unsigned int __useconds_t; typedef long int __suseconds_t; typedef int __daddr_t; typedef long int __swblk_t; typedef int __key_t; typedef int __clockid_t; typedef void * __timer_t; typedef long int __blksize_t; typedef long int __blkcnt_t; typedef long int __blkcnt64_t; typedef unsigned long int __fsblkcnt_t; typedef unsigned long int __fsblkcnt64_t; typedef unsigned long int __fsfilcnt_t; typedef unsigned long int __fsfilcnt64_t; typedef long int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; typedef long int __intptr_t; typedef unsigned int __socklen_t; # 32 "../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; # 133 "../posix/sys/types.h" # 1 "../include/time.h" 1 # 1 "../time/time.h" 1 # 59 "../time/time.h" typedef __clock_t clock_t; # 75 "../time/time.h" typedef __time_t time_t; # 93 "../time/time.h" typedef __clockid_t clockid_t; # 105 "../time/time.h" typedef __timer_t timer_t; # 4 "../include/time.h" 2 # 134 "../posix/sys/types.h" 2 typedef __useconds_t useconds_t; typedef __suseconds_t suseconds_t; # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 148 "../posix/sys/types.h" 2 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 201 "../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__))); # 217 "../posix/sys/types.h" # 1 "../include/endian.h" 1 # 1 "../string/endian.h" 1 # 37 "../string/endian.h" # 1 "../sysdeps/s390/bits/endian.h" 1 # 38 "../string/endian.h" 2 # 2 "../include/endian.h" 2 # 218 "../posix/sys/types.h" 2 # 1 "../include/sys/select.h" 1 # 1 "../misc/sys/select.h" 1 # 31 "../misc/sys/select.h" # 1 "../bits/select.h" 1 # 32 "../misc/sys/select.h" 2 # 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1 # 23 "../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; # 35 "../misc/sys/select.h" 2 typedef __sigset_t sigset_t; # 1 "../include/time.h" 1 # 1 "../time/time.h" 1 # 121 "../time/time.h" struct timespec { __time_t tv_sec; long int tv_nsec; }; # 4 "../include/time.h" 2 # 45 "../misc/sys/select.h" 2 # 1 "../bits/time.h" 1 # 69 "../bits/time.h" struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 47 "../misc/sys/select.h" 2 # 55 "../misc/sys/select.h" typedef long int __fd_mask; # 67 "../misc/sys/select.h" typedef struct { __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 99 "../misc/sys/select.h" # 109 "../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); # 121 "../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); # 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); # 221 "../posix/sys/types.h" 2 # 1 "../sysdeps/unix/sysv/linux/sys/sysmacros.h" 1 # 29 "../sysdeps/unix/sysv/linux/sys/sysmacros.h" __extension__ extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned int __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev) { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ extern __inline unsigned int __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev) { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ extern __inline 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)); } # 224 "../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 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h" 1 # 23 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h" # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 24 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h" 2 # 50 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h" typedef unsigned long int pthread_t; typedef union { char __size[56]; long int __align; } pthread_attr_t; typedef struct __pthread_internal_list { struct __pthread_internal_list *__prev; struct __pthread_internal_list *__next; } __pthread_list_t; # 76 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h" typedef union { struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; unsigned int __nusers; int __kind; int __spins; __pthread_list_t __list; # 101 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h" } __data; char __size[40]; 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 { 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; int __writer; int __pad1; unsigned long int __pad2; unsigned long int __pad3; unsigned int __flags; } __data; # 184 "../nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h" char __size[56]; 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[32]; 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 # 28 "../elf/link.h" 2 # 1 "../sysdeps/unix/sysv/linux/s390/bits/elfclass.h" 1 # 28 "../sysdeps/unix/sysv/linux/s390/bits/elfclass.h" # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 29 "../sysdeps/unix/sysv/linux/s390/bits/elfclass.h" 2 typedef uint64_t Elf_Symndx; # 36 "../elf/link.h" 2 # 1 "../sysdeps/s390/bits/link.h" 1 # 70 "../sysdeps/s390/bits/link.h" typedef struct La_s390_64_regs { uint64_t lr_r2; uint64_t lr_r3; uint64_t lr_r4; uint64_t lr_r5; uint64_t lr_r6; double lr_fp0; double lr_fp2; double lr_fp4; double lr_fp6; } La_s390_64_regs; typedef struct La_s390_64_retval { uint64_t lrv_r2; double lrv_fp0; } La_s390_64_retval; extern Elf64_Addr la_s390_64_gnu_pltenter (Elf64_Sym *__sym, unsigned int __ndx, uintptr_t *__refcook, uintptr_t *__defcook, La_s390_64_regs *__regs, unsigned int *__flags, const char *__symname, long int *__framesizep); extern unsigned int la_s390_64_gnu_pltexit (Elf64_Sym *__sym, unsigned int __ndx, uintptr_t *__refcook, uintptr_t *__defcook, const La_s390_64_regs *__inregs, La_s390_64_retval *__outregs, const char *symname); # 37 "../elf/link.h" 2 struct r_debug { int r_version; struct link_map_public *r_map; Elf64_Addr r_brk; enum { RT_CONSISTENT, RT_ADD, RT_DELETE } r_state; Elf64_Addr r_ldbase; }; extern struct r_debug _r_debug; # 77 "../elf/link.h" extern Elf64_Dyn _DYNAMIC[]; struct link_map_public { Elf64_Addr l_addr; char *l_name; Elf64_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 { Elf64_Addr dlpi_addr; const char *dlpi_name; const Elf64_Phdr *dlpi_phdr; Elf64_Half dlpi_phnum; unsigned long long int dlpi_adds; 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); # 34 "../include/link.h" 2 struct link_map; extern unsigned int la_objopen (struct link_map *__map, Lmid_t __lmid, uintptr_t *__cookie); # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 152 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 3 4 typedef long int ptrdiff_t; # 326 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 3 4 typedef int wchar_t; # 43 "../include/link.h" 2 # 1 "../sysdeps/s390/bits/linkmap.h" 1 struct link_map_machine { Elf64_Addr plt; Elf64_Addr gotplt; }; # 44 "../include/link.h" 2 # 1 "../sysdeps/generic/dl-lookupcfg.h" 1 # 45 "../include/link.h" 2 # 1 "../include/tls.h" 1 # 1 "../nptl/sysdeps/s390/tls.h" 1 # 23 "../nptl/sysdeps/s390/tls.h" # 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1 # 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" # 1 "../sysdeps/generic/dl-sysdep.h" 1 # 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2 # 24 "../nptl/sysdeps/s390/tls.h" 2 # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stdbool.h" 1 3 4 # 26 "../nptl/sysdeps/s390/tls.h" 2 # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 27 "../nptl/sysdeps/s390/tls.h" 2 # 1 "../include/stdlib.h" 1 # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 8 "../include/stdlib.h" 2 # 1 "../stdlib/stdlib.h" 1 # 33 "../stdlib/stdlib.h" # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 34 "../stdlib/stdlib.h" 2 # 1 "../sysdeps/unix/sysv/linux/bits/waitflags.h" 1 # 43 "../stdlib/stdlib.h" 2 # 1 "../bits/waitstatus.h" 1 # 65 "../bits/waitstatus.h" # 1 "../include/endian.h" 1 # 66 "../bits/waitstatus.h" 2 union wait { int w_status; struct { unsigned int:16; unsigned int __w_retcode:8; unsigned int __w_coredump:1; unsigned int __w_termsig:7; } __wait_terminated; struct { unsigned int:16; unsigned int __w_stopsig:8; unsigned int __w_stopval:8; } __wait_stopped; }; # 44 "../stdlib/stdlib.h" 2 # 68 "../stdlib/stdlib.h" typedef union { union wait *__uptr; int *__iptr; } __WAIT_STATUS __attribute__ ((__transparent_union__)); # 96 "../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; # 140 "../stdlib/stdlib.h" extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ; extern double atof (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern int atoi (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern long int atol (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int atoll (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 236 "../stdlib/stdlib.h" # 1 "../include/xlocale.h" 1 # 1 "../locale/xlocale.h" 1 # 28 "../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; # 1 "../include/xlocale.h" 2 # 237 "../stdlib/stdlib.h" 2 extern long int strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; extern unsigned long int strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; __extension__ extern long long int strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; __extension__ extern unsigned long long int strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) ; extern double strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; extern float strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; extern long double strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long double __strtold_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern __inline double __attribute__ ((__nothrow__)) strtod (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtod_internal (__nptr, __endptr, 0); } extern __inline long int __attribute__ ((__nothrow__)) strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtol_internal (__nptr, __endptr, __base, 0); } extern __inline unsigned long int __attribute__ ((__nothrow__)) strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoul_internal (__nptr, __endptr, __base, 0); } extern __inline float __attribute__ ((__nothrow__)) strtof (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtof_internal (__nptr, __endptr, 0); } extern __inline long double __attribute__ ((__nothrow__)) strtold (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtold_internal (__nptr, __endptr, 0); } __extension__ extern __inline long long int __attribute__ ((__nothrow__)) strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int __attribute__ ((__nothrow__)) strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoull_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline long long int __attribute__ ((__nothrow__)) strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int __attribute__ ((__nothrow__)) strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) { return __strtoull_internal (__nptr, __endptr, __base, 0); } extern __inline double __attribute__ ((__nothrow__)) atof (__const char *__nptr) { return strtod (__nptr, (char **) ((void *)0)); } 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); } # 429 "../stdlib/stdlib.h" extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ; extern long int a64l (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; # 1 "../include/sys/types.h" 1 # 439 "../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__)) __attribute__ ((__nonnull__ (2))); extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); 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__)) __attribute__ ((__nonnull__ (1, 2))); extern int srandom_r (unsigned int __seed, struct random_data *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); 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__)) __attribute__ ((__nonnull__ (1))); extern long int lrand48 (void) __attribute__ ((__nothrow__)); extern long int nrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long int mrand48 (void) __attribute__ ((__nothrow__)); extern long int jrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void srand48 (long int __seedval) __attribute__ ((__nothrow__)); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); 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__ ((__malloc__)) __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 # 25 "../stdlib/alloca.h" # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 26 "../stdlib/alloca.h" 2 extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); # 4 "../include/alloca.h" 2 # 1 "../sysdeps/s390/stackinfo.h" 1 # 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 "../nptl/sysdeps/pthread/allocalim.h" 1 # 20 "../nptl/sysdeps/pthread/allocalim.h" # 1 "../include/alloca.h" 1 # 21 "../nptl/sysdeps/pthread/allocalim.h" 2 # 1 "../include/limits.h" 1 # 125 "../include/limits.h" # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/limits.h" 1 3 4 # 126 "../include/limits.h" 2 # 145 "../include/limits.h" # 1 "../include/bits/posix1_lim.h" 1 # 1 "../posix/bits/posix1_lim.h" 1 # 153 "../posix/bits/posix1_lim.h" # 1 "../nptl/sysdeps/unix/sysv/linux/bits/local_lim.h" 1 # 36 "../nptl/sysdeps/unix/sysv/linux/bits/local_lim.h" # 1 "/usr/include/linux/limits.h" 1 3 4 # 37 "../nptl/sysdeps/unix/sysv/linux/bits/local_lim.h" 2 # 154 "../posix/bits/posix1_lim.h" 2 # 1 "../include/bits/posix1_lim.h" 2 # 146 "../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 # 150 "../include/limits.h" 2 # 1 "../include/bits/xopen_lim.h" 1 # 34 "../include/bits/xopen_lim.h" # 1 "/var/tmp/portage/sys-libs/glibc-2.4-r4/work/build-default-s390x-ibm-linux-gnu-nptl/bits/stdio_lim.h" 1 # 35 "../include/bits/xopen_lim.h" 2 # 154 "../include/limits.h" 2 # 22 "../nptl/sysdeps/pthread/allocalim.h" 2 extern inline int __libc_use_alloca (size_t size) { return (__builtin_expect (size <= 16384 / 4, 1) || __libc_alloca_cutoff (size)); } # 21 "../include/alloca.h" 2 # 613 "../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__)) __attribute__ ((__nonnull__ (1))) ; extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern char *__secure_getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int setenv (__const char *__name, __const char *__value, int __replace) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)); extern int clearenv (void) __attribute__ ((__nothrow__)); # 698 "../stdlib/stdlib.h" extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 709 "../stdlib/stdlib.h" extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; # 719 "../stdlib/stdlib.h" extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; # 729 "../stdlib/stdlib.h" extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int system (__const char *__command) ; extern char *canonicalize_file_name (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 757 "../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; extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))) ; extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); 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__)) ; # 822 "../stdlib/stdlib.h" extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *gcvt (double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; extern char *qgcvt (long double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); 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__)) __attribute__ ((__nonnull__ (1))) ; # 910 "../stdlib/stdlib.h" extern int getsubopt (char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ; extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); 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__)) __attribute__ ((__nonnull__ (2))); extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 978 "../stdlib/stdlib.h" # 9 "../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 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 *__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 __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_fn_t cmp); 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 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_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 __inline double __attribute__ ((__nothrow__)) __strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) { return ____strtod_l_internal (__nptr, __endptr, 0, __loc); } extern __inline long int __attribute__ ((__nothrow__)) __strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) { return ____strtol_l_internal (__nptr, __endptr, __base, 0, __loc); } extern __inline unsigned long int __attribute__ ((__nothrow__)) __strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) { return ____strtoul_l_internal (__nptr, __endptr, __base, 0, __loc); } extern __inline float __attribute__ ((__nothrow__)) __strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) { return ____strtof_l_internal (__nptr, __endptr, 0, __loc); } extern __inline long double __attribute__ ((__nothrow__)) __strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) { return ____strtold_l_internal (__nptr, __endptr, 0, __loc); } __extension__ extern __inline long long int __attribute__ ((__nothrow__)) __strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) { return ____strtoll_l_internal (__nptr, __endptr, __base, 0, __loc); } __extension__ extern __inline unsigned long long int __attribute__ ((__nothrow__)) __strtoull_l (__const char * __restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) { return ____strtoull_l_internal (__nptr, __endptr, __base, 0, __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); # 217 "../include/stdlib.h" extern void *__default_morecore (ptrdiff_t) __attribute__ ((__nothrow__)); # 29 "../nptl/sysdeps/s390/tls.h" 2 # 1 "../nptl/sysdeps/pthread/list.h" 1 # 29 "../nptl/sysdeps/pthread/list.h" typedef struct list_head { struct list_head *next; struct list_head *prev; } list_t; # 46 "../nptl/sysdeps/pthread/list.h" static inline void list_add (list_t *newp, list_t *head) { head->next->prev = newp; newp->next = head->next; newp->prev = head; head->next = newp; } static inline void list_add_tail (list_t *newp, list_t *head) { head->prev->next = newp; newp->next = head; newp->prev = head->prev; head->prev = newp; } static inline void list_del (list_t *elem) { elem->next->prev = elem->prev; elem->prev->next = elem->next; } static inline void list_splice (list_t *add, list_t *head) { if (add != add->next) { add->next->prev = head; add->prev->next = head->next; head->next->prev = add->prev; head->next = add->next; } } # 30 "../nptl/sysdeps/s390/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; } tcbhead_t; # 78 "../nptl/sysdeps/s390/tls.h" # 1 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 1 # 25 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" # 1 "../sysdeps/s390/s390-64/sysdep.h" 1 # 21 "../sysdeps/s390/s390-64/sysdep.h" # 1 "../sysdeps/generic/sysdep.h" 1 # 22 "../sysdeps/s390/s390-64/sysdep.h" 2 # 26 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2 # 1 "../sysdeps/unix/sysdep.h" 1 # 19 "../sysdeps/unix/sysdep.h" # 1 "../sysdeps/generic/sysdep.h" 1 # 20 "../sysdeps/unix/sysdep.h" 2 # 1 "../sysdeps/unix/sysv/linux/sys/syscall.h" 1 # 25 "../sysdeps/unix/sysv/linux/sys/syscall.h" # 1 "/usr/include/asm/unistd.h" 1 3 4 # 26 "../sysdeps/unix/sysv/linux/sys/syscall.h" 2 # 22 "../sysdeps/unix/sysdep.h" 2 # 27 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2 # 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1 # 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" # 1 "../sysdeps/generic/dl-sysdep.h" 1 # 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2 # 28 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2 # 1 "../include/tls.h" 1 # 29 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2 # 79 "../nptl/sysdeps/s390/tls.h" 2 # 1 "../nptl/descr.h" 1 # 23 "../nptl/descr.h" # 1 "../include/limits.h" 1 # 145 "../include/limits.h" # 1 "../include/bits/posix1_lim.h" 1 # 146 "../include/limits.h" 2 # 1 "../include/bits/posix2_lim.h" 1 # 150 "../include/limits.h" 2 # 24 "../nptl/descr.h" 2 # 1 "../include/sched.h" 1 # 1 "../posix/sched.h" 1 # 29 "../posix/sched.h" # 1 "../include/time.h" 1 # 1 "../time/time.h" 1 # 4 "../include/time.h" 2 # 30 "../posix/sched.h" 2 # 1 "../sysdeps/unix/sysv/linux/bits/sched.h" 1 # 65 "../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__)); struct __sched_param { int __sched_priority; }; # 104 "../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; # 33 "../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__)); # 76 "../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, ...); # 25 "../nptl/descr.h" 2 # 1 "../include/setjmp.h" 1 # 1 "../setjmp/setjmp.h" 1 # 28 "../setjmp/setjmp.h" # 1 "../sysdeps/s390/bits/setjmp.h" 1 # 28 "../sysdeps/s390/bits/setjmp.h" # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 29 "../sysdeps/s390/bits/setjmp.h" 2 typedef struct __s390_jmp_buf { long int __gregs[10]; long __fpregs[8]; } __jmp_buf[1]; # 31 "../setjmp/setjmp.h" 2 # 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1 # 32 "../setjmp/setjmp.h" 2 typedef struct __jmp_buf_tag { __jmp_buf __jmpbuf; int __mask_was_saved; __sigset_t __saved_mask; } 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__)); # 76 "../setjmp/setjmp.h" 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]; # 108 "../setjmp/setjmp.h" extern void siglongjmp (sigjmp_buf __env, int __val) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); # 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)); # 26 "../nptl/descr.h" 2 # 1 "../include/sys/types.h" 1 # 28 "../nptl/descr.h" 2 # 1 "../sysdeps/generic/hp-timing.h" 1 # 71 "../sysdeps/generic/hp-timing.h" typedef int hp_timing_t; # 29 "../nptl/descr.h" 2 # 1 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" 1 # 23 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" # 1 "../include/time.h" 1 # 1 "../time/time.h" 1 # 31 "../time/time.h" # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 40 "../time/time.h" 2 # 1 "../bits/time.h" 1 # 44 "../time/time.h" 2 # 132 "../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; # 181 "../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 # 217 "../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__)); # 312 "../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__)); # 327 "../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__)); # 389 "../time/time.h" extern int getdate_err; # 398 "../time/time.h" extern struct tm *getdate (__const char *__string); # 412 "../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; 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 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 __getdate_r (__const char *__string, struct tm *__resbufp); extern int __getclktck (void); enum ptime_locale_status { not, loc, raw }; extern char * __strptime_internal (const char *rp, const char *fmt, struct tm *tm, enum ptime_locale_status *decided, int era_cnt, __locale_t locparam) ; extern double __difftime (time_t time1, time_t time0); # 114 "../include/time.h" # 24 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" 2 # 1 "../sysdeps/unix/sysv/linux/sys/param.h" 1 # 22 "../sysdeps/unix/sysv/linux/sys/param.h" # 1 "../include/limits.h" 1 # 145 "../include/limits.h" # 1 "../include/bits/posix1_lim.h" 1 # 146 "../include/limits.h" 2 # 1 "../include/bits/posix2_lim.h" 1 # 150 "../include/limits.h" 2 # 23 "../sysdeps/unix/sysv/linux/sys/param.h" 2 # 1 "/usr/include/linux/param.h" 1 3 4 # 1 "/usr/include/asm/param.h" 1 3 4 # 5 "/usr/include/linux/param.h" 2 3 4 # 25 "../sysdeps/unix/sysv/linux/sys/param.h" 2 # 42 "../sysdeps/unix/sysv/linux/sys/param.h" # 1 "../include/sys/types.h" 1 # 43 "../sysdeps/unix/sysv/linux/sys/param.h" 2 # 25 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" 2 # 1 "../include/atomic.h" 1 # 26 "../include/atomic.h" # 1 "../sysdeps/s390/bits/atomic.h" 1 # 22 "../sysdeps/s390/bits/atomic.h" typedef int8_t atomic8_t; typedef uint8_t uatomic8_t; typedef int_fast8_t atomic_fast8_t; typedef uint_fast8_t uatomic_fast8_t; typedef int16_t atomic16_t; typedef uint16_t uatomic16_t; typedef int_fast16_t atomic_fast16_t; typedef uint_fast16_t uatomic_fast16_t; typedef int32_t atomic32_t; typedef uint32_t uatomic32_t; typedef int_fast32_t atomic_fast32_t; typedef uint_fast32_t uatomic_fast32_t; typedef int64_t atomic64_t; typedef uint64_t uatomic64_t; typedef int_fast64_t atomic_fast64_t; typedef uint_fast64_t uatomic_fast64_t; typedef intptr_t atomicptr_t; typedef uintptr_t uatomicptr_t; typedef intmax_t atomic_max_t; typedef uintmax_t uatomic_max_t; # 27 "../include/atomic.h" 2 # 27 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" 2 # 153 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" static inline int __attribute__ ((always_inline)) __lll_mutex_trylock (int *futex) { unsigned int old; __asm __volatile ("cs %0,%3,%1" : "=d" (old), "=Q" (*futex) : "0" (0), "d" (1), "m" (*futex) : "cc", "memory" ); return old != 0; } static inline int __attribute__ ((always_inline)) __lll_mutex_cond_trylock (int *futex) { unsigned int old; __asm __volatile ("cs %0,%3,%1" : "=d" (old), "=Q" (*futex) : "0" (0), "d" (2), "m" (*futex) : "cc", "memory" ); return old != 0; } static inline int __attribute__ ((always_inline)) __lll_robust_mutex_trylock (int *futex, int id) { unsigned int old; __asm __volatile ("cs %0,%3,%1" : "=d" (old), "=Q" (*futex) : "0" (0), "d" (id), "m" (*futex) : "cc", "memory" ); return old != 0; } extern void __lll_lock_wait (int *futex) __attribute__ ((visibility ("hidden"))); extern int __lll_robust_lock_wait (int *futex) __attribute__ ((visibility ("hidden"))); static inline void __attribute__ ((always_inline)) __lll_mutex_lock (int *futex) { if (({ __typeof (0) __old = (0); ({ __typeof (*futex) __result; if (sizeof (*futex) == 1) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 2) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 4) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("cs %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" (1), "m" (*__archmem) : "cc" ); __archold; }); else if (sizeof (*futex) == 8) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("csg %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" ((long) (1)), "m" (*__archmem) : "cc" ); __archold; }); else abort (); __result; }) != __old; }) != 0) __lll_lock_wait (futex); } static inline int __attribute__ ((always_inline)) __lll_robust_mutex_lock (int *futex, int id) { int result = 0; if (({ __typeof (0) __old = (0); ({ __typeof (*futex) __result; if (sizeof (*futex) == 1) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 2) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 4) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("cs %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" (id), "m" (*__archmem) : "cc" ); __archold; }); else if (sizeof (*futex) == 8) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("csg %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" ((long) (id)), "m" (*__archmem) : "cc" ); __archold; }); else abort (); __result; }) != __old; }) != 0) result = __lll_robust_lock_wait (futex); return result; } static inline void __attribute__ ((always_inline)) __lll_mutex_cond_lock (int *futex) { if (({ __typeof (0) __old = (0); ({ __typeof (*futex) __result; if (sizeof (*futex) == 1) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 2) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 4) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("cs %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" (2), "m" (*__archmem) : "cc" ); __archold; }); else if (sizeof (*futex) == 8) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("csg %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" ((long) (2)), "m" (*__archmem) : "cc" ); __archold; }); else abort (); __result; }) != __old; }) != 0) __lll_lock_wait (futex); } extern int __lll_timedlock_wait (int *futex, const struct timespec *) __attribute__ ((visibility ("hidden"))); extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *) __attribute__ ((visibility ("hidden"))); static inline int __attribute__ ((always_inline)) __lll_mutex_timedlock (int *futex, const struct timespec *abstime) { int result = 0; if (({ __typeof (0) __old = (0); ({ __typeof (*futex) __result; if (sizeof (*futex) == 1) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 2) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 4) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("cs %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" (1), "m" (*__archmem) : "cc" ); __archold; }); else if (sizeof (*futex) == 8) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("csg %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" ((long) (1)), "m" (*__archmem) : "cc" ); __archold; }); else abort (); __result; }) != __old; }) != 0) result = __lll_timedlock_wait (futex, abstime); return result; } static inline int __attribute__ ((always_inline)) __lll_robust_mutex_timedlock (int *futex, const struct timespec *abstime, int id) { int result = 0; if (({ __typeof (0) __old = (0); ({ __typeof (*futex) __result; if (sizeof (*futex) == 1) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 2) __result = (abort (), (__typeof (*futex)) 0); else if (sizeof (*futex) == 4) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("cs %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" (id), "m" (*__archmem) : "cc" ); __archold; }); else if (sizeof (*futex) == 8) __result = ({ __typeof (futex) __archmem = (futex); __typeof (*futex) __archold = (__old); __asm __volatile ("csg %0,%2,%1" : "+d" (__archold), "=Q" (*__archmem) : "d" ((long) (id)), "m" (*__archmem) : "cc" ); __archold; }); else abort (); __result; }) != __old; }) != 0) result = __lll_robust_timedlock_wait (futex, abstime); return result; } static inline void __attribute__ ((always_inline)) __lll_mutex_unlock (int *futex) { int oldval; int newval = 0; do { __typeof (futex) __futex = (futex); __asm __volatile (" l %1,%0\n" "0: " "slr %2,%2" "\n" " cs %1,%2,%0\n" " jl 0b\n" "1:" : "=Q" (*__futex), "=&d" (oldval), "=&d" (newval) : "m" (*__futex) : "cc", "memory" ); } while (0); if (oldval > 1) ({ register unsigned long int __r2 asm ("2") = (unsigned long int) (futex); register unsigned long int __r3 asm ("3") = 1; register unsigned long int __r4 asm ("4") = (unsigned long int) (1); register unsigned long int __result asm ("2"); __asm __volatile ("svc %b1" : "=d" (__result) : "i" (238), "0" (__r2), "d" (__r3), "d" (__r4) : "cc", "memory" ); __result; }); } static inline void __attribute__ ((always_inline)) __lll_robust_mutex_unlock (int *futex, int mask) { int oldval; int newval = 0; do { __typeof (futex) __futex = (futex); __asm __volatile (" l %1,%0\n" "0: " "slr %2,%2" "\n" " cs %1,%2,%0\n" " jl 0b\n" "1:" : "=Q" (*__futex), "=&d" (oldval), "=&d" (newval) : "m" (*__futex) : "cc", "memory" ); } while (0); if (oldval & mask) ({ register unsigned long int __r2 asm ("2") = (unsigned long int) (futex); register unsigned long int __r3 asm ("3") = 1; register unsigned long int __r4 asm ("4") = (unsigned long int) (1); register unsigned long int __result asm ("2"); __asm __volatile ("svc %b1" : "=d" (__result) : "i" (238), "0" (__r2), "d" (__r3), "d" (__r4) : "cc", "memory" ); __result; }); } static inline void __attribute__ ((always_inline)) __lll_mutex_unlock_force (int *futex) { *futex = 0; ({ register unsigned long int __r2 asm ("2") = (unsigned long int) (futex); register unsigned long int __r3 asm ("3") = 1; register unsigned long int __r4 asm ("4") = (unsigned long int) (1); register unsigned long int __result asm ("2"); __asm __volatile ("svc %b1" : "=d" (__result) : "i" (238), "0" (__r2), "d" (__r3), "d" (__r4) : "cc", "memory" ); __result; }); } # 310 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" typedef int lll_lock_t; # 321 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" extern int lll_unlock_wake_cb (int *__futex) __attribute__ ((visibility ("hidden"))); # 333 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" static inline void __attribute__ ((always_inline)) __lll_wait_tid (int *ptid) { int tid; while ((tid = *ptid) != 0) ({ register unsigned long int __r2 asm ("2") = (unsigned long int) (ptid); register unsigned long int __r3 asm ("3") = 0; register unsigned long int __r4 asm ("4") = (unsigned long int) (tid); register unsigned long int __r5 asm ("5") = 0ul; register unsigned long __result asm ("2"); __asm __volatile ("svc %b1" : "=d" (__result) : "i" (238), "0" (__r2), "d" (__r3), "d" (__r4), "d" (__r5) : "cc", "memory" ); __result; }); } extern int __lll_timedwait_tid (int *, const struct timespec *) __attribute__ ((visibility ("hidden"))); # 357 "../nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h" extern void __lll_cond_wait (pthread_cond_t *cond) __attribute__ ((visibility ("hidden"))); extern int __lll_cond_timedwait (pthread_cond_t *cond, const struct timespec *abstime) __attribute__ ((visibility ("hidden"))); extern void __lll_cond_wake (pthread_cond_t *cond) __attribute__ ((visibility ("hidden"))); extern void __lll_cond_broadcast (pthread_cond_t *cond) __attribute__ ((visibility ("hidden"))); # 31 "../nptl/descr.h" 2 # 1 "../nptl/sysdeps/s390/pthreaddef.h" 1 # 32 "../nptl/descr.h" 2 # 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1 # 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" # 1 "../sysdeps/generic/dl-sysdep.h" 1 # 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2 # 33 "../nptl/descr.h" 2 # 1 "../nptl/../nptl_db/thread_db.h" 1 # 26 "../nptl/../nptl_db/thread_db.h" # 1 "../include/pthread.h" 1 # 1 "../nptl/sysdeps/pthread/pthread.h" 1 # 27 "../nptl/sysdeps/pthread/pthread.h" # 1 "../include/signal.h" 1 # 1 "../signal/signal.h" 1 # 31 "../signal/signal.h" # 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1 # 34 "../signal/signal.h" 2 # 400 "../signal/signal.h" # 4 "../include/signal.h" 2 # 28 "../nptl/sysdeps/pthread/pthread.h" 2 # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 31 "../nptl/sysdeps/pthread/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_NP, PTHREAD_MUTEX_ROBUST_NP }; enum { PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, PTHREAD_PRIO_PROTECT }; # 113 "../nptl/sysdeps/pthread/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 }; # 143 "../nptl/sysdeps/pthread/pthread.h" enum { PTHREAD_INHERIT_SCHED, PTHREAD_EXPLICIT_SCHED }; enum { PTHREAD_SCOPE_SYSTEM, PTHREAD_SCOPE_PROCESS }; enum { PTHREAD_PROCESS_PRIVATE, PTHREAD_PROCESS_SHARED }; # 178 "../nptl/sysdeps/pthread/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 }; # 216 "../nptl/sysdeps/pthread/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__)); 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_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_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__)); # 448 "../nptl/sysdeps/pthread/pthread.h" extern int pthread_once (pthread_once_t *__once_control, void (*__init_routine) (void)); # 460 "../nptl/sysdeps/pthread/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__)); # 494 "../nptl/sysdeps/pthread/pthread.h" struct __pthread_cleanup_frame { void (*__cancel_routine) (void *); void *__cancel_arg; int __do_it; int __cancel_type; }; # 634 "../nptl/sysdeps/pthread/pthread.h" extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf) ; # 645 "../nptl/sysdeps/pthread/pthread.h" extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf) ; # 668 "../nptl/sysdeps/pthread/pthread.h" extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf) ; # 680 "../nptl/sysdeps/pthread/pthread.h" extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf) ; extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf) __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_np (pthread_mutex_t *__mutex) __attribute__ ((__nothrow__)); 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_np (__const pthread_mutexattr_t *__attr, int *__robustness) __attribute__ ((__nothrow__)); extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, int __robustness) __attribute__ ((__nothrow__)); # 813 "../nptl/sysdeps/pthread/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); # 910 "../nptl/sysdeps/pthread/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__)); # 951 "../nptl/sysdeps/pthread/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__)); # 1007 "../nptl/sysdeps/pthread/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__)); # 1039 "../nptl/sysdeps/pthread/pthread.h" extern int pthread_atfork (void (*__prepare) (void), void (*__parent) (void), void (*__child) (void)) __attribute__ ((__nothrow__)); # 2 "../include/pthread.h" 2 extern void __pthread_initialize (void) __attribute__ ((weak)); # 27 "../nptl/../nptl_db/thread_db.h" 2 # 1 "../include/sys/types.h" 1 # 29 "../nptl/../nptl_db/thread_db.h" 2 # 1 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h" 1 # 32 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h" # 1 "../include/sys/time.h" 1 # 1 "../time/sys/time.h" 1 # 29 "../time/sys/time.h" # 1 "../bits/time.h" 1 # 30 "../time/sys/time.h" 2 # 39 "../time/sys/time.h" # 57 "../time/sys/time.h" struct timezone { int tz_minuteswest; int tz_dsttime; }; typedef struct timezone *__restrict __timezone_ptr_t; # 73 "../time/sys/time.h" extern int gettimeofday (struct timeval *__restrict __tv, __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int settimeofday (__const struct timeval *__tv, __const struct timezone *__tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); 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__)) __attribute__ ((__nonnull__ (1))); extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); 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__)); # 191 "../time/sys/time.h" # 3 "../include/sys/time.h" 2 extern int __gettimeofday (struct timeval *__tv, struct timezone *__tz); extern int __gettimeofday_internal (struct timeval *__tv, struct timezone *__tz) __attribute__ ((visibility ("hidden"))); 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"))); # 33 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h" 2 # 1 "../include/sys/types.h" 1 # 34 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h" 2 # 1 "../sysdeps/unix/sysv/linux/s390/sys/user.h" 1 # 26 "../sysdeps/unix/sysv/linux/s390/sys/user.h" struct _user_psw_struct { unsigned long mask; unsigned long addr; }; struct _user_fpregs_struct { unsigned int fpc; double fprs[16]; }; struct _user_per_struct { unsigned long control_regs[3]; unsigned single_step : 1; unsigned instruction_fetch : 1; unsigned : 30; unsigned long starting_addr; unsigned long ending_addr; unsigned short perc_atmid; unsigned long address; unsigned char access_id; }; struct _user_regs_struct { struct _user_psw_struct psw; unsigned long gprs[16]; unsigned int acrs[16]; unsigned long orig_gpr2; struct _user_fpregs_struct fp_regs; struct _user_per_struct per_info; unsigned long ieee_instruction_pointer; }; struct user { struct _user_regs_struct regs; unsigned long int u_tsize; unsigned long int u_dsize; unsigned long int u_ssize; unsigned long start_code; unsigned long start_stack; long int signal; struct _user_regs_struct *u_ar0; unsigned long magic; char u_comm[32]; }; # 35 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h" 2 # 1 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 1 # 23 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" struct ucontext; typedef struct ucontext ucontext_t; # 1 "../include/signal.h" 1 # 1 "../signal/signal.h" 1 # 31 "../signal/signal.h" # 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1 # 103 "../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); # 117 "../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); } # 34 "../signal/signal.h" 2 typedef __sig_atomic_t sig_atomic_t; # 58 "../signal/signal.h" # 1 "../sysdeps/unix/sysv/linux/bits/signum.h" 1 # 59 "../signal/signal.h" 2 # 75 "../signal/signal.h" 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__)); # 104 "../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); # 153 "../signal/signal.h" extern int __sigpause (int __sig_or_mask, int __is_sig); # 162 "../signal/signal.h" extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); # 181 "../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__)); # 196 "../signal/signal.h" typedef __sighandler_t sighandler_t; typedef __sighandler_t sig_t; # 212 "../signal/signal.h" # 1 "../sysdeps/unix/sysv/linux/s390/bits/siginfo.h" 1 # 25 "../sysdeps/unix/sysv/linux/s390/bits/siginfo.h" # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 26 "../sysdeps/unix/sysv/linux/s390/bits/siginfo.h" 2 typedef union sigval { int sival_int; void *sival_ptr; } sigval_t; # 51 "../sysdeps/unix/sysv/linux/s390/bits/siginfo.h" typedef struct siginfo { int si_signo; int si_errno; int si_code; union { int _pad[((128 / sizeof (int)) - 4)]; 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; __clock_t si_utime; __clock_t si_stime; } _sigchld; struct { void *si_addr; int si_trapno; } _sigfault; struct { long int si_band; int si_fd; } _sigpoll; } _sifields; } siginfo_t; # 131 "../sysdeps/unix/sysv/linux/s390/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 }; 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 }; # 275 "../sysdeps/unix/sysv/linux/s390/bits/siginfo.h" typedef struct sigevent { sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[((64 / sizeof (int)) - 4)]; struct { void (*_function) (sigval_t); void *_attribute; } _sigev_thread; } _sigev_un; } sigevent_t; enum { SIGEV_SIGNAL = 0, SIGEV_NONE, SIGEV_THREAD, SIGEV_THREAD_ID = 4 }; # 213 "../signal/signal.h" 2 extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigismember (__const sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigisemptyset (__const sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigandset (sigset_t *__set, __const sigset_t *__left, __const sigset_t *__right) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int sigorset (sigset_t *__set, __const sigset_t *__left, __const sigset_t *__right) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); # 1 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h" 1 # 24 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h" # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 25 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h" 2 struct sigaction { union { __sighandler_t sa_handler; void (*sa_sigaction) (int, siginfo_t *, void *); } __sigaction_handler; unsigned long int sa_flags; void (*sa_restorer) (void); __sigset_t sa_mask; }; # 247 "../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) __attribute__ ((__nonnull__ (1))); extern int sigaction (int __sig, __const struct sigaction *__restrict __act, struct sigaction *__restrict __oact) __attribute__ ((__nothrow__)); extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig) __attribute__ ((__nonnull__ (1, 2))); extern int sigwaitinfo (__const sigset_t *__restrict __set, siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1))); extern int sigtimedwait (__const sigset_t *__restrict __set, siginfo_t *__restrict __info, __const struct timespec *__restrict __timeout) __attribute__ ((__nonnull__ (1))); extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val) __attribute__ ((__nothrow__)); # 304 "../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; }; # 328 "../signal/signal.h" extern int sigvec (int __sig, __const struct sigvec *__vec, struct sigvec *__ovec) __attribute__ ((__nothrow__)); # 1 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 1 # 28 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" # 1 "/usr/include/asm/sigcontext.h" 1 3 4 # 37 "/usr/include/asm/sigcontext.h" 3 4 typedef struct { unsigned long mask; unsigned long addr; } __attribute__ ((aligned(8))) _psw_t; typedef struct { _psw_t psw; unsigned long gprs[16]; unsigned int acrs[16]; } _s390_regs_common; typedef struct { unsigned int fpc; double fprs[16]; } _s390_fp_regs; typedef struct { _s390_regs_common regs; _s390_fp_regs fpregs; } _sigregs; struct sigcontext { unsigned long oldmask[(64 / 64)]; _sigregs *sregs; }; # 29 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 2 # 334 "../signal/signal.h" 2 extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__)); # 346 "../signal/signal.h" extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__)); # 1 "../sysdeps/unix/sysv/linux/bits/sigstack.h" 1 # 26 "../sysdeps/unix/sysv/linux/bits/sigstack.h" struct sigstack { void *ss_sp; int ss_onstack; }; enum { SS_ONSTACK = 1, SS_DISABLE }; # 50 "../sysdeps/unix/sysv/linux/bits/sigstack.h" typedef struct sigaltstack { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; # 349 "../signal/signal.h" 2 # 1 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 1 # 352 "../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 "../nptl/sysdeps/pthread/bits/sigthread.h" 1 # 31 "../nptl/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__)); # 388 "../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 __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); extern int __libc_allocate_rtsig (int __high); # 27 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 2 # 1 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 1 # 31 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 2 typedef struct { unsigned long mask; unsigned long addr; } __attribute__ ((aligned(8))) __psw_t; typedef unsigned long greg_t; # 53 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" typedef greg_t gregset_t[27] __attribute__ ((aligned(8))); typedef union { double d; float f; } fpreg_t; typedef struct { unsigned int fpc; fpreg_t fprs[16]; } fpregset_t; typedef struct { __psw_t psw; unsigned long gregs[16]; unsigned int aregs[16]; fpregset_t fpregs; } mcontext_t; struct ucontext { unsigned long int uc_flags; struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; __sigset_t uc_sigmask; }; # 36 "../sysdeps/unix/sysv/linux/s390/sys/procfs.h" 2 typedef greg_t elf_greg_t; typedef gregset_t elf_gregset_t; typedef fpreg_t elf_fpreg_t; typedef fpregset_t elf_fpregset_t; struct elf_siginfo { int si_signo; int si_code; int si_errno; }; # 61 "../sysdeps/unix/sysv/linux/s390/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 int pr_uid; unsigned 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; typedef unsigned int elf_greg_t32; typedef elf_greg_t32 elf_gregset_t32[36]; typedef elf_fpregset_t elf_fpregset_t32; struct elf_prstatus32 { struct elf_siginfo pr_info; short int pr_cursig; unsigned int pr_sigpend; unsigned int pr_sighold; __pid_t pr_pid; __pid_t pr_ppid; __pid_t pr_pgrp; __pid_t pr_sid; struct { int tv_sec, tv_usec; } pr_utime, pr_stime, pr_cutime, pr_cstime; elf_gregset_t32 pr_reg; int pr_fpvalid; }; struct elf_prpsinfo32 { char pr_state; char pr_sname; char pr_zomb; char pr_nice; unsigned 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 elf_gregset_t32 prgregset32_t; typedef elf_fpregset_t32 prfpregset32_t; typedef struct elf_prstatus32 prstatus32_t; typedef struct elf_prpsinfo32 prpsinfo32_t; # 30 "../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; # 116 "../nptl/../nptl_db/thread_db.h" typedef struct td_thr_events { uint32_t event_bits[2]; } td_thr_events_t; # 155 "../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 # 35 "../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; # 72 "../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; # 104 "../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 *); # 167 "../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 *); # 208 "../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 # 24 "../inet/netinet/in.h" # 1 "../include/sys/socket.h" 1 # 1 "../socket/sys/socket.h" 1 # 25 "../socket/sys/socket.h" # 1 "../include/sys/uio.h" 1 # 1 "../misc/sys/uio.h" 1 # 24 "../misc/sys/uio.h" # 1 "../include/sys/types.h" 1 # 25 "../misc/sys/uio.h" 2 # 1 "../sysdeps/unix/sysv/linux/bits/uio.h" 1 # 24 "../sysdeps/unix/sysv/linux/bits/uio.h" # 1 "../include/sys/types.h" 1 # 25 "../sysdeps/unix/sysv/linux/bits/uio.h" 2 # 42 "../sysdeps/unix/sysv/linux/bits/uio.h" struct iovec { void *iov_base; size_t iov_len; }; # 30 "../misc/sys/uio.h" 2 # 40 "../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); # 3 "../include/sys/uio.h" 2 extern ssize_t __readv (int __fd, __const struct iovec *__vector, int __count); extern ssize_t __libc_readv (int __fd, __const struct iovec *__vector, int __count); extern ssize_t __writev (int __fd, __const struct iovec *__vector, int __count); extern ssize_t __libc_writev (int __fd, __const struct iovec *__vector, int __count); # 28 "../socket/sys/socket.h" 2 # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 30 "../socket/sys/socket.h" 2 # 1 "../sysdeps/unix/sysv/linux/bits/socket.h" 1 # 29 "../sysdeps/unix/sysv/linux/bits/socket.h" # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 30 "../sysdeps/unix/sysv/linux/bits/socket.h" 2 # 1 "../include/limits.h" 1 # 145 "../include/limits.h" # 1 "../include/bits/posix1_lim.h" 1 # 146 "../include/limits.h" 2 # 1 "../include/bits/posix2_lim.h" 1 # 150 "../include/limits.h" 2 # 32 "../sysdeps/unix/sysv/linux/bits/socket.h" 2 # 1 "../include/sys/types.h" 1 # 33 "../sysdeps/unix/sysv/linux/bits/socket.h" 2 typedef __socklen_t socklen_t; enum __socket_type { SOCK_STREAM = 1, SOCK_DGRAM = 2, SOCK_RAW = 3, SOCK_RDM = 4, SOCK_SEQPACKET = 5, SOCK_PACKET = 10 }; # 142 "../sysdeps/unix/sysv/linux/bits/socket.h" # 1 "../bits/sockaddr.h" 1 # 29 "../bits/sockaddr.h" typedef unsigned short int sa_family_t; # 143 "../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; __uint64_t __ss_align; char __ss_padding[(128 - (2 * sizeof (__uint64_t)))]; }; 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 }; 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 []; }; # 257 "../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 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 0; return __cmsg; } enum { SCM_RIGHTS = 0x01 , SCM_CREDENTIALS = 0x02 }; struct ucred { pid_t pid; uid_t uid; gid_t gid; }; # 1 "/usr/include/asm/socket.h" 1 3 4 # 12 "/usr/include/asm/socket.h" 3 4 # 1 "/usr/include/asm/sockios.h" 1 3 4 # 13 "/usr/include/asm/socket.h" 2 3 4 # 305 "../sysdeps/unix/sysv/linux/bits/socket.h" 2 struct linger { int l_onoff; int l_linger; }; # 36 "../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 }; # 87 "../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__)); 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__)); # 124 "../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); # 161 "../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 ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags); 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__)); # 209 "../socket/sys/socket.h" extern int accept (int __fd, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len); 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__)); # 240 "../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__ ((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 int __connect_internal (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len) __attribute__ ((visibility ("hidden"))); 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 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__)); extern int __libc_sa_len (sa_family_t __af); extern int __libc_sa_len_internal (sa_family_t __af) __attribute__ ((visibility ("hidden"))); # 25 "../inet/netinet/in.h" 2 enum { IPPROTO_IP = 0, IPPROTO_HOPOPTS = 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_IPV6 = 41, IPPROTO_ROUTING = 43, IPPROTO_FRAGMENT = 44, IPPROTO_RSVP = 46, IPPROTO_GRE = 47, IPPROTO_ESP = 50, IPPROTO_AH = 51, IPPROTO_ICMPV6 = 58, IPPROTO_NONE = 59, IPPROTO_DSTOPTS = 60, IPPROTO_MTP = 92, IPPROTO_ENCAP = 98, IPPROTO_PIM = 103, IPPROTO_COMP = 108, IPPROTO_SCTP = 132, IPPROTO_RAW = 255, IPPROTO_MAX }; 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 }; typedef uint32_t in_addr_t; struct in_addr { in_addr_t s_addr; }; # 193 "../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; # 219 "../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]; }; # 345 "../inet/netinet/in.h" # 1 "../sysdeps/unix/sysv/linux/bits/in.h" 1 # 82 "../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; }; # 346 "../inet/netinet/in.h" 2 # 354 "../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 # 363 "../inet/netinet/in.h" 2 # 1 "../sysdeps/s390/bits/byteswap.h" 1 # 25 "../sysdeps/s390/bits/byteswap.h" # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 26 "../sysdeps/s390/bits/byteswap.h" 2 # 366 "../inet/netinet/in.h" 2 # 428 "../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__)); # 456 "../inet/netinet/in.h" struct in6_pktinfo { struct in6_addr ipi6_addr; unsigned int ipi6_ifindex; }; extern int inet6_option_space (int __nbytes) __attribute__ ((__nothrow__)); extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp, int __type) __attribute__ ((__nothrow__)); extern int inet6_option_append (struct cmsghdr *__cmsg, __const uint8_t *__typep, int __multx, int __plusy) __attribute__ ((__nothrow__)); extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen, int __multx, int __plusy) __attribute__ ((__nothrow__)); extern int inet6_option_next (__const struct cmsghdr *__cmsg, uint8_t **__tptrp) __attribute__ ((__nothrow__)); extern int inet6_option_find (__const struct cmsghdr *__cmsg, uint8_t **__tptrp, int __type) __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; char unused[3]; 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 # 65 "../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; }; struct pthread { union { tcbhead_t header; # 124 "../nptl/descr.h" void *__padding[16]; }; list_t list; pid_t tid; pid_t pid; __pthread_list_t robust_list; # 182 "../nptl/descr.h" struct _pthread_cleanup_buffer *cleanup; struct pthread_unwind_buf *cleanup_jmp_buf; int cancelhandling; # 224 "../nptl/descr.h" 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; lll_lock_t lock; lll_lock_t setxid_futex; # 267 "../nptl/descr.h" struct pthread *joinid; int flags; 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 __res_state res; char end_padding[]; } __attribute ((aligned (16))); # 82 "../nptl/sysdeps/s390/tls.h" 2 # 7 "../include/tls.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 { Elf64_Addr l_addr; char *l_name; Elf64_Dyn *l_ld; struct link_map *l_next, *l_prev; struct link_map *l_real; Lmid_t l_ns; struct libname_list *l_libname; # 122 "../include/link.h" Elf64_Dyn *l_info[34 + 0 + 16 + 3 + 12 + 10 + 2]; const Elf64_Phdr *l_phdr; Elf64_Addr l_entry; Elf64_Half l_phnum; Elf64_Half l_ldnum; struct r_scope_elem l_searchlist; struct r_scope_elem l_symbolic_searchlist; struct link_map *l_loader; Elf_Symndx l_nbuckets; const Elf_Symndx *l_buckets, *l_chain; 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_used:1; unsigned int l_auditing:1; unsigned int l_audit_any_plt:1; unsigned int l_removed:1; unsigned int l_nversions; struct r_found_version *l_versions; struct r_search_path_struct l_rpath_dirs; struct reloc_result { Elf64_Addr addr; struct link_map *bound; unsigned int boundndx; uint32_t enterexit; unsigned int flags; } *l_reloc_result; Elf64_Versym *l_versyms; const char *l_origin; Elf64_Addr l_map_start, l_map_end; Elf64_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; unsigned int l_reldepsmax; unsigned int l_reldepsact; struct link_map **l_reldeps; Elf64_Word l_feature_1; Elf64_Word l_flags_1; Elf64_Word l_flags; int l_idx; struct link_map_machine l_mach; struct { const Elf64_Sym *sym; int type_class; struct link_map *value; const Elf64_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; ptrdiff_t l_tls_offset; size_t l_tls_modid; Elf64_Addr l_relro_addr; size_t l_relro_size; struct auditstate { uintptr_t cookie; unsigned int bindflags; } l_audit[0]; }; # 293 "../include/link.h" extern int __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, size_t size, void *data), void *data); # 4 "../include/dlfcn.h" 2 # 17 "../include/dlfcn.h" extern int __dlfcn_argc __attribute__ ((visibility ("hidden"))); extern char **__dlfcn_argv __attribute__ ((visibility ("hidden"))); # 33 "../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 Elf64_Sym **symbolp) ; extern void _dl_close (void *map) __attribute__ ((visibility ("hidden"))); extern void *_dl_sym (void *handle, const char *name, void *who) ; extern void *_dl_vsym (void *handle, const char *name, const char *version, void *who) ; # 73 "../include/dlfcn.h" extern int _dl_catch_error (const char **objname, const char **errstring, _Bool *mallocedp, void (*operate) (void *), void *args) ; extern int _dlerror_run (void (*operate) (void *), void *args) ; # 93 "../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"))); # 22 "rtld.c" 2 # 1 "../include/fcntl.h" 1 # 1 "../io/fcntl.h" 1 # 30 "../io/fcntl.h" # 1 "../sysdeps/unix/sysv/linux/s390/bits/fcntl.h" 1 # 24 "../sysdeps/unix/sysv/linux/s390/bits/fcntl.h" # 1 "../include/sys/types.h" 1 # 25 "../sysdeps/unix/sysv/linux/s390/bits/fcntl.h" 2 # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 26 "../sysdeps/unix/sysv/linux/s390/bits/fcntl.h" 2 # 152 "../sysdeps/unix/sysv/linux/s390/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; }; # 202 "../sysdeps/unix/sysv/linux/s390/bits/fcntl.h" extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) __attribute__ ((__nothrow__)); # 35 "../io/fcntl.h" 2 # 1 "../include/sys/stat.h" 1 # 1 "../io/sys/stat.h" 1 # 103 "../io/sys/stat.h" # 1 "../sysdeps/unix/sysv/linux/s390/bits/stat.h" 1 # 23 "../sysdeps/unix/sysv/linux/s390/bits/stat.h" # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 24 "../sysdeps/unix/sysv/linux/s390/bits/stat.h" 2 # 48 "../sysdeps/unix/sysv/linux/s390/bits/stat.h" struct stat { __dev_t st_dev; __ino_t st_ino; __nlink_t st_nlink; __mode_t st_mode; __uid_t st_uid; __gid_t st_gid; int pad0; __dev_t st_rdev; __off_t st_size; struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 80 "../sysdeps/unix/sysv/linux/s390/bits/stat.h" __blksize_t st_blksize; __blkcnt_t st_blocks; long int __unused[3]; }; # 145 "../sysdeps/unix/sysv/linux/s390/bits/stat.h" struct stat64 { __dev_t st_dev; __ino64_t st_ino; __nlink_t st_nlink; __mode_t st_mode; __uid_t st_uid; __gid_t st_gid; int pad0; __dev_t st_rdev; __off_t st_size; struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 177 "../sysdeps/unix/sysv/linux/s390/bits/stat.h" __blksize_t st_blksize; __blkcnt64_t st_blocks; long int __unused[3]; }; # 106 "../io/sys/stat.h" 2 # 207 "../io/sys/stat.h" extern int stat (__const char *__restrict __file, struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 226 "../io/sys/stat.h" extern int stat64 (__const char *__restrict __file, struct stat64 *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int fstatat (int __fd, __const char *__restrict __file, struct stat *__restrict __buf, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); # 250 "../io/sys/stat.h" extern int fstatat64 (int __fd, __const char *__restrict __file, struct stat64 *__restrict __buf, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern int lstat (__const char *__restrict __file, struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); # 272 "../io/sys/stat.h" extern int lstat64 (__const char *__restrict __file, struct stat64 *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int chmod (__const char *__file, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int lchmod (__const char *__file, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); 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__)) __attribute__ ((__nonnull__ (2))) ; 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__)) __attribute__ ((__nonnull__ (1))); extern int mkdirat (int __fd, __const char *__path, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int mkfifo (__const char *__path, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 380 "../io/sys/stat.h" extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); extern int __xstat (int __ver, __const char *__filename, struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern int __lxstat (int __ver, __const char *__filename, struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern int __fxstatat (int __ver, int __fildes, __const char *__filename, struct stat *__stat_buf, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))); # 413 "../io/sys/stat.h" extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); extern int __xstat64 (int __ver, __const char *__filename, struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern int __lxstat64 (int __ver, __const char *__filename, struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern int __fxstatat64 (int __ver, int __fildes, __const char *__filename, struct stat64 *__stat_buf, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))); extern int __xmknod (int __ver, __const char *__path, __mode_t __mode, __dev_t *__dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); extern int __xmknodat (int __ver, int __fd, __const char *__path, __mode_t __mode, __dev_t *__dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 5))); extern __inline__ int __attribute__ ((__nothrow__)) stat (__const char *__path, struct stat *__statbuf) { return __xstat (1, __path, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) lstat (__const char *__path, struct stat *__statbuf) { return __lxstat (1, __path, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) fstat (int __fd, struct stat *__statbuf) { return __fxstat (1, __fd, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) fstatat (int __fd, __const char *__filename, struct stat *__statbuf, int __flag) { return __fxstatat (1, __fd, __filename, __statbuf, __flag); } extern __inline__ int __attribute__ ((__nothrow__)) mknod (__const char *__path, __mode_t __mode, __dev_t __dev) { return __xmknod (0, __path, __mode, &__dev); } extern __inline__ int __attribute__ ((__nothrow__)) mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev) { return __xmknodat (0, __fd, __path, __mode, &__dev); } extern __inline__ int __attribute__ ((__nothrow__)) stat64 (__const char *__path, struct stat64 *__statbuf) { return __xstat64 (1, __path, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) lstat64 (__const char *__path, struct stat64 *__statbuf) { return __lxstat64 (1, __path, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) fstat64 (int __fd, struct stat64 *__statbuf) { return __fxstat64 (1, __fd, __statbuf); } extern __inline__ int __attribute__ ((__nothrow__)) fstatat64 (int __fd, __const char *__filename, struct stat64 *__statbuf, int __flag) { return __fxstatat64 (1, __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 (1, __path, __statbuf); } extern __inline__ int __mknod (__const char *__path, __mode_t __mode, __dev_t __dev) { return __xmknod (0, __path, __mode, &__dev); } # 39 "../io/fcntl.h" 2 # 76 "../io/fcntl.h" extern int fcntl (int __fd, int __cmd, ...); # 85 "../io/fcntl.h" extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); # 95 "../io/fcntl.h" extern int open64 (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); # 109 "../io/fcntl.h" extern int openat (int __fd, __const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (2))); # 120 "../io/fcntl.h" extern int openat64 (int __fd, __const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (2))); # 130 "../io/fcntl.h" extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); # 140 "../io/fcntl.h" extern int creat64 (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); # 159 "../io/fcntl.h" extern int lockf (int __fd, int __cmd, __off_t __len); # 168 "../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__)); # 188 "../io/fcntl.h" extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, int __advise) __attribute__ ((__nothrow__)); # 198 "../io/fcntl.h" extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len); # 209 "../io/fcntl.h" extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); # 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, ...) __attribute__ ((__nonnull__ (2))); extern int __openat64 (int __fd, __const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (2))); extern void __atfct_seterrno (int errval, int fd, const char *buf) __attribute__ ((visibility ("hidden"))); extern void __atfct_seterrno_2 (int errval, int fd1, const char *buf1, int fd2, const char *buf2) __attribute__ ((visibility ("hidden"))); extern int __have_atfcts __attribute__ ((visibility ("hidden"))); # 23 "rtld.c" 2 # 1 "../include/string.h" 1 # 1 "../include/sys/types.h" 1 # 4 "../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 # 28 "../string/string.h" # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 34 "../string/string.h" 2 extern void *memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmove (void *__dest, __const void *__src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memchr (__const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern void *rawmemchr (__const void *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern void *memrchr (__const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strcat (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcmp (__const char *__s1, __const char *__s2) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcoll (__const char *__s1, __const char *__s2) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 1 "../include/xlocale.h" 1 # 119 "../string/string.h" 2 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); extern char *strdup (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); extern char *strndup (__const char *__string, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); # 165 "../string/string.h" extern char *strchr (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strrchr (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strchrnul (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strcspn (__const char *__s, __const char *__reject) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strspn (__const char *__s, __const char *__accept) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strpbrk (__const char *__s, __const char *__accept) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strstr (__const char *__haystack, __const char *__needle) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strtok (char *__restrict __s, __const char *__restrict __delim) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); extern char *strcasestr (__const char *__haystack, __const char *__needle) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmem (__const void *__haystack, size_t __haystacklen, __const void *__needle, size_t __needlelen) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); extern void *__mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strlen (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strnlen (__const char *__string, size_t __maxlen) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strerror (int __errnum) __attribute__ ((__nothrow__)); # 281 "../string/string.h" extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void bcopy (__const void *__src, void *__dest, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *index (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *rindex (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 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__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int strverscmp (__const char *__s1, __const char *__s2) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strsignal (int __sig) __attribute__ ((__nothrow__)); extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 414 "../string/string.h" # 1 "../sysdeps/s390/bits/string.h" 1 # 415 "../string/string.h" 2 # 1 "../include/bits/string2.h" 1 # 1 "../string/bits/string2.h" 1 # 52 "../string/bits/string2.h" # 1 "../include/endian.h" 1 # 53 "../string/bits/string2.h" 2 # 394 "../string/bits/string2.h" extern void *__rawmemchr (const void *__s, int __c); # 969 "../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) { register 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) { register 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) { register size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2 && __s[__result] != __reject3) ++__result; return __result; } # 1045 "../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) { register 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) { register 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) { register size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2 || __s[__result] == __accept3) ++__result; return __result; } # 1121 "../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; } # 1173 "../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; } # 1205 "../string/bits/string2.h" extern char *__strsep_g (char **__stringp, __const char *__delim); # 1223 "../string/bits/string2.h" extern __inline char *__strsep_1c (char **__s, char __reject); extern __inline char * __strsep_1c (char **__s, char __reject) { register 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) { register char *__retval = *__s; if (__retval != ((void *)0)) { register 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) { register char *__retval = *__s; if (__retval != ((void *)0)) { register 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; } # 1304 "../string/bits/string2.h" extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); # 1323 "../string/bits/string2.h" extern char *__strndup (__const char *__string, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); # 1 "../include/bits/string2.h" 2 # 418 "../string/string.h" 2 # 426 "../string/string.h" # 50 "../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; # 68 "../include/string.h" extern char *__strsep_g (char **__stringp, __const char *__delim); # 118 "../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__)); # 26 "rtld.c" 2 # 1 "../include/unistd.h" 1 # 1 "../posix/unistd.h" 1 # 28 "../posix/unistd.h" # 171 "../posix/unistd.h" # 1 "../nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h" 1 # 172 "../posix/unistd.h" 2 # 1 "../sysdeps/unix/sysv/linux/s390/bits/environments.h" 1 # 23 "../sysdeps/unix/sysv/linux/s390/bits/environments.h" # 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1 # 24 "../sysdeps/unix/sysv/linux/s390/bits/environments.h" 2 # 176 "../posix/unistd.h" 2 # 195 "../posix/unistd.h" # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 196 "../posix/unistd.h" 2 # 256 "../posix/unistd.h" extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int euidaccess (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int eaccess (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int faccessat (int __fd, __const char *__file, int __type, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ; # 299 "../posix/unistd.h" extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__)); # 310 "../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) ; # 341 "../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) ; # 369 "../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__)) ; # 391 "../posix/unistd.h" extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__)); # 403 "../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); # 427 "../posix/unistd.h" extern int pause (void); extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; 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__)) __attribute__ ((__nonnull__ (1))) ; extern int fchownat (int __fd, __const char *__file, __uid_t __owner, __gid_t __group, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ; extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int fchdir (int __fd) __attribute__ ((__nothrow__)) ; # 469 "../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__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ; extern int dup (int __fd) __attribute__ ((__nothrow__)) ; extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__)); extern char **__environ; extern char **environ; extern int execve (__const char *__path, char *__const __argv[], char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) __attribute__ ((__nothrow__)); extern int execv (__const char *__path, char *__const __argv[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int execle (__const char *__path, __const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int execl (__const char *__path, __const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int execvp (__const char *__file, char *__const __argv[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int execlp (__const char *__file, __const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int nice (int __inc) __attribute__ ((__nothrow__)) ; extern void _exit (int __status) __attribute__ ((__noreturn__)); # 1 "../bits/confname.h" 1 # 26 "../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 }; enum { _CS_PATH, _CS_V6_WIDTH_RESTRICTED_ENVS, _CS_GNU_LIBC_VERSION, _CS_GNU_LIBPTHREAD_VERSION, _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 }; # 553 "../posix/unistd.h" 2 extern long int pathconf (__const char *__path, int __name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__)); extern long int sysconf (int __name) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); 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__)); # 589 "../posix/unistd.h" 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__)); # 615 "../posix/unistd.h" extern int setpgrp (void) __attribute__ ((__nothrow__)); # 632 "../posix/unistd.h" 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__)) __attribute__ ((__nonnull__ (2))) ; extern int isatty (int __fd) __attribute__ ((__nothrow__)); extern int ttyslot (void) __attribute__ ((__nothrow__)); extern int link (__const char *__from, __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ; extern int linkat (int __fromfd, __const char *__from, int __tofd, __const char *__to, int __flags) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) ; extern int symlink (__const char *__from, __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ; extern int readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ; extern int symlinkat (__const char *__from, int __tofd, __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; extern int readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) ; extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int unlinkat (int __fd, __const char *__name, int __flag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); 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) __attribute__ ((__nonnull__ (1))); extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 834 "../posix/unistd.h" # 1 "../include/getopt.h" 1 # 1 "../posix/getopt.h" 1 # 59 "../posix/getopt.h" extern char *optarg; # 73 "../posix/getopt.h" extern int optind; extern int opterr; extern int optopt; # 152 "../posix/getopt.h" extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) __attribute__ ((__nothrow__)); # 5 "../include/getopt.h" 2 # 835 "../posix/unistd.h" 2 extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int sethostname (__const char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int sethostid (long int __id) __attribute__ ((__nothrow__)) ; extern int getdomainname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int setdomainname (__const char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int vhangup (void) __attribute__ ((__nothrow__)); extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int profil (unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); 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__)) __attribute__ ((__nonnull__ (1))) ; extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); # 920 "../posix/unistd.h" extern int fsync (int __fd); 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__)); extern int truncate (__const char *__file, __off_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 957 "../posix/unistd.h" extern int truncate64 (__const char *__file, __off64_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 967 "../posix/unistd.h" extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) ; # 977 "../posix/unistd.h" extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__)) ; # 987 "../posix/unistd.h" extern int brk (void *__addr) __attribute__ ((__nothrow__)) ; extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__)); # 1008 "../posix/unistd.h" extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__)); # 1062 "../posix/unistd.h" extern int fdatasync (int __fildes) __attribute__ ((__nothrow__)); extern char *crypt (__const char *__key, __const char *__salt) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void encrypt (char *__block, int __edflag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void swab (__const void *__restrict __from, void *__restrict __to, ssize_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); # 1100 "../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); 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 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); 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 __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 int __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 void __exit_thread (int val) __attribute__ ((noreturn)); extern __pid_t __libc_fork (void); extern int __libc_pause (void); # 27 "rtld.c" 2 # 1 "../include/sys/mman.h" 1 # 1 "../misc/sys/mman.h" 1 # 26 "../misc/sys/mman.h" # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 27 "../misc/sys/mman.h" 2 # 42 "../misc/sys/mman.h" # 1 "../sysdeps/unix/sysv/linux/s390/bits/mman.h" 1 # 43 "../misc/sys/mman.h" 2 # 58 "../misc/sys/mman.h" extern void *mmap (void *__addr, size_t __len, int __prot, int __flags, int __fd, __off_t __offset) __attribute__ ((__nothrow__)); # 71 "../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 void *mremap (void *__addr, size_t __old_len, size_t __new_len, int __flags, ...) __attribute__ ((__nothrow__)); extern int mincore (void *__start, size_t __len, unsigned char *__vec) __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 void *__mremap (void *__addr, size_t __old_len, size_t __new_len, int __flags, ...); # 28 "rtld.c" 2 # 1 "../sysdeps/unix/sysv/linux/ldsodefs.h" 1 # 22 "../sysdeps/unix/sysv/linux/ldsodefs.h" # 1 "../sysdeps/unix/sysv/linux/kernel-features.h" 1 # 23 "../sysdeps/unix/sysv/linux/ldsodefs.h" 2 # 1 "../sysdeps/generic/ldsodefs.h" 1 # 28 "../sysdeps/generic/ldsodefs.h" # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 29 "../sysdeps/generic/ldsodefs.h" 2 # 1 "../include/fpu_control.h" 1 # 1 "../sysdeps/s390/fpu/fpu_control.h" 1 # 35 "../sysdeps/s390/fpu/fpu_control.h" typedef unsigned int fpu_control_t; 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/generic/dl-lookupcfg.h" 1 # 37 "../sysdeps/generic/ldsodefs.h" 2 # 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1 # 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" # 1 "../sysdeps/generic/dl-sysdep.h" 1 # 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2 # 38 "../sysdeps/generic/ldsodefs.h" 2 # 1 "../nptl/sysdeps/pthread/bits/libc-lock.h" 1 # 23 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 1 "../include/pthread.h" 1 extern void __pthread_initialize (void) __attribute__ ((weak)); # 24 "../nptl/sysdeps/pthread/bits/libc-lock.h" 2 # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 26 "../nptl/sysdeps/pthread/bits/libc-lock.h" 2 # 37 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 1 "../nptl/sysdeps/pthread/pthread-functions.h" 1 # 23 "../nptl/sysdeps/pthread/pthread-functions.h" # 1 "../include/pthread.h" 1 extern void __pthread_initialize (void) __attribute__ ((weak)); # 24 "../nptl/sysdeps/pthread/pthread-functions.h" 2 # 1 "../nptl/sysdeps/unix/sysv/linux/internaltypes.h" 1 # 26 "../nptl/sysdeps/unix/sysv/linux/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; }; # 53 "../nptl/sysdeps/unix/sysv/linux/internaltypes.h" struct pthread_mutexattr { int mutexkind; }; struct pthread_condattr { int value; }; # 85 "../nptl/sysdeps/unix/sysv/linux/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; }; struct pthread_barrierattr { int pshared; }; struct pthread_key_struct { uintptr_t seq; void (*destr) (void *); }; # 140 "../nptl/sysdeps/unix/sysv/linux/internaltypes.h" struct sem { unsigned int count; }; typedef struct { pthread_cond_t *cond; } pthread_cond_2_0_t; # 26 "../nptl/sysdeps/pthread/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 *); 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)) ; void (*ptr__nptl_deallocate_tsd) (void); int (*ptr__nptl_setxid) (struct xid_command *); }; extern struct pthread_functions __libc_pthread_functions __attribute__ ((visibility ("hidden"))); # 38 "../nptl/sysdeps/pthread/bits/libc-lock.h" 2 typedef pthread_mutex_t __libc_lock_t; typedef struct { pthread_mutex_t mutex; } __libc_lock_recursive_t; typedef struct { pthread_mutex_t mutex; } __rtld_lock_recursive_t; typedef pthread_rwlock_t __libc_rwlock_t; # 62 "../nptl/sysdeps/pthread/bits/libc-lock.h" typedef pthread_key_t __libc_key_t; # 369 "../nptl/sysdeps/pthread/bits/libc-lock.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); # 411 "../nptl/sysdeps/pthread/bits/libc-lock.h" extern __inline void __libc_cleanup_routine (struct __pthread_cleanup_frame *f) { if (f->__do_it) f->__cancel_routine (f->__cancel_arg); } # 448 "../nptl/sysdeps/pthread/bits/libc-lock.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)); # 513 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 1 "../sysdeps/generic/bp-sym.h" 1 # 514 "../nptl/sysdeps/pthread/bits/libc-lock.h" 2 # 517 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_mutex_init # 517 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 518 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_mutex_destroy # 518 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 519 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_mutex_lock # 519 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 520 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_mutex_trylock # 520 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 521 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_mutex_unlock # 521 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 522 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_mutexattr_init # 522 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 523 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_mutexattr_destroy # 523 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 524 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_mutexattr_settype # 524 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 525 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_rwlock_init # 525 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 526 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_rwlock_destroy # 526 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 527 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_rwlock_rdlock # 527 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 528 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_rwlock_tryrdlock # 528 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 529 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_rwlock_wrlock # 529 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 530 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_rwlock_trywrlock # 530 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 531 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_rwlock_unlock # 531 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 532 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_key_create # 532 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 533 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_setspecific # 533 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 534 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_getspecific # 534 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 535 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_once # 535 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 536 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_initialize # 536 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 537 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak __pthread_atfork # 537 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 538 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak _pthread_cleanup_push_defer # 538 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 539 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak _pthread_cleanup_pop_restore # 539 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 540 "../nptl/sysdeps/pthread/bits/libc-lock.h" #pragma weak pthread_setcancelstate # 540 "../nptl/sysdeps/pthread/bits/libc-lock.h" # 39 "../sysdeps/generic/ldsodefs.h" 2 # 61 "../sysdeps/generic/ldsodefs.h" typedef struct link_map *lookup_t; # 127 "../sysdeps/generic/ldsodefs.h" struct r_found_version { const char *name; Elf64_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 La_i86_regs; struct La_i86_retval; struct La_x86_64_regs; struct La_x86_64_retval; struct La_ppc32_regs; struct La_ppc32_retval; struct La_ppc64_regs; struct La_ppc64_retval; struct La_sh_regs; struct La_sh_retval; struct La_m68k_regs; struct La_m68k_retval; struct La_alpha_regs; struct La_alpha_retval; struct La_s390_32_regs; struct La_s390_32_retval; struct La_s390_64_regs; struct La_s390_64_retval; struct La_ia64_regs; struct La_ia64_retval; struct La_mips_32_regs; struct La_mips_32_retval; struct La_mips_64_regs; struct La_mips_64_retval; struct La_sparc32_regs; struct La_sparc32_retval; struct La_sparc64_regs; struct La_sparc64_retval; 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); Elf64_Addr (*x86_64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, struct La_x86_64_regs *, unsigned int *, const char *name, long int *framesizep); Elf32_Addr (*ppc32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, struct La_ppc32_regs *, unsigned int *, const char *name, long int *framesizep); Elf64_Addr (*ppc64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, struct La_ppc64_regs *, unsigned int *, const char *name, long int *framesizep); uintptr_t (*sh_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_sh_regs *, unsigned int *, const char *name, long int *framesizep); Elf32_Addr (*m68k_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, struct La_m68k_regs *, unsigned int *, const char *name, long int *framesizep); Elf64_Addr (*alpha_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, struct La_alpha_regs *, unsigned int *, const char *name, long int *framesizep); Elf32_Addr (*s390_32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, struct La_s390_32_regs *, unsigned int *, const char *name, long int *framesizep); Elf64_Addr (*s390_64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, struct La_s390_64_regs *, unsigned int *, const char *name, long int *framesizep); Elf64_Addr (*ia64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, struct La_ia64_regs *, unsigned int *, const char *name, long int *framesizep); Elf32_Addr (*mips_o32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_mips_32_regs *, unsigned int *, const char *name, long int *framesizep); Elf32_Addr (*mips_n32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_mips_64_regs *, unsigned int *, const char *name, long int *framesizep); Elf64_Addr (*mips_n64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_mips_64_regs *, unsigned int *, const char *name, long int *framesizep); Elf32_Addr (*sparc32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_sparc32_regs *, unsigned int *, const char *name, long int *framesizep); Elf64_Addr (*sparc64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_sparc64_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 (*x86_64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_x86_64_regs *, struct La_x86_64_retval *, const char *); unsigned int (*ppc32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_ppc32_regs *, struct La_ppc32_retval *, const char *); unsigned int (*ppc64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_ppc64_regs *, struct La_ppc64_retval *, const char *); unsigned int (*sh_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_sh_regs *, struct La_sh_retval *, const char *); unsigned int (*m68k_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_m68k_regs *, struct La_m68k_retval *, const char *); unsigned int (*alpha_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_alpha_regs *, struct La_alpha_retval *, const char *); unsigned int (*s390_32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_s390_32_regs *, struct La_s390_32_retval *, const char *); unsigned int (*s390_64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_s390_64_regs *, struct La_s390_64_retval *, const char *); unsigned int (*ia64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_ia64_regs *, struct La_ia64_retval *, const char *); unsigned int (*mips_o32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_mips_32_regs *, struct La_mips_32_retval *, const char *); unsigned int (*mips_n32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_mips_64_regs *, struct La_mips_64_retval *, const char *); unsigned int (*mips_n64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_mips_64_regs *, struct La_mips_64_retval *, const char *); unsigned int (*sparc32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_sparc32_regs *, struct La_sparc32_retval *, const char *); unsigned int (*sparc64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *, uintptr_t *, const struct La_sparc32_regs *, struct La_sparc32_retval *, const char *); }; unsigned int (*objclose) (uintptr_t *); struct audit_ifaces *next; }; extern int _dl_name_match_p (const char *__name, struct link_map *__map) ; typedef void (*receiver_fct) (int, const char *, const char *); # 404 "../sysdeps/generic/ldsodefs.h" struct rtld_global { # 416 "../sysdeps/generic/ldsodefs.h" struct link_namespaces { struct link_map *_ns_loaded; unsigned int _ns_nloaded; struct r_scope_elem *_ns_global_scope[2]; struct r_scope_elem *_ns_main_searchlist; size_t _ns_global_scope_alloc; struct r_debug _ns_debug; } _dl_ns[16]; # 441 "../sysdeps/generic/ldsodefs.h" __rtld_lock_recursive_t _dl_load_lock; unsigned long long _dl_load_adds; struct link_map *_dl_initfirst; 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 *); Elf64_Word _dl_stack_flags; int (*_dl_make_stack_executable_hook) (void **) ; size_t _dl_tls_max_dtv_idx; _Bool _dl_tls_dtv_gaps; 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; # 532 "../sysdeps/generic/ldsodefs.h" void *_dl_initial_dtv; size_t _dl_tls_generation; void (*_dl_init_static_tls) (struct link_map *); }; # 555 "../sysdeps/generic/ldsodefs.h" extern struct rtld_global _rtld_local __attribute__ ((visibility ("hidden"))); extern struct rtld_global _rtld_global ; # 570 "../sysdeps/generic/ldsodefs.h" struct rtld_global_ro { int _dl_debug_mask; # 590 "../sysdeps/generic/ldsodefs.h" size_t _dl_pagesize; unsigned int _dl_osversion; const char *_dl_platform; size_t _dl_platformlen; 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; int _dl_pointer_guard; uint64_t _dl_hwcap; uint64_t _dl_hwcap_mask; # 1 "../sysdeps/generic/dl-procinfo.c" 1 # 641 "../sysdeps/generic/ldsodefs.h" 2 const char *_dl_inhibit_rpath; const char *_dl_origin_path; Elf64_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; # 678 "../sysdeps/generic/ldsodefs.h" const Elf64_Ehdr *_dl_sysinfo_dso; struct link_map *_dl_sysinfo_map; void (*_dl_debug_printf) (const char *, ...) __attribute__ ((__format__ (__printf__, 1, 2))); int ( *_dl_catch_error) (const char **, const char **, _Bool *, void (*) (void *), void *); void ( *_dl_signal_error) (int, const char *, const char *, const char *); void (*_dl_mcount) (Elf64_Addr frompc, Elf64_Addr selfpc); lookup_t ( *_dl_lookup_symbol_x) (const char *, struct link_map *, const Elf64_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); struct audit_ifaces *_dl_audit; unsigned int _dl_naudit; }; 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"))) ; # 738 "../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) ; 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 char **_dl_argv_internal __attribute__ ((visibility ("hidden"))) __attribute__ ((section (".data.rel.ro"))) ; extern int _dl_starting_up; # 775 "../sysdeps/generic/ldsodefs.h" #pragma weak _dl_starting_up # 775 "../sysdeps/generic/ldsodefs.h" extern int _dl_starting_up_internal __attribute__ ((visibility ("hidden"))); 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"))); # 829 "../sysdeps/generic/ldsodefs.h" extern void _dl_signal_error (int errcode, const char *object, const char *occurred, const char *errstring) __attribute__ ((__noreturn__)) __attribute__ ((visibility ("hidden"))); extern void _dl_signal_cerror (int errcode, const char *object, const char *occation, const char *errstring) ; extern void _dl_receive_error (receiver_fct fct, void (*operate) (void *), void *args) ; extern struct link_map *_dl_map_object (struct link_map *loader, const char *name, int preloaded, int type, int trace_mode, int mode, Lmid_t nsid) __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__ ((visibility ("hidden"))); extern void _dl_setup_hash (struct link_map *map) __attribute__ ((visibility ("hidden"))); extern void _dl_rtld_di_serinfo (struct link_map *loader, Dl_serinfo *si, _Bool counting) ; # 893 "../sysdeps/generic/ldsodefs.h" enum { DL_LOOKUP_ADD_DEPENDENCY = 1, DL_LOOKUP_RETURN_NEWEST = 2 }; extern lookup_t _dl_lookup_symbol_x (const char *undef, struct link_map *undef_map, const Elf64_Sym **sym, struct r_scope_elem *symbol_scope[], const struct r_found_version *version, int type_class, int explicit, struct link_map *skip_map) __attribute__ ((visibility ("hidden"))); extern Elf64_Addr _dl_symbol_value (struct link_map *map, const char *name) ; extern struct link_map *_dl_new_object (char *realname, const char *libname, int type, struct link_map *loader, int mode, Lmid_t nsid) __attribute__ ((visibility ("hidden"))); extern void _dl_relocate_object (struct link_map *map, struct r_scope_elem *scope[], int lazy, int consider_profiling) __attribute__ ((visibility ("hidden"))); extern void _dl_protect_relro (struct link_map *map) __attribute__ ((visibility ("hidden"))); extern void _dl_reloc_bad_type (struct link_map *map, unsigned int type, int plt) __attribute__ ((__noreturn__)); extern void _dl_resolve_conflicts (struct link_map *l, Elf64_Rela *conflict, Elf64_Rela *conflictend); extern int _dl_check_all_versions (struct link_map *map, int verbose, int trace_mode) ; extern int _dl_check_map_versions (struct link_map *map, int verbose, int trace_mode) ; extern void _dl_init (struct link_map *main_map, int argc, char **argv, char **env) __attribute__ ((visibility ("hidden"))); extern void _dl_fini (void) ; extern void _dl_sort_fini (struct link_map *l, struct link_map **maps, size_t nmaps, char *used, Lmid_t ns) ; 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 (Elf64_Addr ldbase, Lmid_t ns) ; extern void _dl_init_paths (const char *library_path) ; extern void _dl_start_profile (void) __attribute__ ((visibility ("hidden"))); extern void _dl_mcount (Elf64_Addr frompc, Elf64_Addr selfpc); extern void _dl_mcount_internal (Elf64_Addr frompc, Elf64_Addr selfpc) __attribute__ ((visibility ("hidden"))); extern void _dl_mcount_wrapper (void *selfpc); extern void _dl_show_auxv (void) ; extern char *_dl_next_ld_env_entry (char ***position) ; extern const struct r_strlenpair *_dl_important_hwcaps (const char *platform, size_t paltform_len, size_t *sz, size_t *max_capstrlen) ; extern const char *_dl_load_cache_lookup (const char *name) ; 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__ ((visibility ("hidden"))); extern Elf64_Addr _dl_sysdep_start (void **start_argptr, void (*dl_main) (const Elf64_Phdr *phdr, Elf64_Word phnum, Elf64_Addr *user_entry)) __attribute__ ((visibility ("hidden"))); extern void _dl_sysdep_start_cleanup (void) __attribute__ ((visibility ("hidden"))); extern size_t _dl_next_tls_modid (void) __attribute__ ((visibility ("hidden"))); extern void _dl_determine_tlsoffset (void) __attribute__ ((visibility ("hidden"))); extern int _dl_tls_setup (void) ; extern __typeof (_dl_tls_setup) _dl_tls_setup __asm__ ("" "__GI__dl_tls_setup") __attribute__ ((visibility ("hidden"))); extern void *_dl_allocate_tls (void *mem) ; 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) ; extern void _dl_allocate_static_tls (struct link_map *map) __attribute__ ((visibility ("hidden"))); extern void *_dl_allocate_tls_storage (void) __attribute__ ((visibility ("hidden"))); extern void *_dl_allocate_tls_init (void *) ; 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) ; 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 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) ; # 26 "../sysdeps/unix/sysv/linux/ldsodefs.h" 2 extern void _dl_aux_init (Elf64_auxv_t *av) ; extern void _dl_non_dynamic_init (void) ; # 31 "rtld.c" 2 # 1 "../stdio-common/_itoa.h" 1 # 29 "../stdio-common/_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_upper_digits_internal[] __attribute__ ((visibility ("hidden"))); extern const char _itoa_lower_digits[]; extern const char _itoa_lower_digits_internal[] __attribute__ ((visibility ("hidden"))); static inline char * __attribute__ ((unused, always_inline)) _itoa_word (unsigned long value, char *buflim, unsigned int base, int upper_case) { const char *digits = (upper_case ? _itoa_upper_digits_internal : _itoa_lower_digits_internal ); 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 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"))); # 32 "rtld.c" 2 # 1 "../sysdeps/generic/entry.h" 1 extern void _start (void) __attribute__ ((visibility ("hidden"))); # 33 "rtld.c" 2 # 1 "../include/fpu_control.h" 1 extern void __setfpucw (fpu_control_t); # 34 "rtld.c" 2 # 1 "dynamic-link.h" 1 # 21 "dynamic-link.h" # 1 "../include/assert.h" 1 # 1 "../assert/assert.h" 1 # 65 "../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 __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"))); # 22 "dynamic-link.h" 2 # 63 "dynamic-link.h" # 1 "../sysdeps/s390/s390-64/dl-machine.h" 1 # 35 "../sysdeps/s390/s390-64/dl-machine.h" static inline int elf_machine_matches_host (const Elf64_Ehdr *ehdr) { return (ehdr->e_machine == 22 || ehdr->e_machine == 0xA390) && ehdr->e_ident[4] == 2; } static inline Elf64_Addr elf_machine_dynamic (void) { register Elf64_Addr *got; asm( " larl %0,_GLOBAL_OFFSET_TABLE_\n" : "=&a" (got) : : "0" ); return *got; } static inline Elf64_Addr elf_machine_load_address (void) { Elf64_Addr addr; asm( " larl %0,_dl_start\n" " larl 1,_GLOBAL_OFFSET_TABLE_\n" " lghi 2,_dl_start@GOT\n" " slg %0,0(2,1)" : "=&d" (addr) : : "1", "2" ); return addr; } static inline int __attribute__ ((unused)) elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) { extern void _dl_runtime_resolve (Elf64_Word); extern void _dl_runtime_profile (Elf64_Word); if (l->l_info[23] && lazy) { Elf64_Addr *got; got = (Elf64_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 = (Elf64_Addr) &got[3]; } got[1] = (Elf64_Addr) l; if (__builtin_expect (profile, 0)) { got[2] = (Elf64_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] = (Elf64_Addr) &_dl_runtime_resolve; } return lazy; } # 217 "../sysdeps/s390/s390-64/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 Elf64_Addr elf_machine_fixup_plt (struct link_map *map, lookup_t t, const Elf64_Rela *reloc, Elf64_Addr *reloc_addr, Elf64_Addr value) { return *reloc_addr = value; } static inline Elf64_Addr elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc, Elf64_Addr value) { return value; } # 64 "dynamic-link.h" 2 # 76 "dynamic-link.h" static inline void __attribute__ ((unused, always_inline)) elf_get_dynamic_info (struct link_map *l, Elf64_Dyn *temp) { Elf64_Dyn *dyn = l->l_ld; Elf64_Dyn **info; if (dyn == ((void *)0)) return; info = l->l_info; while (dyn->d_tag != 0) { if (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 (dyn->d_tag >= 0x6cbdd030 && dyn->d_tag < 0x6cbdd030 + 2) info[(34 + 0 + 16 + 3 + 12 + 10 + (dyn->d_tag - 0x6cbdd030))] = dyn; else if ((Elf32_Word) (0x6fffffff - (dyn->d_tag)) < 16) info[(34 + 0 + (0x6fffffff - (dyn->d_tag)))] = dyn; else if ((Elf32_Word) ((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 ((Elf32_Word) (0x6ffffdff - (dyn->d_tag)) < 12) info[(0x6ffffdff - (dyn->d_tag)) + 34 + 0 + 16 + 3] = dyn; else if ((Elf32_Word) (0x6ffffeff - (dyn->d_tag)) < 10) info[(0x6ffffeff - (dyn->d_tag)) + 34 + 0 + 16 + 3 + 12] = dyn; ++dyn; } if (l->l_addr != 0) { Elf64_Addr l_addr = l->l_addr; int cnt = 0; # 141 "dynamic-link.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[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[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_un.d_ptr + l_addr; info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))] = temp + cnt++; } else info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_un.d_ptr += l_addr; } while (0); do if (info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_un.d_ptr + l_addr; info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))] = temp + cnt++; } else info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_un.d_ptr += l_addr; } while (0); ((void) ((cnt <= 8) ? 0 : (__assert_fail ("cnt <= 8", "dynamic-link.h", 156, __PRETTY_FUNCTION__), 0))); } if (info[20] != ((void *)0)) { ((void) ((info[20]->d_un.d_val == 7) ? 0 : (__assert_fail ("info[20]->d_un.d_val == 7", "dynamic-link.h", 164, __PRETTY_FUNCTION__), 0))); } if (info[7] != ((void *)0)) ((void) ((info[9]->d_un.d_val == sizeof (Elf64_Rela)) ? 0 : (__assert_fail ("info[9]->d_un.d_val == sizeof (Elf64_Rela)", "dynamic-link.h", 172, __PRETTY_FUNCTION__), 0))); # 188 "dynamic-link.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 (l->l_flags_1 & 0x00000001) info[24] = info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))]; } if (info[29] != ((void *)0)) info[15] = ((void *)0); } # 37 "rtld.c" 2 # 1 "../sysdeps/unix/sysv/linux/dl-librecon.h" 1 # 24 "../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; } # 38 "rtld.c" 2 # 1 "../sysdeps/generic/unsecvars.h" 1 # 39 "rtld.c" 2 # 1 "../sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h" 1 # 25 "../sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h" # 1 "../sysdeps/unix/sysv/linux/s390/dl-cache.h" 1 # 1 "../sysdeps/unix/sysv/linux/sparc/dl-cache.h" 1 # 39 "../sysdeps/unix/sysv/linux/sparc/dl-cache.h" # 1 "../sysdeps/generic/dl-cache.h" 1 # 61 "../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) ; # 39 "../sysdeps/unix/sysv/linux/sparc/dl-cache.h" 2 # 1 "../sysdeps/unix/sysv/linux/s390/dl-cache.h" 2 # 25 "../sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h" 2 # 40 "rtld.c" 2 # 1 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 1 # 22 "../sysdeps/unix/sysv/linux/dl-osinfo.h" # 1 "../include/sys/sysctl.h" 1 # 1 "../sysdeps/unix/sysv/linux/sys/sysctl.h" 1 # 24 "../sysdeps/unix/sysv/linux/sys/sysctl.h" # 1 "/usr/lib64/gcc/s390x-suse-linux/4.1.0/include/stddef.h" 1 3 4 # 25 "../sysdeps/unix/sysv/linux/sys/sysctl.h" 2 # 44 "../sysdeps/unix/sysv/linux/sys/sysctl.h" # 1 "/usr/include/linux/sysctl.h" 1 3 4 # 28 "/usr/include/linux/sysctl.h" 3 4 # 1 "/usr/include/linux/kernel.h" 1 3 4 # 29 "/usr/include/linux/sysctl.h" 2 3 4 # 1 "/usr/include/linux/types.h" 1 3 4 # 30 "/usr/include/linux/sysctl.h" 2 3 4 struct file; struct completion; struct __sysctl_args { int *name; int nlen; void *oldval; size_t *oldlenp; void *newval; size_t newlen; unsigned long __unused[4]; }; enum { CTL_KERN=1, CTL_VM=2, CTL_NET=3, CTL_FS=5, CTL_DEBUG=6, CTL_DEV=7, CTL_BUS=8, CTL_ABI=9, CTL_CPU=10 }; enum { CTL_BUS_ISA=1 }; enum { INOTIFY_MAX_USER_INSTANCES=1, INOTIFY_MAX_USER_WATCHES=2, INOTIFY_MAX_QUEUED_EVENTS=3 }; enum { KERN_OSTYPE=1, KERN_OSRELEASE=2, KERN_OSREV=3, KERN_VERSION=4, KERN_SECUREMASK=5, KERN_PROF=6, KERN_NODENAME=7, KERN_DOMAINNAME=8, KERN_CAP_BSET=14, KERN_PANIC=15, KERN_REALROOTDEV=16, KERN_SPARC_REBOOT=21, KERN_CTLALTDEL=22, KERN_PRINTK=23, KERN_NAMETRANS=24, KERN_PPC_HTABRECLAIM=25, KERN_PPC_ZEROPAGED=26, KERN_PPC_POWERSAVE_NAP=27, KERN_MODPROBE=28, KERN_SG_BIG_BUFF=29, KERN_ACCT=30, KERN_PPC_L2CR=31, KERN_RTSIGNR=32, KERN_RTSIGMAX=33, KERN_SHMMAX=34, KERN_MSGMAX=35, KERN_MSGMNB=36, KERN_MSGPOOL=37, KERN_SYSRQ=38, KERN_MAX_THREADS=39, KERN_RANDOM=40, KERN_SHMALL=41, KERN_MSGMNI=42, KERN_SEM=43, KERN_SPARC_STOP_A=44, KERN_SHMMNI=45, KERN_OVERFLOWUID=46, KERN_OVERFLOWGID=47, KERN_SHMPATH=48, KERN_HOTPLUG=49, KERN_IEEE_EMULATION_WARNINGS=50, KERN_S390_USER_DEBUG_LOGGING=51, KERN_CORE_USES_PID=52, KERN_TAINTED=53, KERN_CADPID=54, KERN_PIDMAX=55, KERN_CORE_PATTERN=56, KERN_PANIC_ON_OOPS=57, KERN_HPPA_PWRSW=58, KERN_HPPA_UNALIGNED=59, KERN_PRINTK_RATELIMIT=60, KERN_PRINTK_RATELIMIT_BURST=61, KERN_PTY=62, KERN_NGROUPS_MAX=63, KERN_SPARC_SCONS_PWROFF=64, KERN_HZ_TIMER=65, KERN_UNKNOWN_NMI_PANIC=66, KERN_BOOTLOADER_TYPE=67, KERN_RANDOMIZE=68, KERN_SETUID_DUMPABLE=69, KERN_SPIN_RETRY=70, KERN_ACPI_VIDEO_FLAGS=71, KERN_IA64_UNALIGNED=72, KERN_COMPAT_LOG=73, KERN_MAX_LOCK_DEPTH=74, KERN_NMI_WATCHDOG=75, KERN_PANIC_ON_NMI=76, }; enum { VM_UNUSED1=1, VM_UNUSED2=2, VM_UNUSED3=3, VM_UNUSED4=4, VM_OVERCOMMIT_MEMORY=5, VM_UNUSED5=6, VM_UNUSED7=7, VM_UNUSED8=8, VM_UNUSED9=9, VM_PAGE_CLUSTER=10, VM_DIRTY_BACKGROUND=11, VM_DIRTY_RATIO=12, VM_DIRTY_WB_CS=13, VM_DIRTY_EXPIRE_CS=14, VM_NR_PDFLUSH_THREADS=15, VM_OVERCOMMIT_RATIO=16, VM_PAGEBUF=17, VM_HUGETLB_PAGES=18, VM_SWAPPINESS=19, VM_LOWMEM_RESERVE_RATIO=20, VM_MIN_FREE_KBYTES=21, VM_MAX_MAP_COUNT=22, VM_LAPTOP_MODE=23, VM_BLOCK_DUMP=24, VM_HUGETLB_GROUP=25, VM_VFS_CACHE_PRESSURE=26, VM_LEGACY_VA_LAYOUT=27, VM_SWAP_TOKEN_TIMEOUT=28, VM_DROP_PAGECACHE=29, VM_PERCPU_PAGELIST_FRACTION=30, VM_ZONE_RECLAIM_MODE=31, VM_MIN_UNMAPPED=32, VM_PANIC_ON_OOM=33, VM_VDSO_ENABLED=34, VM_MIN_SLAB=35, }; enum { NET_CORE=1, NET_ETHER=2, NET_802=3, NET_UNIX=4, NET_IPV4=5, NET_IPX=6, NET_ATALK=7, NET_NETROM=8, NET_AX25=9, NET_BRIDGE=10, NET_ROSE=11, NET_IPV6=12, NET_X25=13, NET_TR=14, NET_DECNET=15, NET_ECONET=16, NET_SCTP=17, NET_LLC=18, NET_NETFILTER=19, NET_DCCP=20, }; enum { RANDOM_POOLSIZE=1, RANDOM_ENTROPY_COUNT=2, RANDOM_READ_THRESH=3, RANDOM_WRITE_THRESH=4, RANDOM_BOOT_ID=5, RANDOM_UUID=6 }; enum { PTY_MAX=1, PTY_NR=2 }; enum { BUS_ISA_MEM_BASE=1, BUS_ISA_PORT_BASE=2, BUS_ISA_PORT_SHIFT=3 }; enum { NET_CORE_WMEM_MAX=1, NET_CORE_RMEM_MAX=2, NET_CORE_WMEM_DEFAULT=3, NET_CORE_RMEM_DEFAULT=4, NET_CORE_MAX_BACKLOG=6, NET_CORE_FASTROUTE=7, NET_CORE_MSG_COST=8, NET_CORE_MSG_BURST=9, NET_CORE_OPTMEM_MAX=10, NET_CORE_HOT_LIST_LENGTH=11, NET_CORE_DIVERT_VERSION=12, NET_CORE_NO_CONG_THRESH=13, NET_CORE_NO_CONG=14, NET_CORE_LO_CONG=15, NET_CORE_MOD_CONG=16, NET_CORE_DEV_WEIGHT=17, NET_CORE_SOMAXCONN=18, NET_CORE_BUDGET=19, NET_CORE_AEVENT_ETIME=20, NET_CORE_AEVENT_RSEQTH=21, }; enum { NET_UNIX_DESTROY_DELAY=1, NET_UNIX_DELETE_DELAY=2, NET_UNIX_MAX_DGRAM_QLEN=3, }; enum { NET_NF_CONNTRACK_MAX=1, NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2, NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3, NET_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4, NET_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5, NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6, NET_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7, NET_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8, NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9, NET_NF_CONNTRACK_UDP_TIMEOUT=10, NET_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11, NET_NF_CONNTRACK_ICMP_TIMEOUT=12, NET_NF_CONNTRACK_GENERIC_TIMEOUT=13, NET_NF_CONNTRACK_BUCKETS=14, NET_NF_CONNTRACK_LOG_INVALID=15, NET_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16, NET_NF_CONNTRACK_TCP_LOOSE=17, NET_NF_CONNTRACK_TCP_BE_LIBERAL=18, NET_NF_CONNTRACK_TCP_MAX_RETRANS=19, NET_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20, NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21, NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22, NET_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23, NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24, NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25, NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26, NET_NF_CONNTRACK_COUNT=27, NET_NF_CONNTRACK_ICMPV6_TIMEOUT=28, NET_NF_CONNTRACK_FRAG6_TIMEOUT=29, NET_NF_CONNTRACK_FRAG6_LOW_THRESH=30, NET_NF_CONNTRACK_FRAG6_HIGH_THRESH=31, NET_NF_CONNTRACK_CHECKSUM=32, }; enum { NET_IPV4_FORWARD=8, NET_IPV4_DYNADDR=9, NET_IPV4_CONF=16, NET_IPV4_NEIGH=17, NET_IPV4_ROUTE=18, NET_IPV4_FIB_HASH=19, NET_IPV4_NETFILTER=20, NET_IPV4_TCP_TIMESTAMPS=33, NET_IPV4_TCP_WINDOW_SCALING=34, NET_IPV4_TCP_SACK=35, NET_IPV4_TCP_RETRANS_COLLAPSE=36, NET_IPV4_DEFAULT_TTL=37, NET_IPV4_AUTOCONFIG=38, NET_IPV4_NO_PMTU_DISC=39, NET_IPV4_TCP_SYN_RETRIES=40, NET_IPV4_IPFRAG_HIGH_THRESH=41, NET_IPV4_IPFRAG_LOW_THRESH=42, NET_IPV4_IPFRAG_TIME=43, NET_IPV4_TCP_MAX_KA_PROBES=44, NET_IPV4_TCP_KEEPALIVE_TIME=45, NET_IPV4_TCP_KEEPALIVE_PROBES=46, NET_IPV4_TCP_RETRIES1=47, NET_IPV4_TCP_RETRIES2=48, NET_IPV4_TCP_FIN_TIMEOUT=49, NET_IPV4_IP_MASQ_DEBUG=50, NET_TCP_SYNCOOKIES=51, NET_TCP_STDURG=52, NET_TCP_RFC1337=53, NET_TCP_SYN_TAILDROP=54, NET_TCP_MAX_SYN_BACKLOG=55, NET_IPV4_LOCAL_PORT_RANGE=56, NET_IPV4_ICMP_ECHO_IGNORE_ALL=57, NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS=58, NET_IPV4_ICMP_SOURCEQUENCH_RATE=59, NET_IPV4_ICMP_DESTUNREACH_RATE=60, NET_IPV4_ICMP_TIMEEXCEED_RATE=61, NET_IPV4_ICMP_PARAMPROB_RATE=62, NET_IPV4_ICMP_ECHOREPLY_RATE=63, NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES=64, NET_IPV4_IGMP_MAX_MEMBERSHIPS=65, NET_TCP_TW_RECYCLE=66, NET_IPV4_ALWAYS_DEFRAG=67, NET_IPV4_TCP_KEEPALIVE_INTVL=68, NET_IPV4_INET_PEER_THRESHOLD=69, NET_IPV4_INET_PEER_MINTTL=70, NET_IPV4_INET_PEER_MAXTTL=71, NET_IPV4_INET_PEER_GC_MINTIME=72, NET_IPV4_INET_PEER_GC_MAXTIME=73, NET_TCP_ORPHAN_RETRIES=74, NET_TCP_ABORT_ON_OVERFLOW=75, NET_TCP_SYNACK_RETRIES=76, NET_TCP_MAX_ORPHANS=77, NET_TCP_MAX_TW_BUCKETS=78, NET_TCP_FACK=79, NET_TCP_REORDERING=80, NET_TCP_ECN=81, NET_TCP_DSACK=82, NET_TCP_MEM=83, NET_TCP_WMEM=84, NET_TCP_RMEM=85, NET_TCP_APP_WIN=86, NET_TCP_ADV_WIN_SCALE=87, NET_IPV4_NONLOCAL_BIND=88, NET_IPV4_ICMP_RATELIMIT=89, NET_IPV4_ICMP_RATEMASK=90, NET_TCP_TW_REUSE=91, NET_TCP_FRTO=92, NET_TCP_LOW_LATENCY=93, NET_IPV4_IPFRAG_SECRET_INTERVAL=94, NET_IPV4_IGMP_MAX_MSF=96, NET_TCP_NO_METRICS_SAVE=97, NET_TCP_DEFAULT_WIN_SCALE=105, NET_TCP_MODERATE_RCVBUF=106, NET_TCP_TSO_WIN_DIVISOR=107, NET_TCP_BIC_BETA=108, NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109, NET_TCP_CONG_CONTROL=110, NET_TCP_ABC=111, NET_IPV4_IPFRAG_MAX_DIST=112, NET_TCP_MTU_PROBING=113, NET_TCP_BASE_MSS=114, NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS=115, NET_TCP_DMA_COPYBREAK=116, NET_TCP_SLOW_START_AFTER_IDLE=117, NET_CIPSOV4_CACHE_ENABLE=118, NET_CIPSOV4_CACHE_BUCKET_SIZE=119, NET_CIPSOV4_RBM_OPTFMT=120, NET_CIPSOV4_RBM_STRICTVALID=121, NET_TCP_AVAIL_CONG_CONTROL=122, NET_TCP_ALLOWED_CONG_CONTROL=123, }; enum { NET_IPV4_ROUTE_FLUSH=1, NET_IPV4_ROUTE_MIN_DELAY=2, NET_IPV4_ROUTE_MAX_DELAY=3, NET_IPV4_ROUTE_GC_THRESH=4, NET_IPV4_ROUTE_MAX_SIZE=5, NET_IPV4_ROUTE_GC_MIN_INTERVAL=6, NET_IPV4_ROUTE_GC_TIMEOUT=7, NET_IPV4_ROUTE_GC_INTERVAL=8, NET_IPV4_ROUTE_REDIRECT_LOAD=9, NET_IPV4_ROUTE_REDIRECT_NUMBER=10, NET_IPV4_ROUTE_REDIRECT_SILENCE=11, NET_IPV4_ROUTE_ERROR_COST=12, NET_IPV4_ROUTE_ERROR_BURST=13, NET_IPV4_ROUTE_GC_ELASTICITY=14, NET_IPV4_ROUTE_MTU_EXPIRES=15, NET_IPV4_ROUTE_MIN_PMTU=16, NET_IPV4_ROUTE_MIN_ADVMSS=17, NET_IPV4_ROUTE_SECRET_INTERVAL=18, NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS=19, }; enum { NET_PROTO_CONF_ALL=-2, NET_PROTO_CONF_DEFAULT=-3 }; enum { NET_IPV4_CONF_FORWARDING=1, NET_IPV4_CONF_MC_FORWARDING=2, NET_IPV4_CONF_PROXY_ARP=3, NET_IPV4_CONF_ACCEPT_REDIRECTS=4, NET_IPV4_CONF_SECURE_REDIRECTS=5, NET_IPV4_CONF_SEND_REDIRECTS=6, NET_IPV4_CONF_SHARED_MEDIA=7, NET_IPV4_CONF_RP_FILTER=8, NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE=9, NET_IPV4_CONF_BOOTP_RELAY=10, NET_IPV4_CONF_LOG_MARTIANS=11, NET_IPV4_CONF_TAG=12, NET_IPV4_CONF_ARPFILTER=13, NET_IPV4_CONF_MEDIUM_ID=14, NET_IPV4_CONF_NOXFRM=15, NET_IPV4_CONF_NOPOLICY=16, NET_IPV4_CONF_FORCE_IGMP_VERSION=17, NET_IPV4_CONF_ARP_ANNOUNCE=18, NET_IPV4_CONF_ARP_IGNORE=19, NET_IPV4_CONF_PROMOTE_SECONDARIES=20, NET_IPV4_CONF_ARP_ACCEPT=21, __NET_IPV4_CONF_MAX }; enum { NET_IPV4_NF_CONNTRACK_MAX=1, NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2, NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3, NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4, NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5, NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6, NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7, NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8, NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9, NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT=10, NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11, NET_IPV4_NF_CONNTRACK_ICMP_TIMEOUT=12, NET_IPV4_NF_CONNTRACK_GENERIC_TIMEOUT=13, NET_IPV4_NF_CONNTRACK_BUCKETS=14, NET_IPV4_NF_CONNTRACK_LOG_INVALID=15, NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16, NET_IPV4_NF_CONNTRACK_TCP_LOOSE=17, NET_IPV4_NF_CONNTRACK_TCP_BE_LIBERAL=18, NET_IPV4_NF_CONNTRACK_TCP_MAX_RETRANS=19, NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20, NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21, NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22, NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23, NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24, NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25, NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26, NET_IPV4_NF_CONNTRACK_COUNT=27, NET_IPV4_NF_CONNTRACK_CHECKSUM=28, }; enum { NET_IPV6_CONF=16, NET_IPV6_NEIGH=17, NET_IPV6_ROUTE=18, NET_IPV6_ICMP=19, NET_IPV6_BINDV6ONLY=20, NET_IPV6_IP6FRAG_HIGH_THRESH=21, NET_IPV6_IP6FRAG_LOW_THRESH=22, NET_IPV6_IP6FRAG_TIME=23, NET_IPV6_IP6FRAG_SECRET_INTERVAL=24, NET_IPV6_MLD_MAX_MSF=25, }; enum { NET_IPV6_ROUTE_FLUSH=1, NET_IPV6_ROUTE_GC_THRESH=2, NET_IPV6_ROUTE_MAX_SIZE=3, NET_IPV6_ROUTE_GC_MIN_INTERVAL=4, NET_IPV6_ROUTE_GC_TIMEOUT=5, NET_IPV6_ROUTE_GC_INTERVAL=6, NET_IPV6_ROUTE_GC_ELASTICITY=7, NET_IPV6_ROUTE_MTU_EXPIRES=8, NET_IPV6_ROUTE_MIN_ADVMSS=9, NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS=10 }; enum { NET_IPV6_FORWARDING=1, NET_IPV6_HOP_LIMIT=2, NET_IPV6_MTU=3, NET_IPV6_ACCEPT_RA=4, NET_IPV6_ACCEPT_REDIRECTS=5, NET_IPV6_AUTOCONF=6, NET_IPV6_DAD_TRANSMITS=7, NET_IPV6_RTR_SOLICITS=8, NET_IPV6_RTR_SOLICIT_INTERVAL=9, NET_IPV6_RTR_SOLICIT_DELAY=10, NET_IPV6_USE_TEMPADDR=11, NET_IPV6_TEMP_VALID_LFT=12, NET_IPV6_TEMP_PREFERED_LFT=13, NET_IPV6_REGEN_MAX_RETRY=14, NET_IPV6_MAX_DESYNC_FACTOR=15, NET_IPV6_MAX_ADDRESSES=16, NET_IPV6_FORCE_MLD_VERSION=17, NET_IPV6_ACCEPT_RA_DEFRTR=18, NET_IPV6_ACCEPT_RA_PINFO=19, NET_IPV6_ACCEPT_RA_RTR_PREF=20, NET_IPV6_RTR_PROBE_INTERVAL=21, NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22, NET_IPV6_PROXY_NDP=23, __NET_IPV6_MAX }; enum { NET_IPV6_ICMP_RATELIMIT=1 }; enum { NET_NEIGH_MCAST_SOLICIT=1, NET_NEIGH_UCAST_SOLICIT=2, NET_NEIGH_APP_SOLICIT=3, NET_NEIGH_RETRANS_TIME=4, NET_NEIGH_REACHABLE_TIME=5, NET_NEIGH_DELAY_PROBE_TIME=6, NET_NEIGH_GC_STALE_TIME=7, NET_NEIGH_UNRES_QLEN=8, NET_NEIGH_PROXY_QLEN=9, NET_NEIGH_ANYCAST_DELAY=10, NET_NEIGH_PROXY_DELAY=11, NET_NEIGH_LOCKTIME=12, NET_NEIGH_GC_INTERVAL=13, NET_NEIGH_GC_THRESH1=14, NET_NEIGH_GC_THRESH2=15, NET_NEIGH_GC_THRESH3=16, NET_NEIGH_RETRANS_TIME_MS=17, NET_NEIGH_REACHABLE_TIME_MS=18, __NET_NEIGH_MAX }; enum { NET_DCCP_DEFAULT=1, }; enum { NET_IPX_PPROP_BROADCASTING=1, NET_IPX_FORWARDING=2 }; enum { NET_LLC2=1, NET_LLC_STATION=2, }; enum { NET_LLC2_TIMEOUT=1, }; enum { NET_LLC_STATION_ACK_TIMEOUT=1, }; enum { NET_LLC2_ACK_TIMEOUT=1, NET_LLC2_P_TIMEOUT=2, NET_LLC2_REJ_TIMEOUT=3, NET_LLC2_BUSY_TIMEOUT=4, }; enum { NET_ATALK_AARP_EXPIRY_TIME=1, NET_ATALK_AARP_TICK_TIME=2, NET_ATALK_AARP_RETRANSMIT_LIMIT=3, NET_ATALK_AARP_RESOLVE_TIME=4 }; enum { NET_NETROM_DEFAULT_PATH_QUALITY=1, NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER=2, NET_NETROM_NETWORK_TTL_INITIALISER=3, NET_NETROM_TRANSPORT_TIMEOUT=4, NET_NETROM_TRANSPORT_MAXIMUM_TRIES=5, NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY=6, NET_NETROM_TRANSPORT_BUSY_DELAY=7, NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE=8, NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT=9, NET_NETROM_ROUTING_CONTROL=10, NET_NETROM_LINK_FAILS_COUNT=11, NET_NETROM_RESET=12 }; enum { NET_AX25_IP_DEFAULT_MODE=1, NET_AX25_DEFAULT_MODE=2, NET_AX25_BACKOFF_TYPE=3, NET_AX25_CONNECT_MODE=4, NET_AX25_STANDARD_WINDOW=5, NET_AX25_EXTENDED_WINDOW=6, NET_AX25_T1_TIMEOUT=7, NET_AX25_T2_TIMEOUT=8, NET_AX25_T3_TIMEOUT=9, NET_AX25_IDLE_TIMEOUT=10, NET_AX25_N2=11, NET_AX25_PACLEN=12, NET_AX25_PROTOCOL=13, NET_AX25_DAMA_SLAVE_TIMEOUT=14 }; enum { NET_ROSE_RESTART_REQUEST_TIMEOUT=1, NET_ROSE_CALL_REQUEST_TIMEOUT=2, NET_ROSE_RESET_REQUEST_TIMEOUT=3, NET_ROSE_CLEAR_REQUEST_TIMEOUT=4, NET_ROSE_ACK_HOLD_BACK_TIMEOUT=5, NET_ROSE_ROUTING_CONTROL=6, NET_ROSE_LINK_FAIL_TIMEOUT=7, NET_ROSE_MAX_VCS=8, NET_ROSE_WINDOW_SIZE=9, NET_ROSE_NO_ACTIVITY_TIMEOUT=10 }; enum { NET_X25_RESTART_REQUEST_TIMEOUT=1, NET_X25_CALL_REQUEST_TIMEOUT=2, NET_X25_RESET_REQUEST_TIMEOUT=3, NET_X25_CLEAR_REQUEST_TIMEOUT=4, NET_X25_ACK_HOLD_BACK_TIMEOUT=5 }; enum { NET_TR_RIF_TIMEOUT=1 }; enum { NET_DECNET_NODE_TYPE = 1, NET_DECNET_NODE_ADDRESS = 2, NET_DECNET_NODE_NAME = 3, NET_DECNET_DEFAULT_DEVICE = 4, NET_DECNET_TIME_WAIT = 5, NET_DECNET_DN_COUNT = 6, NET_DECNET_DI_COUNT = 7, NET_DECNET_DR_COUNT = 8, NET_DECNET_DST_GC_INTERVAL = 9, NET_DECNET_CONF = 10, NET_DECNET_NO_FC_MAX_CWND = 11, NET_DECNET_MEM = 12, NET_DECNET_RMEM = 13, NET_DECNET_WMEM = 14, NET_DECNET_DEBUG_LEVEL = 255 }; enum { NET_DECNET_CONF_LOOPBACK = -2, NET_DECNET_CONF_DDCMP = -3, NET_DECNET_CONF_PPP = -4, NET_DECNET_CONF_X25 = -5, NET_DECNET_CONF_GRE = -6, NET_DECNET_CONF_ETHER = -7 }; enum { NET_DECNET_CONF_DEV_PRIORITY = 1, NET_DECNET_CONF_DEV_T1 = 2, NET_DECNET_CONF_DEV_T2 = 3, NET_DECNET_CONF_DEV_T3 = 4, NET_DECNET_CONF_DEV_FORWARDING = 5, NET_DECNET_CONF_DEV_BLKSIZE = 6, NET_DECNET_CONF_DEV_STATE = 7 }; enum { NET_SCTP_RTO_INITIAL = 1, NET_SCTP_RTO_MIN = 2, NET_SCTP_RTO_MAX = 3, NET_SCTP_RTO_ALPHA = 4, NET_SCTP_RTO_BETA = 5, NET_SCTP_VALID_COOKIE_LIFE = 6, NET_SCTP_ASSOCIATION_MAX_RETRANS = 7, NET_SCTP_PATH_MAX_RETRANS = 8, NET_SCTP_MAX_INIT_RETRANSMITS = 9, NET_SCTP_HB_INTERVAL = 10, NET_SCTP_PRESERVE_ENABLE = 11, NET_SCTP_MAX_BURST = 12, NET_SCTP_ADDIP_ENABLE = 13, NET_SCTP_PRSCTP_ENABLE = 14, NET_SCTP_SNDBUF_POLICY = 15, NET_SCTP_SACK_TIMEOUT = 16, NET_SCTP_RCVBUF_POLICY = 17, }; enum { NET_BRIDGE_NF_CALL_ARPTABLES = 1, NET_BRIDGE_NF_CALL_IPTABLES = 2, NET_BRIDGE_NF_CALL_IP6TABLES = 3, NET_BRIDGE_NF_FILTER_VLAN_TAGGED = 4, }; enum { FS_NRINODE=1, FS_STATINODE=2, FS_MAXINODE=3, FS_NRDQUOT=4, FS_MAXDQUOT=5, FS_NRFILE=6, FS_MAXFILE=7, FS_DENTRY=8, FS_NRSUPER=9, FS_MAXSUPER=10, FS_OVERFLOWUID=11, FS_OVERFLOWGID=12, FS_LEASES=13, FS_DIR_NOTIFY=14, FS_LEASE_TIME=15, FS_DQSTATS=16, FS_XFS=17, FS_AIO_NR=18, FS_AIO_MAX_NR=19, FS_INOTIFY=20, }; enum { FS_DQ_LOOKUPS = 1, FS_DQ_DROPS = 2, FS_DQ_READS = 3, FS_DQ_WRITES = 4, FS_DQ_CACHE_HITS = 5, FS_DQ_ALLOCATED = 6, FS_DQ_FREE = 7, FS_DQ_SYNCS = 8, FS_DQ_WARNINGS = 9, }; enum { DEV_CDROM=1, DEV_HWMON=2, DEV_PARPORT=3, DEV_RAID=4, DEV_MAC_HID=5, DEV_SCSI=6, DEV_IPMI=7, }; enum { DEV_CDROM_INFO=1, DEV_CDROM_AUTOCLOSE=2, DEV_CDROM_AUTOEJECT=3, DEV_CDROM_DEBUG=4, DEV_CDROM_LOCK=5, DEV_CDROM_CHECK_MEDIA=6 }; enum { DEV_PARPORT_DEFAULT=-3 }; enum { DEV_RAID_SPEED_LIMIT_MIN=1, DEV_RAID_SPEED_LIMIT_MAX=2 }; enum { DEV_PARPORT_DEFAULT_TIMESLICE=1, DEV_PARPORT_DEFAULT_SPINTIME=2 }; enum { DEV_PARPORT_SPINTIME=1, DEV_PARPORT_BASE_ADDR=2, DEV_PARPORT_IRQ=3, DEV_PARPORT_DMA=4, DEV_PARPORT_MODES=5, DEV_PARPORT_DEVICES=6, DEV_PARPORT_AUTOPROBE=16 }; enum { DEV_PARPORT_DEVICES_ACTIVE=-3, }; enum { DEV_PARPORT_DEVICE_TIMESLICE=1, }; enum { DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES=1, DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES=2, DEV_MAC_HID_MOUSE_BUTTON_EMULATION=3, DEV_MAC_HID_MOUSE_BUTTON2_KEYCODE=4, DEV_MAC_HID_MOUSE_BUTTON3_KEYCODE=5, DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES=6 }; enum { DEV_SCSI_LOGGING_LEVEL=1, }; enum { DEV_IPMI_POWEROFF_POWERCYCLE=1, }; enum { ABI_DEFHANDLER_COFF=1, ABI_DEFHANDLER_ELF=2, ABI_DEFHANDLER_LCALL7=3, ABI_DEFHANDLER_LIBCSO=4, ABI_TRACE=5, ABI_FAKE_UTSNAME=6, }; # 45 "../sysdeps/unix/sysv/linux/sys/sysctl.h" 2 # 64 "../sysdeps/unix/sysv/linux/sys/sysctl.h" extern int sysctl (int *__name, int __nlen, void *__oldval, size_t *__oldlenp, void *__newval, size_t __newlen) __attribute__ ((__nothrow__)); # 3 "../include/sys/sysctl.h" 2 extern int __sysctl (int *__name, int __nlen, void *__oldval, size_t *__oldlenp, void *__newval, size_t __newlen); # 23 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 2 # 1 "../include/sys/utsname.h" 1 # 1 "../posix/sys/utsname.h" 1 # 28 "../posix/sys/utsname.h" # 1 "../sysdeps/unix/sysv/linux/bits/utsname.h" 1 # 31 "../posix/sys/utsname.h" 2 # 49 "../posix/sys/utsname.h" struct utsname { char sysname[65]; char nodename[65]; char release[65]; char version[65]; char machine[65]; char domainname[65]; }; # 82 "../posix/sys/utsname.h" extern int uname (struct utsname *__name) __attribute__ ((__nothrow__)); # 3 "../include/sys/utsname.h" 2 extern int __uname (struct utsname *__name); # 24 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 2 # 1 "../sysdeps/unix/sysv/linux/kernel-features.h" 1 # 25 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 2 # 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1 # 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" # 1 "../sysdeps/generic/dl-sysdep.h" 1 # 21 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2 # 26 "../sysdeps/unix/sysv/linux/dl-osinfo.h" 2 # 35 "../sysdeps/unix/sysv/linux/dl-osinfo.h" static inline void __attribute__ ((__noreturn__)) dl_fatal (const char *str) { _dl_dprintf (2, str); _exit (1); } static inline int __attribute__ ((always_inline)) _dl_discover_osversion (void) { if (_rtld_local_ro._dl_sysinfo_map != ((void *)0)) { static const struct { Elf64_Word vendorlen; Elf64_Word datalen; Elf64_Word type; char vendor[8]; } expected_note = { sizeof "Linux", sizeof (Elf64_Word), 0, "Linux" }; const Elf64_Phdr *const phdr = _rtld_local_ro._dl_sysinfo_map->l_phdr; const Elf64_Word phnum = _rtld_local_ro._dl_sysinfo_map->l_phnum; for (uint_fast16_t i = 0; i < phnum; ++i) if (phdr[i].p_type == 4) { const Elf64_Addr start = (phdr[i].p_vaddr + _rtld_local_ro._dl_sysinfo_map->l_addr); const struct { Elf64_Word vendorlen; Elf64_Word datalen; Elf64_Word type; } *note = (const void *) start; while ((Elf64_Addr) (note + 1) - start < phdr[i].p_memsz) { if (!memcmp (note, &expected_note, sizeof expected_note)) return *(const Elf64_Word *) ((const void *) note + sizeof expected_note); note = ((const void *) (note + 1) + (((note->vendorlen) + sizeof (Elf64_Word) - 1) & -sizeof (Elf64_Word)) + (((note->datalen) + sizeof (Elf64_Word) - 1) & -sizeof (Elf64_Word))); } } } char bufmem[64]; char *buf = bufmem; unsigned int version; int parts; char *cp; struct utsname uts; if (__uname (&uts)) { int fd = __open ("/proc/sys/kernel/osrelease", 00); if (fd < 0) return -1; ssize_t reslen = __read (fd, bufmem, sizeof (bufmem)); __close (fd); if (reslen <= 0) return -1; buf[(((reslen)<((ssize_t) sizeof (bufmem) - 1))?(reslen):((ssize_t) sizeof (bufmem) - 1))] = '\0'; } else buf = uts.release; version = 0; parts = 0; cp = buf; while ((*cp >= '0') && (*cp <= '9')) { unsigned int here = *cp++ - '0'; while ((*cp >= '0') && (*cp <= '9')) { here *= 10; here += *cp++ - '0'; } ++parts; version <<= 8; version |= here; if (*cp++ != '.') break; } if (parts < 3) version <<= 8 * (3 - parts); return version; } # 162 "../sysdeps/unix/sysv/linux/dl-osinfo.h" static inline uintptr_t __attribute__ ((always_inline)) _dl_setup_stack_chk_guard (void) { uintptr_t ret; # 176 "../sysdeps/unix/sysv/linux/dl-osinfo.h" ret = 0; unsigned char *p = (unsigned char *) &ret; p[sizeof (ret) - 1] = 255; p[sizeof (ret) - 2] = '\n'; return ret; } # 41 "rtld.c" 2 # 1 "../sysdeps/generic/dl-procinfo.h" 1 # 42 "rtld.c" 2 # 1 "../include/assert.h" 1 # 1 "../assert/assert.h" 1 # 65 "../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 __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"))); # 45 "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"))); uintptr_t __guard_local __attribute__ ((section (".data.rel.ro"))) __attribute__ ((visibility ("hidden"))) __attribute__ ((nocommon)); extern __typeof (__guard_local) __guard __attribute__ ((weak, alias ("__guard_local")));; 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; # 127 "rtld.c" struct rtld_global _rtld_global = { ._dl_stack_flags = (1 << 2)|(1 << 1)|(1 << 0), ._dl_load_lock = {{ { 0, 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/generic/dl-procinfo.c" 1 # 149 "rtld.c" 2 ._dl_debug_fd = 2, ._dl_use_load_bias = -2, ._dl_correct_cache_id = 0x403, ._dl_hwcap_mask = (0), ._dl_lazy = 1, ._dl_fpu_control = 0x00000000, ._dl_pointer_guard = 1, ._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 }; extern struct rtld_global_ro _rtld_local_ro __attribute__ ((alias ("_rtld_global_ro"), visibility ("hidden"))); static void dl_main (const Elf64_Phdr *phdr, Elf64_Word phnum, Elf64_Addr *user_entry); static struct libname_list _dl_rtld_libname; static struct libname_list _dl_rtld_libname2; # 220 "rtld.c" static Elf64_Addr _dl_start_final (void *arg); # 234 "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 4\n.globl _start\n.globl _dl_start_user\n_start:\n lgr %r2,%r15\n # Alloc stack frame\n aghi %r15,-160\n # Set the back chain to zero\n xc 0(8,%r15),0(%r15)\n # Call _dl_start with %r2 pointing to arg on stack\n brasl %r14,_dl_start # call _dl_start\n_dl_start_user:\n # Save the user entry point address in %r8.\n lgr %r8,%r2\n # Point %r12 at the GOT.\n larl %r12,_GLOBAL_OFFSET_TABLE_\n # See if we were run as a command with the executable file\n # name as an extra leading argument.\n lghi %r1,_dl_skip_args@GOT\n lg %r1,0(%r1,%r12)\n lgf %r1,0(%r1) # load _dl_skip_args\n # Get the original argument count.\n lg %r0,160(%r15)\n # Subtract _dl_skip_args from it.\n sgr %r0,%r1\n # Adjust the stack pointer to skip _dl_skip_args words.\n sllg %r1,%r1,3\n agr %r15,%r1\n # Set the back chain to zero again\n xc 0(8,%r15),0(%r15)\n # Store back the modified argument count.\n stg %r0,160(%r15)\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 # Call the function to run the initializers.\n # Load the parameters:\n # (%r2, %r3, %r4, %r5) = (_dl_loaded, argc, argv, envp)\n lghi %r2,_rtld_local@GOT\n lg %r2,0(%r2,%r12)\n lg %r2,0(%r2)\n lg %r3,160(%r15)\n la %r4,168(%r15)\n lgr %r5,%r3\n sllg %r5,%r5,3\n la %r5,176(%r5,%r15)\n brasl %r14,_dl_init_internal@PLT\n # Pass our finalizer function to the user in %r14, as per ELF ABI.\n lghi %r14,_dl_fini@GOT\n lg %r14,0(%r14,%r12)\n # Free stack frame\n aghi %r15,160\n # Jump to the user's entry point (saved in %r8).\n br %r8\n"); # 261 "rtld.c" static inline Elf64_Addr __attribute__ ((always_inline)) _dl_start_final (void *arg) { Elf64_Addr start_addr; if ((0)) { if (! (0)) ; ; } # 293 "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 = (Elf64_Addr) _begin; _rtld_local._dl_rtld_map.l_map_end = (Elf64_Addr) _end; _rtld_local._dl_rtld_map.l_text_end = (Elf64_Addr) _etext; # 323 "rtld.c" __libc_stack_end = __builtin_frame_address (0); start_addr = _dl_sysdep_start (arg, &dl_main); # 345 "rtld.c" if (__builtin_expect (_rtld_local_ro._dl_debug_mask & (1 << 7), 0)) { print_statistics (((void *)0)); } return start_addr; } static Elf64_Addr __attribute__ ((__used__)) _dl_start (void *arg) { # 372 "rtld.c" # 1 "dynamic-link.h" 1 # 21 "dynamic-link.h" # 1 "../include/assert.h" 1 # 1 "../assert/assert.h" 1 # 65 "../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 __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"))); # 22 "dynamic-link.h" 2 # 44 "dynamic-link.h" auto inline void __attribute__((always_inline)) elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, const Elf64_Sym *sym, const struct r_found_version *version, void *const reloc_addr); auto inline void __attribute__((always_inline)) elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, void *const reloc_addr); auto inline void __attribute__((always_inline)) elf_machine_lazy_rel (struct link_map *map, Elf64_Addr l_addr, const Elf64_Rela *reloc); # 1 "../sysdeps/s390/s390-64/dl-machine.h" 1 # 252 "../sysdeps/s390/s390-64/dl-machine.h" auto inline void __attribute__ ((always_inline)) elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, const Elf64_Sym *sym, const struct r_found_version *version, void *const reloc_addr_arg) { Elf64_Addr *const reloc_addr = reloc_addr_arg; const unsigned int r_type = ((reloc->r_info) & 0xffffffff); # 280 "../sysdeps/s390/s390-64/dl-machine.h" if (__builtin_expect (r_type == 0, 0)) return; else { const Elf64_Sym *const refsym = sym; struct link_map *sym_map = ((*(&sym))->st_shndx == 0 ? 0 : &_rtld_local._dl_rtld_map); Elf64_Addr value = sym == ((void *)0) ? 0 : sym_map->l_addr + sym->st_value; switch (r_type) { case 10: case 11: *reloc_addr = value + reloc->r_addend; break; # 408 "../sysdeps/s390/s390-64/dl-machine.h" } } } auto inline void __attribute__ ((always_inline)) elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, void *const reloc_addr_arg) { Elf64_Addr *const reloc_addr = reloc_addr_arg; *reloc_addr = l_addr + reloc->r_addend; } auto inline void __attribute__ ((always_inline)) elf_machine_lazy_rel (struct link_map *map, Elf64_Addr l_addr, const Elf64_Rela *reloc) { Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); const unsigned int r_type = ((reloc->r_info) & 0xffffffff); if (__builtin_expect (r_type == 11, 1)) { if (__builtin_expect (map->l_mach.plt, 0) == 0) *reloc_addr += l_addr; else *reloc_addr = map->l_mach.plt + (((Elf64_Addr) reloc_addr) - map->l_mach.gotplt) * 4; } else _dl_reloc_bad_type (map, r_type, 1); } # 64 "dynamic-link.h" 2 # 78 "dynamic-link.h" auto inline void __attribute__ ((unused, always_inline)) elf_get_dynamic_info (struct link_map *l, Elf64_Dyn *temp) { Elf64_Dyn *dyn = l->l_ld; Elf64_Dyn **info; info = l->l_info; while (dyn->d_tag != 0) { if (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 (dyn->d_tag >= 0x6cbdd030 && dyn->d_tag < 0x6cbdd030 + 2) info[(34 + 0 + 16 + 3 + 12 + 10 + (dyn->d_tag - 0x6cbdd030))] = dyn; else if ((Elf32_Word) (0x6fffffff - (dyn->d_tag)) < 16) info[(34 + 0 + (0x6fffffff - (dyn->d_tag)))] = dyn; else if ((Elf32_Word) ((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 ((Elf32_Word) (0x6ffffdff - (dyn->d_tag)) < 12) info[(0x6ffffdff - (dyn->d_tag)) + 34 + 0 + 16 + 3] = dyn; else if ((Elf32_Word) (0x6ffffeff - (dyn->d_tag)) < 10) info[(0x6ffffeff - (dyn->d_tag)) + 34 + 0 + 16 + 3 + 12] = dyn; ++dyn; } if (l->l_addr != 0) { Elf64_Addr l_addr = l->l_addr; int cnt = 0; # 141 "dynamic-link.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[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[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_un.d_ptr + l_addr; info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))] = temp + cnt++; } else info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 - 0x6cbdd030))]->d_un.d_ptr += l_addr; } while (0); do if (info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))] != ((void *)0)) { if (temp) { temp[cnt].d_tag = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_tag; temp[cnt].d_un.d_ptr = info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_un.d_ptr + l_addr; info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))] = temp + cnt++; } else info[(34 + 0 + 16 + 3 + 12 + 10 + (0x6cbdd030 + 1 - 0x6cbdd030))]->d_un.d_ptr += l_addr; } while (0); ((void) ((cnt <= 8) ? 0 : (__assert_fail ("cnt <= 8", "dynamic-link.h", 156, __PRETTY_FUNCTION__), 0))); } if (info[20] != ((void *)0)) { ((void) ((info[20]->d_un.d_val == 7) ? 0 : (__assert_fail ("info[20]->d_un.d_val == 7", "dynamic-link.h", 164, __PRETTY_FUNCTION__), 0))); } if (info[7] != ((void *)0)) ((void) ((info[9]->d_un.d_val == sizeof (Elf64_Rela)) ? 0 : (__assert_fail ("info[9]->d_un.d_val == sizeof (Elf64_Rela)", "dynamic-link.h", 172, __PRETTY_FUNCTION__), 0))); ((void) ((info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))] == ((void *)0) || info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))]->d_un.d_val == 0x00000001) ? 0 : (__assert_fail ("info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))] == ((void *)0) || info[(34 + 0 + (0x6fffffff - (0x6ffffffb)))]->d_un.d_val == 0x00000001", "dynamic-link.h", 181, __PRETTY_FUNCTION__), 0))); ((void) ((info[30] == ((void *)0) || info[30]->d_un.d_val == 0x00000008) ? 0 : (__assert_fail ("info[30] == ((void *)0) || info[30]->d_un.d_val == 0x00000008", "dynamic-link.h", 183, __PRETTY_FUNCTION__), 0))); ((void) ((info[29] == ((void *)0)) ? 0 : (__assert_fail ("info[29] == ((void *)0)", "dynamic-link.h", 185, __PRETTY_FUNCTION__), 0))); ((void) ((info[15] == ((void *)0)) ? 0 : (__assert_fail ("info[15] == ((void *)0)", "dynamic-link.h", 186, __PRETTY_FUNCTION__), 0))); # 213 "dynamic-link.h" } # 333 "dynamic-link.h" # 1 "do-rel.h" 1 # 52 "do-rel.h" auto inline void __attribute__ ((always_inline)) elf_dynamic_do_rela (struct link_map *map, Elf64_Addr reladdr, Elf64_Addr relsize, int lazy) { const Elf64_Rela *r = (const void *) reladdr; const Elf64_Rela *end = (const void *) (reladdr + relsize); Elf64_Addr l_addr = map->l_addr; # 73 "do-rel.h" { const Elf64_Sym *const symtab = (const void *) (map)->l_info[6]->d_un.d_ptr; Elf64_Word nrelative = (map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff9)))] == ((void *)0) ? 0 : map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff9)))]->d_un.d_val); const Elf64_Rela *relative = r; r = r + (((nrelative)<(relsize / sizeof (Elf64_Rela)))?(nrelative):(relsize / sizeof (Elf64_Rela))); # 104 "do-rel.h" for (; relative < r; ++relative) elf_machine_rela_relative (l_addr, relative, (void *) (l_addr + relative->r_offset)); ((void) ((map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)) ? 0 : (__assert_fail ("map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))] != ((void *)0)", "do-rel.h", 109, __PRETTY_FUNCTION__), 0))); { const Elf64_Half *const version = (const void *) (map)->l_info[(34 + 0 + (0x6fffffff - (0x6ffffff0)))]->d_un.d_ptr; for (; r < end; ++r) { Elf64_Half ndx = version[((r->r_info) >> 32)] & 0x7fff; elf_machine_rela (map, r, &symtab[((r->r_info) >> 32)], &map->l_versions[ndx], (void *) (l_addr + r->r_offset)); } } } } # 334 "dynamic-link.h" 2 # 373 "rtld.c" 2 if ((0) && (0)) ; # 399 "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)); # 530 "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 { Elf64_Addr start, size; int lazy; } ranges[2]; ranges[0].lazy = 0; ranges[0].size = ranges[1].size = 0; ranges[0].start = 0; if (((&_rtld_local._dl_rtld_map))->l_info[7]) { ranges[0].start = (((&_rtld_local._dl_rtld_map)))->l_info[7]->d_un.d_ptr; ranges[0].size = ((&_rtld_local._dl_rtld_map))->l_info[8]->d_un.d_val; } if (((&_rtld_local._dl_rtld_map))->l_info[20] && (!0 || ((&_rtld_local._dl_rtld_map))->l_info[20]->d_un.d_val == 7)) { Elf64_Addr start = (((&_rtld_local._dl_rtld_map)))->l_info[23]->d_un.d_ptr; if (! (1) && ((edr_lazy) || ranges[0].start + ranges[0].size != start)) { ranges[1].start = start; ranges[1].size = ((&_rtld_local._dl_rtld_map))->l_info[2]->d_un.d_val; ranges[1].lazy = (edr_lazy); } else { ((void) ((ranges[0].start + ranges[0].size == start) ? 0 : (__assert_fail ("ranges[0].start + ranges[0].size == start", "rtld.c", 535, __PRETTY_FUNCTION__), 0))); ranges[0].size += ((&_rtld_local._dl_rtld_map))->l_info[2]->d_un.d_val; } } if ((1)) elf_dynamic_do_rela (((&_rtld_local._dl_rtld_map)), ranges[0].start, ranges[0].size, 0); else { int ranges_index; for (ranges_index = 0; ranges_index < 2; ++ranges_index) elf_dynamic_do_rela (((&_rtld_local._dl_rtld_map)), ranges[ranges_index].start, ranges[ranges_index].size, ranges[ranges_index].lazy); } } while (0); } while (0); } _rtld_local._dl_rtld_map.l_relocated = 1; # 549 "rtld.c" { Elf64_Addr entry = _dl_start_final (arg); # 560 "rtld.c" return (entry); } } # 572 "rtld.c" struct relocate_args { struct link_map *l; int lazy; }; struct map_args { char *str; struct link_map *loader; int is_preloaded; 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->lazy, 0); } static void map_doit (void *a) { struct map_args *args = (struct map_args *) a; args->map = _dl_map_object (args->loader, args->str, args->is_preloaded, lt_library, 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, dl_main, -1, _dl_argc, _dl_argv_internal, __environ); } static void lookup_doit (void *a) { struct lookup_args *args = (struct lookup_args *) a; const Elf64_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; Elf64_Verdef *def; if (map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffc)))] == ((void *)0)) return 0; def = (Elf64_Verdef *) ((char *) map->l_addr + map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffc)))]->d_un.d_ptr); while (1) { Elf64_Verdaux *aux = (Elf64_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); register 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 *__s1 = (__const unsigned char *) (__const char *) (string); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (strtab + aux->vda_name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (strtab + aux->vda_name))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (strtab + aux->vda_name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (strtab + aux->vda_name))[3]); } } __result; }))) : __builtin_strcmp (string, strtab + aux->vda_name)))); }) == 0) return 1; if (def->vd_next == 0) break; def = (Elf64_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); ((void) ((_rtld_local._dl_ns[0 + 1]._ns_loaded == ((void *)0)) ? 0 : (__assert_fail ("_rtld_local._dl_ns[0 + 1]._ns_loaded == ((void *)0)", "rtld.c", 738, __PRETTY_FUNCTION__), 0))); 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; } ((void) ((i == _rtld_local._dl_tls_max_dtv_idx) ? 0 : (__assert_fail ("i == _rtld_local._dl_tls_max_dtv_idx", "rtld.c", 750, __PRETTY_FUNCTION__), 0))); _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; _head->tcb = _thrdescr; _head->self = _thrdescr; ; __builtin_set_thread_pointer (_thrdescr); ((void *)0); }); 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.is_preloaded = 1; args.mode = 0; 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: ignored.\n", fname, where); } 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 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 Elf64_Phdr *phdr, Elf64_Word phnum, Elf64_Addr *user_entry) { const Elf64_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; 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); if (*user_entry == (Elf64_Addr) _start) { # 914 "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"); register 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 *__s1 = (__const unsigned char *) (__const char *) (_dl_argv_internal[1]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("--list"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("--list"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("--list"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("--list"))[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"); register 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 *__s1 = (__const unsigned char *) (__const char *) (_dl_argv_internal[1]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("--verify"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("--verify"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("--verify"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("--verify"))[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 ("--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"); register 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 *__s1 = (__const unsigned char *) (__const char *) (_dl_argv_internal[1]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("--library-path"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("--library-path"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("--library-path"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("--library-path"))[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"); register 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 *__s1 = (__const unsigned char *) (__const char *) (_dl_argv_internal[1]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("--inhibit-rpath"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("--inhibit-rpath"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("--inhibit-rpath"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("--inhibit-rpath"))[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"); register 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 *__s1 = (__const unsigned char *) (__const char *) (_dl_argv_internal[1]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("--audit"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("--audit"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("--audit"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("--audit"))[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 --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"); exit_internal (127); } while (1); # 991 "rtld.c" ++_dl_skip_args; --_dl_argc; ++_dl_argv_internal; # 1007 "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.is_preloaded = 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 { ; _dl_map_object (((void *)0), (_dl_argv_internal[0]), 0, lt_library, 0, 0x20000000, 0); ; ; } main_map = _rtld_local._dl_ns[0]._ns_loaded; phdr = main_map->l_phdr; phnum = main_map->l_phnum; main_map->l_name = (char *) ""; *user_entry = main_map->l_entry; } else { main_map = _dl_new_object ((char *) "", "", lt_executable, ((void *)0), 0x20000000, 0); ((void) ((main_map != ((void *)0)) ? 0 : (__assert_fail ("main_map != ((void *)0)", "rtld.c", 1060, __PRETTY_FUNCTION__), 0))); ((void) ((main_map == _rtld_local._dl_ns[0]._ns_loaded) ? 0 : (__assert_fail ("main_map == _rtld_local._dl_ns[0]._ns_loaded", "rtld.c", 1061, __PRETTY_FUNCTION__), 0))); main_map->l_phdr = phdr; main_map->l_phnum = phnum; main_map->l_entry = *user_entry; # 1083 "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 = (Elf64_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: { Elf64_Addr mapstart; Elf64_Addr allocend; mapstart = (main_map->l_addr + (ph->p_vaddr & ~(ph->p_align - 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 ((void) ((_rtld_local._dl_rtld_map.l_libname) ? 0 : (__assert_fail ("_rtld_local._dl_rtld_map.l_libname", "rtld.c", 1217, __PRETTY_FUNCTION__), 0))); 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); register 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 *__s1 = (__const unsigned char *) (__const char *) (_rtld_local._dl_rtld_map.l_libname->name); register int __result = __s1[0] - ((__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]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__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]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__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]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__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]); } } __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; ((void) ((_rtld_local._dl_rtld_map.l_libname->next == ((void *)0)) ? 0 : (__assert_fail ("_rtld_local._dl_rtld_map.l_libname->next == ((void *)0)", "rtld.c", 1232, __PRETTY_FUNCTION__), 0))); _rtld_local._dl_rtld_map.l_libname->next = &newname; } ((void) ((_rtld_local._dl_rtld_map.l_relocated) ? 0 : (__assert_fail ("_rtld_local._dl_rtld_map.l_relocated", "rtld.c", 1237, __PRETTY_FUNCTION__), 0))); 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); exit_internal (has_interp ? 0 : 2); } struct link_map **first_preload = &_rtld_local._dl_rtld_map.l_next; if (_rtld_local_ro._dl_sysinfo_dso != ((void *)0)) { struct link_map *l = _dl_new_object ((char *) "", "", lt_library, ((void *)0), 0, 0); if (__builtin_expect (l != ((void *)0), 1)) { static Elf64_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 Elf64_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 (Elf64_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 ((void) ((ph->p_type != 7) ? 0 : (__assert_fail ("ph->p_type != 7", "rtld.c", 1303, __PRETTY_FUNCTION__), 0))); } l->l_map_start = (Elf64_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 *) ((Elf64_Addr) l->l_ld + l->l_addr); elf_get_dynamic_info (l, dyn_temp); _dl_setup_hash (l); l->l_relocated = 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); 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); } ((void) ((l->l_next == ((void *)0)) ? 0 : (__assert_fail ("l->l_next == ((void *)0)", "rtld.c", 1339, __PRETTY_FUNCTION__), 0))); ((void) ((l->l_prev == main_map) ? 0 : (__assert_fail ("l->l_prev == main_map", "rtld.c", 1340, __PRETTY_FUNCTION__), 0))); _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; } } 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 + 9) > 0 && version < (2 * 65536 + 6 * 256 + 9)) dl_fatal ("FATAL: kernel too old\n"); } else if ((2 * 65536 + 6 * 256 + 9) > 0) dl_fatal ("FATAL: cannot determine kernel version\n"); } 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 == (Elf64_Addr) -2) _rtld_local_ro._dl_use_load_bias = main_map->l_addr == 0 ? -1 : 0; Elf64_Ehdr *rtld_ehdr = (Elf64_Ehdr *) _rtld_local._dl_rtld_map.l_map_start; Elf64_Phdr *rtld_phdr = (Elf64_Phdr *) (_rtld_local._dl_rtld_map.l_map_start + 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; do { int tls_idx = _rtld_local._dl_tls_max_dtv_idx; # 1432 "rtld.c" tcbp = init_tls (); 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_symbind64\0" "la_" "s390_64_gnu_pltenter" "\0" "la_" "s390_64_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'); ((void) ((cnt == 8) ? 0 : (__assert_fail ("cnt == 8", "rtld.c", 1521, __PRETTY_FUNCTION__), 0))); 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); ((void) ((_rtld_local._dl_ns[ns]._ns_loaded == ((void *)0)) ? 0 : (__assert_fail ("_rtld_local._dl_ns[ns]._ns_loaded == ((void *)0)", "rtld.c", 1545, __PRETTY_FUNCTION__), 0))); ((void) ((_rtld_local._dl_ns[ns]._ns_nloaded == 0) ? 0 : (__assert_fail ("_rtld_local._dl_ns[ns]._ns_nloaded == 0", "rtld.c", 1546, __PRETTY_FUNCTION__), 0))); _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; } } } } if (main_map->l_info[21] != ((void *)0)) main_map->l_info[21]->d_un.d_ptr = (Elf64_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 = (Elf64_Addr) r; r->r_state = RT_ADD; _dl_debug_state (); 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; } } ((void) ((*first_preload == ((void *)0)) ? 0 : (__assert_fail ("*first_preload == ((void *)0)", "rtld.c", 1624, __PRETTY_FUNCTION__), 0))); 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; ; 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"); ; ; ; } 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'; } ; 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); } ; ; ; __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); ((void) ((i == npreloads) ? 0 : (__assert_fail ("i == npreloads", "rtld.c", 1747, __PRETTY_FUNCTION__), 0))); } ; _dl_map_object_deps (main_map, preloads, npreloads, mode == trace, 0); ; ; ; for (i = main_map->l_searchlist.r_nlist; i > 0; ) main_map->l_searchlist.r_list[--i]->l_global = 1; # 1770 "rtld.c" _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; ((void) ((_rtld_local._dl_rtld_map.l_prev->l_next == _rtld_local._dl_rtld_map.l_next) ? 0 : (__assert_fail ("_rtld_local._dl_rtld_map.l_prev->l_next == _rtld_local._dl_rtld_map.l_next", "rtld.c", 1808, __PRETTY_FUNCTION__), 0))); _rtld_local._dl_rtld_map.l_prev->l_next = &_rtld_local._dl_rtld_map; if (_rtld_local._dl_rtld_map.l_next != ((void *)0)) { ((void) ((_rtld_local._dl_rtld_map.l_next->l_prev == _rtld_local._dl_rtld_map.l_prev) ? 0 : (__assert_fail ("_rtld_local._dl_rtld_map.l_next->l_prev == _rtld_local._dl_rtld_map.l_prev", "rtld.c", 1812, __PRETTY_FUNCTION__), 0))); _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); } # 1834 "rtld.c" _Bool was_tls_init_tp_called = tls_init_tp_called; if (tcbp == ((void *)0)) tcbp = init_tls (); uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (); __guard_local = stack_chk_guard; ((struct pthread *) __builtin_thread_pointer ())->header.stack_guard = (stack_chk_guard); if (_rtld_local_ro._dl_pointer_guard) { uintptr_t pointer_chk_guard = stack_chk_guard; ; __pointer_chk_guard_local = pointer_chk_guard; } if (__builtin_expect (mode, normal) != normal) { struct link_map *l; if (_rtld_local_ro._dl_debug_mask & (1 << 10)) { 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]) ?: "
", l->l_name[0] ? l->l_name : (_dl_argv_internal[0]) ?: "
", (int) sizeof l->l_map_start * 2, (size_t) l->l_map_start, (int) sizeof l->l_addr * 2, (size_t) l->l_addr); # 1898 "rtld.c" 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, .lazy = _rtld_local_ro._dl_lazy }; _dl_receive_error (print_unresolved, relocate_doit, &args); Elf64_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->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); register 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 *__s1 = (__const unsigned char *) (__const char *) (l->l_libname->name); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (l->l_name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (l->l_name))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (l->l_name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (l->l_name))[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 Elf64_Sym *ref = ((void *)0); Elf64_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; struct link_map *l; args.lazy = _rtld_local_ro._dl_lazy; l = main_map; while (l->l_next != ((void *)0)) l = l->l_next; do { if (l != &_rtld_local._dl_rtld_map && ! l->l_faked) { args.l = l; _dl_receive_error (print_unresolved, relocate_doit, &args); } l = l->l_prev; } while (l != ((void *)0)); if ((_rtld_local_ro._dl_debug_mask & (1 << 10)) && rtld_multiple_ref) { _rtld_local._dl_rtld_map.l_relocated = 0; _dl_relocate_object (&_rtld_local._dl_rtld_map, main_map->l_scope, 0, 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; Elf64_Dyn *dyn = map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffe)))]; Elf64_Verneed *ent; if (dyn == ((void *)0)) continue; strtab = (const void *) (map)->l_info[5]->d_un.d_ptr; ent = (Elf64_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])); while (1) { Elf64_Vernaux *aux; struct link_map *needed; needed = find_needed (strtab + ent->vn_file); aux = (Elf64_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 = (Elf64_Vernaux *) ((char *) aux + aux->vna_next); } if (ent->vn_next == 0) break; ent = (Elf64_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)) { Elf64_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; ((void) ((main_map->l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf7)))] != ((void *)0)) ? 0 : (__assert_fail ("main_map->l_info[(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf7)))] != ((void *)0)", "rtld.c", 2101, __PRETTY_FUNCTION__), 0))); liblist = (Elf64_Lib *) main_map->l_info[(34 + 0 + 16 + 3 + 12 + (0x6ffffeff - (0x6ffffef9)))]->d_un.d_ptr; liblistend = (Elf64_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._dl_ns[0]._ns_global_scope[0] = &main_map->l_searchlist; _rtld_local_ro._dl_initial_searchlist = *_rtld_local._dl_ns[0]._ns_main_searchlist; if (prelinked) { if (main_map->l_info [(34 + 0 + 16 + 3 + 12 + (0x6ffffeff - (0x6ffffef8)))] != ((void *)0)) { Elf64_Rela *conflict, *conflictend; ; ((void) ((main_map->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf6)))] != ((void *)0)) ? 0 : (__assert_fail ("main_map->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf6)))] != ((void *)0)", "rtld.c", 2167, __PRETTY_FUNCTION__), 0))); conflict = (Elf64_Rela *) main_map->l_info [(34 + 0 + 16 + 3 + 12 + (0x6ffffeff - (0x6ffffef8)))]->d_un.d_ptr; conflictend = (Elf64_Rela *) ((char *) conflict + main_map->l_info [(34 + 0 + 16 + 3 + (0x6ffffdff - (0x6ffffdf6)))]->d_un.d_val); _dl_resolve_conflicts (main_map, conflict, conflictend); ; ; } 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); } _dl_sysdep_start_cleanup (); } else { # 2206 "rtld.c" int consider_profiling = _rtld_local_ro._dl_profile != ((void *)0); _rtld_local_ro._dl_lazy |= consider_profiling; struct link_map *l = main_map; while (l->l_next) l = l->l_next; ; do { struct libname_list *lnp = l->l_libname->next; while (__builtin_expect (lnp != ((void *)0), 0)) { lnp->dont_free = 1; lnp = lnp->next; } if (l != &_rtld_local._dl_rtld_map) _dl_relocate_object (l, l->l_scope, _rtld_local_ro._dl_lazy, consider_profiling); if (l->l_tls_blocksize != 0 && tls_init_tp_called) _dl_add_to_slotinfo (l); l = l->l_prev; } while (l); ; ; _dl_sysdep_start_cleanup (); if (__builtin_expect (_rtld_local._dl_profile_map != ((void *)0), 0)) _dl_start_profile (); if (rtld_multiple_ref) { ; _rtld_local._dl_rtld_map.l_relocated = 0; _dl_relocate_object (&_rtld_local._dl_rtld_map, main_map->l_scope, 0, 0); ; ; ; } } if (!was_tls_init_tp_called && _rtld_local._dl_tls_max_dtv_idx > 0) ++_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; _head->tcb = _thrdescr; _head->self = _thrdescr; ; __builtin_set_thread_pointer (_thrdescr); ((void *)0); }); 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); } 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 (); _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]) ?: "
"; _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]) ?: "", 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 ("all") - 1, "all", "all previous options combined", (1 << 0) | (1 << 5) | (1 << 6) | (1 << 3) | (1 << 2) | (1 << 4) | (1 << 1) }, { 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 << 9) }, }; 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 << 9)) { 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 << 10); _rtld_local_ro._dl_trace_prelink = &envline[17]; } break; case 20: if (memcmp (envline, "TRACE_LOADED_OBJECTS", 20) == 0) mode = trace; break; # 2659 "rtld.c" } } *modep = mode; if (__builtin_expect (__libc_enable_secure_internal, 0)) { static const char unsecure_envvars[] = "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" "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) { # 2760 "rtld.c" unsigned long int num_relative_relocations = 0; for (Lmid_t ns = 0; ns < 16; ++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); # 2823 "rtld.c" }