Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 87271 Details for
Bug 133937
dev-libs/elfutils-0.118 can't be emerged
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
resulting "readelf.i"
readelf.i (text/plain), 516.63 KB, created by
AlexStar
on 2006-05-22 11:22:32 UTC
(
hide
)
Description:
resulting "readelf.i"
Filename:
MIME Type:
Creator:
AlexStar
Created:
2006-05-22 11:22:32 UTC
Size:
516.63 KB
patch
obsolete
># 1 "readelf.c" ># 1 "<built-in>" >#define __STDC_VERSION__ 199901L >#define __GXX_ABI_VERSION 102 >#define __SIZE_TYPE__ unsigned int >#define __PTRDIFF_TYPE__ int >#define __WCHAR_TYPE__ long int >#define __WINT_TYPE__ unsigned int >#define __SCHAR_MAX__ 127 >#define __SHRT_MAX__ 32767 >#define __INT_MAX__ 2147483647 >#define __LONG_MAX__ 2147483647L >#define __LONG_LONG_MAX__ 9223372036854775807LL >#define __WCHAR_MAX__ 2147483647 >#define __CHAR_BIT__ 8 >#define __FLT_EVAL_METHOD__ 2 >#define __FLT_RADIX__ 2 >#define __FLT_MANT_DIG__ 24 >#define __FLT_DIG__ 6 >#define __FLT_MIN_EXP__ (-125) >#define __FLT_MIN_10_EXP__ (-37) >#define __FLT_MAX_EXP__ 128 >#define __FLT_MAX_10_EXP__ 38 >#define __FLT_MAX__ 3.40282347e+38F >#define __FLT_MIN__ 1.17549435e-38F >#define __FLT_EPSILON__ 1.19209290e-7F >#define __FLT_DENORM_MIN__ 1.40129846e-45F >#define __DBL_MANT_DIG__ 53 >#define __DBL_DIG__ 15 >#define __DBL_MIN_EXP__ (-1021) >#define __DBL_MIN_10_EXP__ (-307) >#define __DBL_MAX_EXP__ 1024 >#define __DBL_MAX_10_EXP__ 308 >#define __DBL_MAX__ 1.7976931348623157e+308 >#define __DBL_MIN__ 2.2250738585072014e-308 >#define __DBL_EPSILON__ 2.2204460492503131e-16 >#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 >#define __LDBL_MANT_DIG__ 64 >#define __LDBL_DIG__ 18 >#define __LDBL_MIN_EXP__ (-16381) >#define __LDBL_MIN_10_EXP__ (-4931) >#define __LDBL_MAX_EXP__ 16384 >#define __LDBL_MAX_10_EXP__ 4932 >#define __DECIMAL_DIG__ 21 >#define __LDBL_MAX__ 1.18973149535723176502e+4932L >#define __LDBL_MIN__ 3.36210314311209350626e-4932L >#define __LDBL_EPSILON__ 1.08420217248550443401e-19L >#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L >#define __REGISTER_PREFIX__ >#define __USER_LABEL_PREFIX__ >#define __VERSION__ "3.3.6 (Gentoo 3.3.6, ssp-3.3.6-1.0, pie-8.7.8)" >#define __OPTIMIZE__ 1 >#define __STDC_HOSTED__ 1 >#define __FINITE_MATH_ONLY__ 0 > > >#define __i386 1 >#define __i386__ 1 >#define i386 1 >#define __tune_athlon__ 1 >#define __tune_athlon_sse__ 1 >#define __MMX__ 1 >#define __3dNOW__ 1 >#define __3dNOW_A__ 1 >#define __SSE__ 1 >#define __athlon 1 >#define __athlon__ 1 >#define __athlon_sse__ 1 >#define __linux 1 >#define __linux__ 1 >#define linux 1 >#define __unix 1 >#define __unix__ 1 >#define unix 1 >#define __ELF__ 1 >#define __gnu_linux__ 1 ># 1 "<command line>" >#define __GNUC__ 3 >#define __GNUC_MINOR__ 3 >#define __GNUC_PATCHLEVEL__ 6 >#define _GNU_SOURCE 1 >#define HAVE_CONFIG_H 1 ># 1 "readelf.c" ># 16 "readelf.c" ># 1 "../config.h" 1 > > > > >#define LIBEBL_SUBDIR "elfutils" > > >#define LOCALEDIR "/usr/share" > > >#define MODVERSION "Build on Gentoo2 2006-05-21T13:40:57+0000" > > > > > >#define PACKAGE "elfutils" > > >#define PACKAGE_BUGREPORT "http://bugzilla.redhat.com/bugzilla/" > > >#define PACKAGE_NAME "Red Hat elfutils" > > >#define PACKAGE_STRING "Red Hat elfutils 0.118" > > >#define PACKAGE_TARNAME "elfutils" > > >#define PACKAGE_VERSION "0.118" > > > > > >#define VERSION "0.118" > > > >#define YYTEXT_POINTER 1 > > >#define _FILE_OFFSET_BITS 64 ># 54 "../config.h" >#define lock_lock(lock) ((void) (lock)) >#define rwlock_define(class,name) class int name >#define rwlock_init(lock) ((void) (lock)) >#define rwlock_fini(lock) ((void) (lock)) >#define rwlock_rdlock(lock) ((void) (lock)) >#define rwlock_wrlock(lock) ((void) (lock)) >#define rwlock_unlock(lock) ((void) (lock)) >#define tls_key_t void * >#define key_create(keyp,freefct) (1) >#define getspecific(key) key >#define setspecific(key,val) key = val >#define once_define(class,name) class int name >#define once_execute(name,fct) do { if (name == 0) fct (); name = 1; } while (0) > > > > > > > >#define N_(Str) Str > > >#define strong_alias(name,aliasname) extern __typeof (name) aliasname __attribute__ ((alias (#name))); > > > >#define internal_function_def __attribute__ ((regparm (3), stdcall)) > > > > >#define internal_function internal_function_def __attribute__ ((visibility ("internal"))) > >#define internal_strong_alias(name,aliasname) extern __typeof (name) aliasname __attribute__ ((alias (#name), visibility ("internal"))) internal_function_def; > > >#define attribute_hidden __attribute__ ((visibility ("hidden"))) > > > > > >#define ALLOW_UNALIGNED 1 > > > > >#define unlikely(expr) __builtin_expect (expr, 0) >#define likely(expr) __builtin_expect (expr, 1) > >#define obstack_calloc(ob,size) ({ size_t _s = (size); memset (obstack_alloc (ob, _s), '\0', _s); }) > >#define obstack_strdup(ob,str) ({ const char *_s = (str); obstack_copy0 (ob, _s, strlen (_s)); }) > >#define obstack_strndup(ob,str,n) ({ const char *_s = (str); obstack_copy0 (ob, _s, strnlen (_s, n)); }) > > > >#define flexarr_size > > > > > > >#define CALLING_CONVENTION regparm (3), stdcall >#define AND_CALLING_CONVENTION , regparm (3), stdcall ># 138 "../config.h" >#define INTUSE(name) name >#define INTDEF(name) >#define INTDECL(name) > > > >#define ELFUTILS_HEADER(name) <lib ##name.h> ># 17 "readelf.c" 2 > > ># 1 "/usr/include/argp.h" 1 3 4 ># 22 "/usr/include/argp.h" 3 4 >#define _ARGP_H > ># 1 "/usr/include/stdio.h" 1 3 4 ># 27 "/usr/include/stdio.h" 3 4 >#define _STDIO_H 1 ># 1 "/usr/include/features.h" 1 3 4 ># 20 "/usr/include/features.h" 3 4 >#define _FEATURES_H 1 ># 114 "/usr/include/features.h" 3 4 >#define __KERNEL_STRICT_NAMES > > > >#define __USE_ANSI 1 ># 128 "/usr/include/features.h" 3 4 >#define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) ># 146 "/usr/include/features.h" 3 4 >#define _ISOC99_SOURCE 1 > >#define _POSIX_SOURCE 1 > >#define _POSIX_C_SOURCE 199506L > >#define _XOPEN_SOURCE 600 > >#define _XOPEN_SOURCE_EXTENDED 1 > >#define _LARGEFILE64_SOURCE 1 > >#define _BSD_SOURCE 1 > >#define _SVID_SOURCE 1 ># 179 "/usr/include/features.h" 3 4 >#define __USE_ISOC99 1 ># 195 "/usr/include/features.h" 3 4 >#define __USE_POSIX 1 > > > >#define __USE_POSIX2 1 > > > >#define __USE_POSIX199309 1 > > > >#define __USE_POSIX199506 1 > > > > > > > >#define __USE_XOPEN 1 > >#define __USE_XOPEN_EXTENDED 1 >#define __USE_UNIX98 1 > >#define _LARGEFILE_SOURCE 1 > >#define __USE_XOPEN2K 1 >#undef __USE_ISOC99 >#define __USE_ISOC99 1 ># 234 "/usr/include/features.h" 3 4 >#define __USE_LARGEFILE 1 > > > >#define __USE_LARGEFILE64 1 > > > >#define __USE_FILE_OFFSET64 1 > > > >#define __USE_MISC 1 > > > >#define __USE_BSD 1 > > > >#define __USE_SVID 1 > > > >#define __USE_GNU 1 ># 274 "/usr/include/features.h" 3 4 >#define __STDC_IEC_559__ 1 >#define __STDC_IEC_559_COMPLEX__ 1 > > >#define __STDC_ISO_10646__ 200009L ># 287 "/usr/include/features.h" 3 4 >#define __GNU_LIBRARY__ 6 > > > >#define __GLIBC__ 2 >#define __GLIBC_MINOR__ 3 > >#define __GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) ># 303 "/usr/include/features.h" 3 4 >#define __GLIBC_HAVE_LONG_LONG 1 > > > > > ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 20 "/usr/include/sys/cdefs.h" 3 4 >#define _SYS_CDEFS_H 1 ># 46 "/usr/include/sys/cdefs.h" 3 4 >#define __THROW __attribute__ ((__nothrow__)) >#define __NTH(fct) __attribute__ ((__nothrow__)) fct ># 73 "/usr/include/sys/cdefs.h" 3 4 >#define __P(args) args >#define __PMT(args) args > > > > >#define __CONCAT(x,y) x ## y >#define __STRING(x) #x > > >#define __ptr_t void * >#define __long_double_t long double > > > > > > > >#define __BEGIN_DECLS >#define __END_DECLS ># 113 "/usr/include/sys/cdefs.h" 3 4 >#define __BEGIN_NAMESPACE_STD >#define __END_NAMESPACE_STD >#define __USING_NAMESPACE_STD(name) >#define __BEGIN_NAMESPACE_C99 >#define __END_NAMESPACE_C99 >#define __USING_NAMESPACE_C99(name) > > > > > >#define __bounded >#define __unbounded >#define __ptrvalue > > > > >#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) >#define __bos0(ptr) __builtin_object_size (ptr, 0) > > > > > >#define __flexarr [] ># 165 "/usr/include/sys/cdefs.h" 3 4 >#define __REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) > > > > >#define __REDIRECT_NTH(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) __THROW > > >#define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) >#define __ASMNAME2(prefix,cname) __STRING (prefix) cname ># 195 "/usr/include/sys/cdefs.h" 3 4 >#define __attribute_malloc__ __attribute__ ((__malloc__)) ># 204 "/usr/include/sys/cdefs.h" 3 4 >#define __attribute_pure__ __attribute__ ((__pure__)) ># 213 "/usr/include/sys/cdefs.h" 3 4 >#define __attribute_used__ __attribute__ ((__used__)) >#define __attribute_noinline__ __attribute__ ((__noinline__)) > > > > > > > >#define __attribute_deprecated__ __attribute__ ((__deprecated__)) ># 234 "/usr/include/sys/cdefs.h" 3 4 >#define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) ># 244 "/usr/include/sys/cdefs.h" 3 4 >#define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b))) ># 253 "/usr/include/sys/cdefs.h" 3 4 >#define __nonnull(params) __attribute__ ((__nonnull__ params)) ># 275 "/usr/include/sys/cdefs.h" 3 4 >#define __restrict_arr __restrict ># 310 "/usr/include/features.h" 2 3 4 ># 324 "/usr/include/features.h" 3 4 >#define __USE_EXTERN_INLINES 1 > > > > > > > ># 1 "/usr/include/gnu/stubs.h" 1 3 4 ># 10 "/usr/include/gnu/stubs.h" 3 4 >#define __stub___kernel_cosl >#define __stub___kernel_sinl >#define __stub___kernel_tanl >#define __stub_chflags >#define __stub_fattach >#define __stub_fchflags >#define __stub_fdetach >#define __stub_gtty >#define __stub_lchmod >#define __stub_lutimes >#define __stub_revoke >#define __stub_setlogin >#define __stub_sstk >#define __stub_stty ># 333 "/usr/include/features.h" 2 3 4 ># 29 "/usr/include/stdio.h" 2 3 4 > > > >#define __need_size_t >#define __need_NULL ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 188 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#define __size_t__ >#define __SIZE_T__ >#define _SIZE_T >#define _SYS_SIZE_T_H >#define _T_SIZE_ >#define _T_SIZE >#define __SIZE_T >#define _SIZE_T_ >#define _BSD_SIZE_T_ >#define _SIZE_T_DEFINED_ >#define _SIZE_T_DEFINED >#define _BSD_SIZE_T_DEFINED_ >#define _SIZE_T_DECLARED >#define ___int_size_t_h >#define _GCC_SIZE_T >#define _SIZET_ > > > >#define __size_t > > > > > >typedef unsigned int size_t; ># 235 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_size_t ># 402 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#define NULL ((void *)0) > > > > > >#undef __need_NULL ># 35 "/usr/include/stdio.h" 2 3 4 > ># 1 "/usr/include/bits/types.h" 1 3 4 ># 25 "/usr/include/bits/types.h" 3 4 >#define _BITS_TYPES_H 1 > > ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 19 "/usr/include/bits/wordsize.h" 3 4 >#define __WORDSIZE 32 ># 29 "/usr/include/bits/types.h" 2 3 4 > >#define __need_size_t ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 235 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_size_t ># 32 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned char __u_char; >typedef unsigned short int __u_short; >typedef unsigned int __u_int; >typedef unsigned long int __u_long; > > >typedef signed char __int8_t; >typedef unsigned char __uint8_t; >typedef signed short int __int16_t; >typedef unsigned short int __uint16_t; >typedef signed int __int32_t; >typedef unsigned int __uint32_t; > > > > >__extension__ typedef signed long long int __int64_t; >__extension__ typedef unsigned long long int __uint64_t; > > > > > > > >__extension__ typedef long long int __quad_t; >__extension__ typedef unsigned long long int __u_quad_t; ># 102 "/usr/include/bits/types.h" 3 4 >#define __S16_TYPE short int >#define __U16_TYPE unsigned short int >#define __S32_TYPE int >#define __U32_TYPE unsigned int >#define __SLONGWORD_TYPE long int >#define __ULONGWORD_TYPE unsigned long int > >#define __SQUAD_TYPE __quad_t >#define __UQUAD_TYPE __u_quad_t >#define __SWORD_TYPE int >#define __UWORD_TYPE unsigned int >#define __SLONG32_TYPE long int >#define __ULONG32_TYPE unsigned long int >#define __S64_TYPE __quad_t >#define __U64_TYPE __u_quad_t ># 129 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/typesizes.h" 1 3 4 ># 25 "/usr/include/bits/typesizes.h" 3 4 >#define _BITS_TYPESIZES_H 1 > > > > >#define __DEV_T_TYPE __UQUAD_TYPE >#define __UID_T_TYPE __U32_TYPE >#define __GID_T_TYPE __U32_TYPE >#define __INO_T_TYPE __ULONGWORD_TYPE >#define __INO64_T_TYPE __UQUAD_TYPE >#define __MODE_T_TYPE __U32_TYPE >#define __NLINK_T_TYPE __UWORD_TYPE >#define __OFF_T_TYPE __SLONGWORD_TYPE >#define __OFF64_T_TYPE __SQUAD_TYPE >#define __PID_T_TYPE __S32_TYPE >#define __RLIM_T_TYPE __ULONGWORD_TYPE >#define __RLIM64_T_TYPE __UQUAD_TYPE >#define __BLKCNT_T_TYPE __SLONGWORD_TYPE >#define __BLKCNT64_T_TYPE __SQUAD_TYPE >#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE >#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE >#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE >#define __FSFILCNT64_T_TYPE __UQUAD_TYPE >#define __ID_T_TYPE __U32_TYPE >#define __CLOCK_T_TYPE __SLONGWORD_TYPE >#define __TIME_T_TYPE __SLONGWORD_TYPE >#define __USECONDS_T_TYPE __U32_TYPE >#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE >#define __DADDR_T_TYPE __S32_TYPE >#define __SWBLK_T_TYPE __SLONGWORD_TYPE >#define __KEY_T_TYPE __S32_TYPE >#define __CLOCKID_T_TYPE __S32_TYPE >#define __TIMER_T_TYPE void * >#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE >#define __FSID_T_TYPE struct { int __val[2]; } >#define __SSIZE_T_TYPE __SWORD_TYPE > > >#define __FD_SETSIZE 1024 ># 130 "/usr/include/bits/types.h" 2 3 4 > > > >#define __STD_TYPE __extension__ typedef > > >__extension__ typedef __u_quad_t __dev_t; >__extension__ typedef unsigned int __uid_t; >__extension__ typedef unsigned int __gid_t; >__extension__ typedef unsigned long int __ino_t; >__extension__ typedef __u_quad_t __ino64_t; >__extension__ typedef unsigned int __mode_t; >__extension__ typedef unsigned int __nlink_t; >__extension__ typedef long int __off_t; >__extension__ typedef __quad_t __off64_t; >__extension__ typedef int __pid_t; >__extension__ typedef struct { int __val[2]; } __fsid_t; >__extension__ typedef long int __clock_t; >__extension__ typedef unsigned long int __rlim_t; >__extension__ typedef __u_quad_t __rlim64_t; >__extension__ typedef unsigned int __id_t; >__extension__ typedef long int __time_t; >__extension__ typedef unsigned int __useconds_t; >__extension__ typedef long int __suseconds_t; > >__extension__ typedef int __daddr_t; >__extension__ typedef long int __swblk_t; >__extension__ typedef int __key_t; > > >__extension__ typedef int __clockid_t; > > >__extension__ typedef void * __timer_t; > > >__extension__ typedef long int __blksize_t; > > > > >__extension__ typedef long int __blkcnt_t; >__extension__ typedef __quad_t __blkcnt64_t; > > >__extension__ typedef unsigned long int __fsblkcnt_t; >__extension__ typedef __u_quad_t __fsblkcnt64_t; > > >__extension__ typedef unsigned long int __fsfilcnt_t; >__extension__ typedef __u_quad_t __fsfilcnt64_t; > >__extension__ typedef int __ssize_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >__extension__ typedef int __intptr_t; > > >__extension__ typedef unsigned int __socklen_t; > > >#undef __STD_TYPE ># 37 "/usr/include/stdio.h" 2 3 4 >#define __need_FILE >#define __need___FILE > > > > > > > >typedef struct _IO_FILE FILE; > > > > > > > >#define __FILE_defined 1 > >#undef __need_FILE > > > > > >typedef struct _IO_FILE __FILE; > >#define ____FILE_defined 1 > >#undef __need___FILE > > > >#define _STDIO_USES_IOSTREAM > ># 1 "/usr/include/libio.h" 1 3 4 ># 30 "/usr/include/libio.h" 3 4 >#define _IO_STDIO_H > ># 1 "/usr/include/_G_config.h" 1 3 4 > > > > >#define _G_config_h 1 > > > > >#define __need_size_t >#define __need_wchar_t >#define __need_wint_t >#define __need_NULL ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 235 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_size_t ># 264 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#define __wchar_t__ >#define __WCHAR_T__ >#define _WCHAR_T >#define _T_WCHAR_ >#define _T_WCHAR >#define __WCHAR_T >#define _WCHAR_T_ >#define _BSD_WCHAR_T_ >#define _WCHAR_T_DEFINED_ >#define _WCHAR_T_DEFINED >#define _WCHAR_T_H >#define ___int_wchar_t_h >#define __INT_WCHAR_T_H >#define _GCC_WCHAR_T >#define _WCHAR_T_DECLARED ># 291 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef _BSD_WCHAR_T_ ># 325 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >typedef long int wchar_t; ># 344 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_wchar_t > > > > >#define _WINT_T > > > > >typedef unsigned int wint_t; > >#undef __need_wint_t ># 397 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef NULL > > > > >#define NULL ((void *)0) > > > > > >#undef __need_NULL ># 15 "/usr/include/_G_config.h" 2 3 4 ># 23 "/usr/include/_G_config.h" 3 4 >#define __need_mbstate_t ># 1 "/usr/include/wchar.h" 1 3 4 ># 47 "/usr/include/wchar.h" 3 4 >#define __need_wint_t ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 356 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_wint_t ># 49 "/usr/include/wchar.h" 2 3 4 > ># 1 "/usr/include/bits/wchar.h" 1 3 4 ># 21 "/usr/include/bits/wchar.h" 3 4 >#define _BITS_WCHAR_H 1 > >#define __WCHAR_MIN (-2147483647l - 1l) >#define __WCHAR_MAX (2147483647l) ># 51 "/usr/include/wchar.h" 2 3 4 ># 74 "/usr/include/wchar.h" 3 4 >#define __mbstate_t_defined 1 > >typedef struct >{ > int __count; > union > { > wint_t __wch; > char __wchb[4]; > } __value; >} __mbstate_t; > >#undef __need_mbstate_t ># 25 "/usr/include/_G_config.h" 2 3 4 >#define _G_size_t size_t >typedef struct >{ > __off_t __pos; > __mbstate_t __state; >} _G_fpos_t; >typedef struct >{ > __off64_t __pos; > __mbstate_t __state; >} _G_fpos64_t; >#define _G_ssize_t __ssize_t >#define _G_off_t __off_t >#define _G_off64_t __off64_t >#define _G_pid_t __pid_t >#define _G_uid_t __uid_t >#define _G_wchar_t wchar_t >#define _G_wint_t wint_t >#define _G_stat64 stat64 ># 1 "/usr/include/gconv.h" 1 3 4 ># 24 "/usr/include/gconv.h" 3 4 >#define _GCONV_H 1 > > >#define __need_mbstate_t ># 1 "/usr/include/wchar.h" 1 3 4 ># 47 "/usr/include/wchar.h" 3 4 >#define __need_wint_t ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 356 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_wint_t ># 49 "/usr/include/wchar.h" 2 3 4 ># 86 "/usr/include/wchar.h" 3 4 >#undef __need_mbstate_t ># 29 "/usr/include/gconv.h" 2 3 4 >#define __need_size_t >#define __need_wchar_t ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 235 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_size_t ># 344 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_wchar_t ># 32 "/usr/include/gconv.h" 2 3 4 > > >#define __UNKNOWN_10646_CHAR ((wchar_t) 0xfffd) > > >enum >{ > __GCONV_OK = 0, > __GCONV_NOCONV, > __GCONV_NODB, > __GCONV_NOMEM, > > __GCONV_EMPTY_INPUT, > __GCONV_FULL_OUTPUT, > __GCONV_ILLEGAL_INPUT, > __GCONV_INCOMPLETE_INPUT, > > __GCONV_ILLEGAL_DESCRIPTOR, > __GCONV_INTERNAL_ERROR >}; > > > >enum >{ > __GCONV_IS_LAST = 0x0001, > __GCONV_IGNORE_ERRORS = 0x0002 >}; > > > >struct __gconv_step; >struct __gconv_step_data; >struct __gconv_loaded_object; >struct __gconv_trans_data; > > > >typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *, > __const unsigned char **, __const unsigned char *, > unsigned char **, size_t *, int, int); > > >typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); > > >typedef int (*__gconv_init_fct) (struct __gconv_step *); >typedef void (*__gconv_end_fct) (struct __gconv_step *); > > > >typedef int (*__gconv_trans_fct) (struct __gconv_step *, > struct __gconv_step_data *, void *, > __const unsigned char *, > __const unsigned char **, > __const unsigned char *, unsigned char **, > size_t *); > > >typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *, > __const unsigned char *, > unsigned char *, unsigned char *); > > >typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***, > size_t *); > > >typedef int (*__gconv_trans_init_fct) (void **, const char *); >typedef void (*__gconv_trans_end_fct) (void *); > >struct __gconv_trans_data >{ > > __gconv_trans_fct __trans_fct; > __gconv_trans_context_fct __trans_context_fct; > __gconv_trans_end_fct __trans_end_fct; > void *__data; > struct __gconv_trans_data *__next; >}; > > > >struct __gconv_step >{ > struct __gconv_loaded_object *__shlib_handle; > __const char *__modname; > > int __counter; > > char *__from_name; > char *__to_name; > > __gconv_fct __fct; > __gconv_btowc_fct __btowc_fct; > __gconv_init_fct __init_fct; > __gconv_end_fct __end_fct; > > > > int __min_needed_from; > int __max_needed_from; > int __min_needed_to; > int __max_needed_to; > > > int __stateful; > > void *__data; >}; > > > >struct __gconv_step_data >{ > unsigned char *__outbuf; > unsigned char *__outbufend; > > > > int __flags; > > > > int __invocation_counter; > > > > int __internal_use; > > __mbstate_t *__statep; > __mbstate_t __state; > > > > struct __gconv_trans_data *__trans; >}; > > > >typedef struct __gconv_info >{ > size_t __nsteps; > struct __gconv_step *__steps; > __extension__ struct __gconv_step_data __data []; >} *__gconv_t; ># 45 "/usr/include/_G_config.h" 2 3 4 >typedef union >{ > struct __gconv_info __cd; > struct > { > struct __gconv_info __cd; > struct __gconv_step_data __data; > } __combined; >} _G_iconv_t; > >typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); >typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); > >#define _G_HAVE_BOOL 1 > > > >#define _G_HAVE_ATEXIT 1 >#define _G_HAVE_SYS_CDEFS 1 >#define _G_HAVE_SYS_WAIT 1 >#define _G_NEED_STDARG_H 1 >#define _G_va_list __gnuc_va_list > >#define _G_HAVE_PRINTF_FP 1 >#define _G_HAVE_MMAP 1 >#define _G_HAVE_MREMAP 1 >#define _G_HAVE_LONG_DOUBLE_IO 1 >#define _G_HAVE_IO_FILE_OPEN 1 >#define _G_HAVE_IO_GETLINE_INFO 1 > >#define _G_IO_IO_FILE_VERSION 0x20001 > >#define _G_OPEN64 __open64 >#define _G_LSEEK64 __lseek64 >#define _G_MMAP64 __mmap64 >#define _G_FSTAT64(fd,buf) __fxstat64 (_STAT_VER, fd, buf) > > >#define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE) > >#define _G_BUFSIZ 8192 > > >#define _G_NAMES_HAVE_UNDERSCORE 0 >#define _G_VTABLE_LABEL_HAS_LENGTH 1 >#define _G_USING_THUNKS 1 >#define _G_VTABLE_LABEL_PREFIX "__vt_" >#define _G_VTABLE_LABEL_PREFIX_ID __vt_ > > > >#define _G_ARGS(ARGLIST) ARGLIST ># 33 "/usr/include/libio.h" 2 3 4 > >#define _IO_pos_t _G_fpos_t >#define _IO_fpos_t _G_fpos_t >#define _IO_fpos64_t _G_fpos64_t >#define _IO_size_t _G_size_t >#define _IO_ssize_t _G_ssize_t >#define _IO_off_t _G_off_t >#define _IO_off64_t _G_off64_t >#define _IO_pid_t _G_pid_t >#define _IO_uid_t _G_uid_t >#define _IO_iconv_t _G_iconv_t >#define _IO_HAVE_SYS_WAIT _G_HAVE_SYS_WAIT >#define _IO_HAVE_ST_BLKSIZE _G_HAVE_ST_BLKSIZE >#define _IO_BUFSIZ _G_BUFSIZ >#define _IO_va_list _G_va_list >#define _IO_wint_t _G_wint_t > > > >#define __need___va_list ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stdarg.h" 1 3 4 ># 37 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stdarg.h" 3 4 >#undef __need___va_list > > > > >#define __GNUC_VA_LIST >typedef __builtin_va_list __gnuc_va_list; ># 54 "/usr/include/libio.h" 2 3 4 > >#undef _IO_va_list >#define _IO_va_list __gnuc_va_list ># 76 "/usr/include/libio.h" 3 4 >#define _PARAMS(protos) __P(protos) > > > > > > > >#define _IO_UNIFIED_JUMPTABLES 1 > > > > > >#define EOF (-1) ># 105 "/usr/include/libio.h" 3 4 >#define _IOS_INPUT 1 >#define _IOS_OUTPUT 2 >#define _IOS_ATEND 4 >#define _IOS_APPEND 8 >#define _IOS_TRUNC 16 >#define _IOS_NOCREATE 32 >#define _IOS_NOREPLACE 64 >#define _IOS_BIN 128 > > > > > > > >#define _IO_MAGIC 0xFBAD0000 >#define _OLD_STDIO_MAGIC 0xFABC0000 >#define _IO_MAGIC_MASK 0xFFFF0000 >#define _IO_USER_BUF 1 >#define _IO_UNBUFFERED 2 >#define _IO_NO_READS 4 >#define _IO_NO_WRITES 8 >#define _IO_EOF_SEEN 0x10 >#define _IO_ERR_SEEN 0x20 >#define _IO_DELETE_DONT_CLOSE 0x40 >#define _IO_LINKED 0x80 >#define _IO_IN_BACKUP 0x100 >#define _IO_LINE_BUF 0x200 >#define _IO_TIED_PUT_GET 0x400 >#define _IO_CURRENTLY_PUTTING 0x800 >#define _IO_IS_APPENDING 0x1000 >#define _IO_IS_FILEBUF 0x2000 >#define _IO_BAD_SEEN 0x4000 >#define _IO_USER_LOCK 0x8000 > >#define _IO_FLAGS2_MMAP 1 >#define _IO_FLAGS2_NOTCANCEL 2 > > > > > >#define _IO_SKIPWS 01 >#define _IO_LEFT 02 >#define _IO_RIGHT 04 >#define _IO_INTERNAL 010 >#define _IO_DEC 020 >#define _IO_OCT 040 >#define _IO_HEX 0100 >#define _IO_SHOWBASE 0200 >#define _IO_SHOWPOINT 0400 >#define _IO_UPPERCASE 01000 >#define _IO_SHOWPOS 02000 >#define _IO_SCIENTIFIC 04000 >#define _IO_FIXED 010000 >#define _IO_UNITBUF 020000 >#define _IO_STDIO 040000 >#define _IO_DONT_CLOSE 0100000 >#define _IO_BOOLALPHA 0200000 > > >struct _IO_jump_t; struct _IO_FILE; ># 176 "/usr/include/libio.h" 3 4 >typedef void _IO_lock_t; > > > > > >struct _IO_marker { > struct _IO_marker *_next; > struct _IO_FILE *_sbuf; > > > > int _pos; ># 199 "/usr/include/libio.h" 3 4 >}; > > >enum __codecvt_result >{ > __codecvt_ok, > __codecvt_partial, > __codecvt_error, > __codecvt_noconv >}; ># 267 "/usr/include/libio.h" 3 4 >struct _IO_FILE { > int _flags; >#define _IO_file_flags _flags > > > > char* _IO_read_ptr; > char* _IO_read_end; > char* _IO_read_base; > char* _IO_write_base; > char* _IO_write_ptr; > char* _IO_write_end; > char* _IO_buf_base; > char* _IO_buf_end; > > char *_IO_save_base; > char *_IO_backup_base; > char *_IO_save_end; > > struct _IO_marker *_markers; > > struct _IO_FILE *_chain; > > int _fileno; > > > > int _flags2; > > __off_t _old_offset; > >#define __HAVE_COLUMN > > unsigned short _cur_column; > signed char _vtable_offset; > char _shortbuf[1]; > > > > _IO_lock_t *_lock; ># 315 "/usr/include/libio.h" 3 4 > __off64_t _offset; > > > > > > void *__pad1; > void *__pad2; > > int _mode; > > char _unused2[15 * sizeof (int) - 2 * sizeof (void *)]; > >}; > > >typedef struct _IO_FILE _IO_FILE; > > >struct _IO_FILE_plus; > >extern struct _IO_FILE_plus _IO_2_1_stdin_; >extern struct _IO_FILE_plus _IO_2_1_stdout_; >extern struct _IO_FILE_plus _IO_2_1_stderr_; > >#define _IO_stdin ((_IO_FILE*)(&_IO_2_1_stdin_)) >#define _IO_stdout ((_IO_FILE*)(&_IO_2_1_stdout_)) >#define _IO_stderr ((_IO_FILE*)(&_IO_2_1_stderr_)) ># 354 "/usr/include/libio.h" 3 4 >typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); > > > > > > > >typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, > size_t __n); > > > > > > > >typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); > > >typedef int __io_close_fn (void *__cookie); > > > > >typedef __io_read_fn cookie_read_function_t; >typedef __io_write_fn cookie_write_function_t; >typedef __io_seek_fn cookie_seek_function_t; >typedef __io_close_fn cookie_close_function_t; > > >typedef struct >{ > __io_read_fn *read; > __io_write_fn *write; > __io_seek_fn *seek; > __io_close_fn *close; >} _IO_cookie_io_functions_t; >typedef _IO_cookie_io_functions_t cookie_io_functions_t; > >struct _IO_cookie_file; > > >extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, > void *__cookie, _IO_cookie_io_functions_t __fns); > > > > > > > >extern int __underflow (_IO_FILE *) __attribute__ ((__nothrow__)); >extern int __uflow (_IO_FILE *) __attribute__ ((__nothrow__)); >extern int __overflow (_IO_FILE *, int) __attribute__ ((__nothrow__)); >extern wint_t __wunderflow (_IO_FILE *) __attribute__ ((__nothrow__)); >extern wint_t __wuflow (_IO_FILE *) __attribute__ ((__nothrow__)); >extern wint_t __woverflow (_IO_FILE *, wint_t) __attribute__ ((__nothrow__)); > > >#define _IO_BE(expr,res) __builtin_expect (expr, res) > > > > >#define _IO_getc_unlocked(_fp) (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++) > > >#define _IO_peekc_unlocked(_fp) (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) && __underflow (_fp) == EOF ? EOF : *(unsigned char *) (_fp)->_IO_read_ptr) > > > >#define _IO_putc_unlocked(_ch,_fp) (_IO_BE ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end, 0) ? __overflow (_fp, (unsigned char) (_ch)) : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch))) > > > > >#define _IO_getwc_unlocked(_fp) (_IO_BE ((_fp)->_wide_data->_IO_read_ptr >= (_fp)->_wide_data->_IO_read_end, 0) ? __wuflow (_fp) : (_IO_wint_t) *(_fp)->_wide_data->_IO_read_ptr++) > > > >#define _IO_putwc_unlocked(_wch,_fp) (_IO_BE ((_fp)->_wide_data->_IO_write_ptr >= (_fp)->_wide_data->_IO_write_end, 0) ? __woverflow (_fp, _wch) : (_IO_wint_t) (*(_fp)->_wide_data->_IO_write_ptr++ = (_wch))) > > > > > >#define _IO_feof_unlocked(__fp) (((__fp)->_flags & _IO_EOF_SEEN) != 0) >#define _IO_ferror_unlocked(__fp) (((__fp)->_flags & _IO_ERR_SEEN) != 0) > >extern int _IO_getc (_IO_FILE *__fp) __attribute__ ((__nothrow__)); >extern int _IO_putc (int __c, _IO_FILE *__fp) __attribute__ ((__nothrow__)); >extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__)); >extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__)); > >extern int _IO_peekc_locked (_IO_FILE *__fp) __attribute__ ((__nothrow__)); > > >#define _IO_PENDING_OUTPUT_COUNT(_fp) ((_fp)->_IO_write_ptr - (_fp)->_IO_write_base) > > >extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__)); >extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__)); >extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__)); ># 466 "/usr/include/libio.h" 3 4 >#define _IO_peekc(_fp) _IO_peekc_unlocked (_fp) >#define _IO_flockfile(_fp) >#define _IO_funlockfile(_fp) >#define _IO_ftrylockfile(_fp) >#define _IO_cleanup_region_start(_fct,_fp) >#define _IO_cleanup_region_end(_Doit) > > >extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, > __gnuc_va_list, int *__restrict) __attribute__ ((__nothrow__)); >extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, > __gnuc_va_list) __attribute__ ((__nothrow__)); >extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) __attribute__ ((__nothrow__)); >extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) __attribute__ ((__nothrow__)); > >extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) __attribute__ ((__nothrow__)); >extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) __attribute__ ((__nothrow__)); > >extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__)); ># 73 "/usr/include/stdio.h" 2 3 4 > > > > >typedef __gnuc_va_list va_list; >#define _VA_LIST_DEFINED > > > > > > > > > > > >typedef _G_fpos64_t fpos_t; > > > >typedef _G_fpos64_t fpos64_t; > > > >#define _IOFBF 0 >#define _IOLBF 1 >#define _IONBF 2 > > > > >#define BUFSIZ _IO_BUFSIZ ># 118 "/usr/include/stdio.h" 3 4 >#define SEEK_SET 0 >#define SEEK_CUR 1 >#define SEEK_END 2 > > > > >#define P_tmpdir "/tmp" ># 138 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 24 "/usr/include/bits/stdio_lim.h" 3 4 >#define L_tmpnam 20 >#define TMP_MAX 238328 >#define FILENAME_MAX 4096 > > >#define L_ctermid 9 >#define L_cuserid 9 > > > > > >#define FOPEN_MAX 16 ># 139 "/usr/include/stdio.h" 2 3 4 > > > >extern struct _IO_FILE *stdin; >extern struct _IO_FILE *stdout; >extern struct _IO_FILE *stderr; > >#define stdin stdin >#define stdout stdout >#define stderr stderr > > > >extern int remove (__const char *__filename) __attribute__ ((__nothrow__)); > >extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__)); > > > > ># 167 "/usr/include/stdio.h" 3 4 >extern FILE *tmpfile (void) __asm__ ("" "tmpfile64"); > > > > > > >extern FILE *tmpfile64 (void); > > > >extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)); > > > > > >extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)); ># 196 "/usr/include/stdio.h" 3 4 >extern char *tempnam (__const char *__dir, __const char *__pfx) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); > > > > > > > > >extern int fclose (FILE *__stream); > > > > >extern int fflush (FILE *__stream); > ># 221 "/usr/include/stdio.h" 3 4 >extern int fflush_unlocked (FILE *__stream); ># 231 "/usr/include/stdio.h" 3 4 >extern int fcloseall (void); > > > > ># 252 "/usr/include/stdio.h" 3 4 >extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) __asm__ ("" "fopen64"); > >extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64"); > > > > > > > > > >extern FILE *fopen64 (__const char *__restrict __filename, > __const char *__restrict __modes); >extern FILE *freopen64 (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream); > > > > >extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)); > > > > > >extern FILE *fopencookie (void *__restrict __magic_cookie, > __const char *__restrict __modes, > _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__)); > > >extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) __attribute__ ((__nothrow__)); > > > > >extern FILE *open_memstream (char **__restrict __bufloc, > size_t *__restrict __sizeloc) __attribute__ ((__nothrow__)); > > > > > > >extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__)); > > > >extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, > int __modes, size_t __n) __attribute__ ((__nothrow__)); > > > > > >extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, > size_t __size) __attribute__ ((__nothrow__)); > > >extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__)); > > > > > > > > >extern int fprintf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int printf (__const char *__restrict __format, ...); > >extern int sprintf (char *__restrict __s, > __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); > > > > > >extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg); > > > > >extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); > >extern int vsprintf (char *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) __attribute__ ((__nothrow__)); > > > > > >extern int snprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); > >extern int vsnprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); > > > > > > >extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, > __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); >extern int __asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); >extern int asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > >extern int vdprintf (int __fd, __const char *__restrict __fmt, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__printf__, 2, 0))); >extern int dprintf (int __fd, __const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > > >extern int fscanf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int scanf (__const char *__restrict __format, ...); > >extern int sscanf (__const char *__restrict __s, > __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); > > > > > > > > >extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 2, 0))); > > > > > >extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 1, 0))); > > >extern int vsscanf (__const char *__restrict __s, > __const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0))); > > > > > > > > > >extern int fgetc (FILE *__stream); >extern int getc (FILE *__stream); > > > > > >extern int getchar (void); > > > > >#define getc(_fp) _IO_getc (_fp) > > > > > > >extern int getc_unlocked (FILE *__stream); >extern int getchar_unlocked (void); ># 465 "/usr/include/stdio.h" 3 4 >extern int fgetc_unlocked (FILE *__stream); > > > > > > > > > > > >extern int fputc (int __c, FILE *__stream); >extern int putc (int __c, FILE *__stream); > > > > > >extern int putchar (int __c); > > > > >#define putc(_ch,_fp) _IO_putc (_ch, _fp) ># 498 "/usr/include/stdio.h" 3 4 >extern int fputc_unlocked (int __c, FILE *__stream); > > > > > > > >extern int putc_unlocked (int __c, FILE *__stream); >extern int putchar_unlocked (int __c); > > > > > > >extern int getw (FILE *__stream); > > >extern int putw (int __w, FILE *__stream); > > > > > > > > >extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream); > > > > > > >extern char *gets (char *__s); > ># 543 "/usr/include/stdio.h" 3 4 >extern char *fgets_unlocked (char *__restrict __s, int __n, > FILE *__restrict __stream); ># 559 "/usr/include/stdio.h" 3 4 >extern __ssize_t __getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream); >extern __ssize_t getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream); > > > > > > > >extern __ssize_t getline (char **__restrict __lineptr, > size_t *__restrict __n, > FILE *__restrict __stream); > > > > > > > > >extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); > > > > > >extern int puts (__const char *__s); > > > > > > >extern int ungetc (int __c, FILE *__stream); > > > > > > >extern size_t fread (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); > > > > >extern size_t fwrite (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __s); > ># 620 "/usr/include/stdio.h" 3 4 >extern int fputs_unlocked (__const char *__restrict __s, > FILE *__restrict __stream); ># 631 "/usr/include/stdio.h" 3 4 >extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); >extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); > > > > > > > > >extern int fseek (FILE *__stream, long int __off, int __whence); > > > > >extern long int ftell (FILE *__stream); > > > > >extern void rewind (FILE *__stream); > ># 675 "/usr/include/stdio.h" 3 4 >extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64"); > > >extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64"); > > > > > > > > ># 700 "/usr/include/stdio.h" 3 4 >extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64"); > >extern int fsetpos (FILE *__stream, __const fpos_t *__pos) __asm__ ("" "fsetpos64"); > > > > > > > > > >extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); >extern __off64_t ftello64 (FILE *__stream); >extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); >extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); > > > > >extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__)); > >extern int feof (FILE *__stream) __attribute__ ((__nothrow__)); > >extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)); > > > > >extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__)); >extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)); >extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)); > > > > > > > > >extern void perror (__const char *__s); > > > > > > ># 1 "/usr/include/bits/sys_errlist.h" 1 3 4 ># 27 "/usr/include/bits/sys_errlist.h" 3 4 >extern int sys_nerr; >extern __const char *__const sys_errlist[]; > > >extern int _sys_nerr; >extern __const char *__const _sys_errlist[]; ># 748 "/usr/include/stdio.h" 2 3 4 > > > > >extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)); > > > > >extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)); ># 767 "/usr/include/stdio.h" 3 4 >extern FILE *popen (__const char *__command, __const char *__modes); > > > > > >extern int pclose (FILE *__stream); > > > > > >extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); > > > > > >extern char *cuserid (char *__s); > > > > >struct obstack; > > >extern int obstack_printf (struct obstack *__restrict __obstack, > __const char *__restrict __format, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); >extern int obstack_vprintf (struct obstack *__restrict __obstack, > __const char *__restrict __format, > __gnuc_va_list __args) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); > > > > > > > >extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__)); > > > >extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)); > > >extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__)); ># 828 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio.h" 1 3 4 ># 27 "/usr/include/bits/stdio.h" 3 4 >#define __STDIO_INLINE extern __inline > > > > > >extern __inline int >vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg) >{ > return vfprintf (stdout, __fmt, __arg); >} > > >extern __inline int >getchar (void) >{ > return _IO_getc (stdin); >} > > > > >extern __inline int >getc_unlocked (FILE *__fp) >{ > return (__builtin_expect ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end, 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > >extern __inline int >getchar_unlocked (void) >{ > return (__builtin_expect ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end, 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); >} > > > > >extern __inline int >putchar (int __c) >{ > return _IO_putc (__c, stdout); >} > > > > >extern __inline int >fputc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > > > > >extern __inline int >putc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > >extern __inline int >putchar_unlocked (int __c) >{ > return (__builtin_expect ((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end, 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); >} > > > > > >extern __inline __ssize_t >getline (char **__lineptr, size_t *__n, FILE *__stream) >{ > return __getdelim (__lineptr, __n, '\n', __stream); >} > > > > > >extern __inline int >__attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream) >{ > return (((__stream)->_flags & 0x10) != 0); >} > > >extern __inline int >__attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream) >{ > return (((__stream)->_flags & 0x20) != 0); >} > > > > > > > >#define fread_unlocked(ptr,size,n,stream) (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) && (size_t) (size) * (size_t) (n) <= 8 && (size_t) (size) != 0) ? ({ char *__ptr = (char *) (ptr); FILE *__stream = (stream); size_t __cnt; for (__cnt = (size_t) (size) * (size_t) (n); __cnt > 0; --__cnt) { int __c = _IO_getc_unlocked (__stream); if (__c == EOF) break; *__ptr++ = __c; } ((size_t) (size) * (size_t) (n) - __cnt) / (size_t) (size); }) : (((__builtin_constant_p (size) && (size_t) (size) == 0) || (__builtin_constant_p (n) && (size_t) (n) == 0)) ? ((void) (ptr), (void) (stream), (void) (size), (void) (n), (size_t) 0) : fread_unlocked (ptr, size, n, stream)))) ># 154 "/usr/include/bits/stdio.h" 3 4 >#define fwrite_unlocked(ptr,size,n,stream) (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) && (size_t) (size) * (size_t) (n) <= 8 && (size_t) (size) != 0) ? ({ const char *__ptr = (const char *) (ptr); FILE *__stream = (stream); size_t __cnt; for (__cnt = (size_t) (size) * (size_t) (n); __cnt > 0; --__cnt) if (_IO_putc_unlocked (*__ptr++, __stream) == EOF) break; ((size_t) (size) * (size_t) (n) - __cnt) / (size_t) (size); }) : (((__builtin_constant_p (size) && (size_t) (size) == 0) || (__builtin_constant_p (n) && (size_t) (n) == 0)) ? ((void) (ptr), (void) (stream), (void) (size), (void) (n), (size_t) 0) : fwrite_unlocked (ptr, size, n, stream)))) ># 176 "/usr/include/bits/stdio.h" 3 4 >#undef __STDIO_INLINE ># 829 "/usr/include/stdio.h" 2 3 4 > > > > > > ># 25 "/usr/include/argp.h" 2 3 4 ># 1 "/usr/include/ctype.h" 1 3 4 ># 25 "/usr/include/ctype.h" 3 4 >#define _CTYPE_H 1 > > > > > ># 41 "/usr/include/ctype.h" 3 4 ># 1 "/usr/include/endian.h" 1 3 4 ># 20 "/usr/include/endian.h" 3 4 >#define _ENDIAN_H 1 ># 32 "/usr/include/endian.h" 3 4 >#define __LITTLE_ENDIAN 1234 >#define __BIG_ENDIAN 4321 >#define __PDP_ENDIAN 3412 > > ># 1 "/usr/include/bits/endian.h" 1 3 4 > > > > > > >#define __BYTE_ORDER __LITTLE_ENDIAN ># 38 "/usr/include/endian.h" 2 3 4 > > > > >#define __FLOAT_WORD_ORDER __BYTE_ORDER > > > >#define LITTLE_ENDIAN __LITTLE_ENDIAN >#define BIG_ENDIAN __BIG_ENDIAN >#define PDP_ENDIAN __PDP_ENDIAN >#define BYTE_ORDER __BYTE_ORDER > > > >#define __LONG_LONG_PAIR(HI,LO) LO, HI ># 42 "/usr/include/ctype.h" 2 3 4 > > > >#define _ISbit(bit) ((bit) < 8 ? ((1 << (bit)) << 8) : ((1 << (bit)) >> 8)) > > >enum >{ > _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), > _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), > _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), > _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), > _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), > _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), > _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), > _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), > _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), > _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), > _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), > _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) >}; ># 81 "/usr/include/ctype.h" 3 4 >extern __const unsigned short int **__ctype_b_loc (void) > __attribute__ ((__const)); >extern __const __int32_t **__ctype_tolower_loc (void) > __attribute__ ((__const)); >extern __const __int32_t **__ctype_toupper_loc (void) > __attribute__ ((__const)); > >#define __isctype(c,type) ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type) > > >#define __isascii(c) (((c) & ~0x7f) == 0) >#define __toascii(c) ((c) & 0x7f) > >#define __exctype(name) extern int name (int) __THROW > > > > > > > >extern int isalnum (int) __attribute__ ((__nothrow__)); >extern int isalpha (int) __attribute__ ((__nothrow__)); >extern int iscntrl (int) __attribute__ ((__nothrow__)); >extern int isdigit (int) __attribute__ ((__nothrow__)); >extern int islower (int) __attribute__ ((__nothrow__)); >extern int isgraph (int) __attribute__ ((__nothrow__)); >extern int isprint (int) __attribute__ ((__nothrow__)); >extern int ispunct (int) __attribute__ ((__nothrow__)); >extern int isspace (int) __attribute__ ((__nothrow__)); >extern int isupper (int) __attribute__ ((__nothrow__)); >extern int isxdigit (int) __attribute__ ((__nothrow__)); > > > >extern int tolower (int __c) __attribute__ ((__nothrow__)); > > >extern int toupper (int __c) __attribute__ ((__nothrow__)); > > > > > > > > >extern int isblank (int) __attribute__ ((__nothrow__)); > > > > > > >extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__)); > > > > > > >extern int isascii (int __c) __attribute__ ((__nothrow__)); > > > >extern int toascii (int __c) __attribute__ ((__nothrow__)); > > > >extern int _toupper (int) __attribute__ ((__nothrow__)); >extern int _tolower (int) __attribute__ ((__nothrow__)); > > > >#define __tobody(c,f,a,args) (__extension__ ({ int __res; if (sizeof (c) > 1) { if (__builtin_constant_p (c)) { int __c = (c); __res = __c < -128 || __c > 255 ? __c : (a)[__c]; } else __res = f args; } else __res = (a)[(int) (c)]; __res; })) ># 173 "/usr/include/ctype.h" 3 4 >#define isalnum(c) __isctype((c), _ISalnum) >#define isalpha(c) __isctype((c), _ISalpha) >#define iscntrl(c) __isctype((c), _IScntrl) >#define isdigit(c) __isctype((c), _ISdigit) >#define islower(c) __isctype((c), _ISlower) >#define isgraph(c) __isctype((c), _ISgraph) >#define isprint(c) __isctype((c), _ISprint) >#define ispunct(c) __isctype((c), _ISpunct) >#define isspace(c) __isctype((c), _ISspace) >#define isupper(c) __isctype((c), _ISupper) >#define isxdigit(c) __isctype((c), _ISxdigit) > > >#define isblank(c) __isctype((c), _ISblank) > > > >extern __inline int >__attribute__ ((__nothrow__)) tolower (int __c) >{ > return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; >} > >extern __inline int >__attribute__ ((__nothrow__)) toupper (int __c) >{ > return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; >} > > > >#define tolower(c) __tobody (c, tolower, *__ctype_tolower_loc (), (c)) >#define toupper(c) __tobody (c, toupper, *__ctype_toupper_loc (), (c)) > > > >#define isascii(c) __isascii (c) >#define toascii(c) __toascii (c) > >#define _tolower(c) ((int) (*__ctype_tolower_loc ())[(int) (c)]) >#define _toupper(c) ((int) (*__ctype_toupper_loc ())[(int) (c)]) ># 233 "/usr/include/ctype.h" 3 4 ># 1 "/usr/include/xlocale.h" 1 3 4 ># 22 "/usr/include/xlocale.h" 3 4 >#define _XLOCALE_H 1 > > > > > >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; ># 234 "/usr/include/ctype.h" 2 3 4 > > > >#define __isctype_l(c,type,locale) ((locale)->__ctype_b[(int) (c)] & (unsigned short int) type) > > >#define __exctype_l(name) extern int name (int, __locale_t) __THROW > > > > > > >extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__)); > >extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__)); > > > >extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); >extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); > > >extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); >extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); > > >#define __tolower_l(c,locale) __tobody (c, __tolower_l, (locale)->__ctype_tolower, (c, locale)) > >#define __toupper_l(c,locale) __tobody (c, __toupper_l, (locale)->__ctype_toupper, (c, locale)) > >#define tolower_l(c,locale) __tolower_l ((c), (locale)) >#define toupper_l(c,locale) __toupper_l ((c), (locale)) > > > > >#define __isalnum_l(c,l) __isctype_l((c), _ISalnum, (l)) >#define __isalpha_l(c,l) __isctype_l((c), _ISalpha, (l)) >#define __iscntrl_l(c,l) __isctype_l((c), _IScntrl, (l)) >#define __isdigit_l(c,l) __isctype_l((c), _ISdigit, (l)) >#define __islower_l(c,l) __isctype_l((c), _ISlower, (l)) >#define __isgraph_l(c,l) __isctype_l((c), _ISgraph, (l)) >#define __isprint_l(c,l) __isctype_l((c), _ISprint, (l)) >#define __ispunct_l(c,l) __isctype_l((c), _ISpunct, (l)) >#define __isspace_l(c,l) __isctype_l((c), _ISspace, (l)) >#define __isupper_l(c,l) __isctype_l((c), _ISupper, (l)) >#define __isxdigit_l(c,l) __isctype_l((c), _ISxdigit, (l)) > >#define __isblank_l(c,l) __isctype_l((c), _ISblank, (l)) > > >#define __isascii_l(c,l) ((l), __isascii (c)) >#define __toascii_l(c,l) ((l), __toascii (c)) > > >#define isalnum_l(c,l) __isalnum_l ((c), (l)) >#define isalpha_l(c,l) __isalpha_l ((c), (l)) >#define iscntrl_l(c,l) __iscntrl_l ((c), (l)) >#define isdigit_l(c,l) __isdigit_l ((c), (l)) >#define islower_l(c,l) __islower_l ((c), (l)) >#define isgraph_l(c,l) __isgraph_l ((c), (l)) >#define isprint_l(c,l) __isprint_l ((c), (l)) >#define ispunct_l(c,l) __ispunct_l ((c), (l)) >#define isspace_l(c,l) __isspace_l ((c), (l)) >#define isupper_l(c,l) __isupper_l ((c), (l)) >#define isxdigit_l(c,l) __isxdigit_l ((c), (l)) > >#define isblank_l(c,l) __isblank_l ((c), (l)) > > >#define isascii_l(c,l) __isascii_l ((c), (l)) >#define toascii_l(c,l) __toascii_l ((c), (l)) > > > > > > > ># 26 "/usr/include/argp.h" 2 3 4 ># 1 "/usr/include/getopt.h" 1 3 4 ># 24 "/usr/include/getopt.h" 3 4 >#define _GETOPT_H 1 ># 59 "/usr/include/getopt.h" 3 4 >extern char *optarg; ># 73 "/usr/include/getopt.h" 3 4 >extern int optind; > > > > >extern int opterr; > > > >extern int optopt; ># 106 "/usr/include/getopt.h" 3 4 >struct option >{ > const char *name; > > > int has_arg; > int *flag; > int val; >}; > > > >#define no_argument 0 >#define required_argument 1 >#define optional_argument 2 ># 152 "/usr/include/getopt.h" 3 4 >extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) > __attribute__ ((__nothrow__)); > > > > > >extern int getopt_long (int ___argc, char *const *___argv, > const char *__shortopts, > const struct option *__longopts, int *__longind) > __attribute__ ((__nothrow__)); >extern int getopt_long_only (int ___argc, char *const *___argv, > const char *__shortopts, > const struct option *__longopts, int *__longind) > __attribute__ ((__nothrow__)); ># 27 "/usr/include/argp.h" 2 3 4 > >#define __need_error_t ># 1 "/usr/include/errno.h" 1 3 4 ># 28 "/usr/include/errno.h" 3 4 >#define _ERRNO_H 1 > > > > > > > ># 1 "/usr/include/bits/errno.h" 1 3 4 ># 25 "/usr/include/bits/errno.h" 3 4 ># 1 "/usr/include/linux/errno.h" 1 3 4 > >#define _LINUX_ERRNO_H > ># 1 "/usr/include/asm/errno.h" 1 3 4 > >#define _I386_ERRNO_H > ># 1 "/usr/include/asm-generic/errno.h" 1 3 4 > >#define _ASM_GENERIC_ERRNO_H > ># 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 > >#define _ASM_GENERIC_ERRNO_BASE_H > >#define EPERM 1 >#define ENOENT 2 >#define ESRCH 3 >#define EINTR 4 >#define EIO 5 >#define ENXIO 6 >#define E2BIG 7 >#define ENOEXEC 8 >#define EBADF 9 >#define ECHILD 10 >#define EAGAIN 11 >#define ENOMEM 12 >#define EACCES 13 >#define EFAULT 14 >#define ENOTBLK 15 >#define EBUSY 16 >#define EEXIST 17 >#define EXDEV 18 >#define ENODEV 19 >#define ENOTDIR 20 >#define EISDIR 21 >#define EINVAL 22 >#define ENFILE 23 >#define EMFILE 24 >#define ENOTTY 25 >#define ETXTBSY 26 >#define EFBIG 27 >#define ENOSPC 28 >#define ESPIPE 29 >#define EROFS 30 >#define EMLINK 31 >#define EPIPE 32 >#define EDOM 33 >#define ERANGE 34 ># 5 "/usr/include/asm-generic/errno.h" 2 3 4 > >#define EDEADLK 35 >#define ENAMETOOLONG 36 >#define ENOLCK 37 >#define ENOSYS 38 >#define ENOTEMPTY 39 >#define ELOOP 40 >#define EWOULDBLOCK EAGAIN >#define ENOMSG 42 >#define EIDRM 43 >#define ECHRNG 44 >#define EL2NSYNC 45 >#define EL3HLT 46 >#define EL3RST 47 >#define ELNRNG 48 >#define EUNATCH 49 >#define ENOCSI 50 >#define EL2HLT 51 >#define EBADE 52 >#define EBADR 53 >#define EXFULL 54 >#define ENOANO 55 >#define EBADRQC 56 >#define EBADSLT 57 > >#define EDEADLOCK EDEADLK > >#define EBFONT 59 >#define ENOSTR 60 >#define ENODATA 61 >#define ETIME 62 >#define ENOSR 63 >#define ENONET 64 >#define ENOPKG 65 >#define EREMOTE 66 >#define ENOLINK 67 >#define EADV 68 >#define ESRMNT 69 >#define ECOMM 70 >#define EPROTO 71 >#define EMULTIHOP 72 >#define EDOTDOT 73 >#define EBADMSG 74 >#define EOVERFLOW 75 >#define ENOTUNIQ 76 >#define EBADFD 77 >#define EREMCHG 78 >#define ELIBACC 79 >#define ELIBBAD 80 >#define ELIBSCN 81 >#define ELIBMAX 82 >#define ELIBEXEC 83 >#define EILSEQ 84 >#define ERESTART 85 >#define ESTRPIPE 86 >#define EUSERS 87 >#define ENOTSOCK 88 >#define EDESTADDRREQ 89 >#define EMSGSIZE 90 >#define EPROTOTYPE 91 >#define ENOPROTOOPT 92 >#define EPROTONOSUPPORT 93 >#define ESOCKTNOSUPPORT 94 >#define EOPNOTSUPP 95 >#define EPFNOSUPPORT 96 >#define EAFNOSUPPORT 97 >#define EADDRINUSE 98 >#define EADDRNOTAVAIL 99 >#define ENETDOWN 100 >#define ENETUNREACH 101 >#define ENETRESET 102 >#define ECONNABORTED 103 >#define ECONNRESET 104 >#define ENOBUFS 105 >#define EISCONN 106 >#define ENOTCONN 107 >#define ESHUTDOWN 108 >#define ETOOMANYREFS 109 >#define ETIMEDOUT 110 >#define ECONNREFUSED 111 >#define EHOSTDOWN 112 >#define EHOSTUNREACH 113 >#define EALREADY 114 >#define EINPROGRESS 115 >#define ESTALE 116 >#define EUCLEAN 117 >#define ENOTNAM 118 >#define ENAVAIL 119 >#define EISNAM 120 >#define EREMOTEIO 121 >#define EDQUOT 122 > >#define ENOMEDIUM 123 >#define EMEDIUMTYPE 124 >#define ECANCELED 125 >#define ENOKEY 126 >#define EKEYEXPIRED 127 >#define EKEYREVOKED 128 >#define EKEYREJECTED 129 ># 5 "/usr/include/asm/errno.h" 2 3 4 ># 5 "/usr/include/linux/errno.h" 2 3 4 ># 26 "/usr/include/bits/errno.h" 2 3 4 > > >#define ENOTSUP EOPNOTSUPP ># 38 "/usr/include/bits/errno.h" 3 4 >extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >#define errno (*__errno_location ()) ># 37 "/usr/include/errno.h" 2 3 4 ># 55 "/usr/include/errno.h" 3 4 >extern char *program_invocation_name, *program_invocation_short_name; > > > > ># 69 "/usr/include/errno.h" 3 4 >typedef int error_t; >#define __error_t_defined 1 > >#undef __need_error_t ># 30 "/usr/include/argp.h" 2 3 4 > > >#define __const const ># 81 "/usr/include/argp.h" 3 4 >struct argp_option >{ > > > const char *name; > > > > int key; > > > > const char *arg; > > > int flags; > > > > > > const char *doc; ># 111 "/usr/include/argp.h" 3 4 > int group; >}; > > >#define OPTION_ARG_OPTIONAL 0x1 > > >#define OPTION_HIDDEN 0x2 > > > > >#define OPTION_ALIAS 0x4 ># 135 "/usr/include/argp.h" 3 4 >#define OPTION_DOC 0x8 ># 144 "/usr/include/argp.h" 3 4 >#define OPTION_NO_USAGE 0x10 > >struct argp; >struct argp_state; >struct argp_child; > > >typedef error_t (*argp_parser_t) (int key, char *arg, > struct argp_state *state); > > > > > > >#define ARGP_ERR_UNKNOWN E2BIG ># 187 "/usr/include/argp.h" 3 4 >#define ARGP_KEY_ARG 0 > > > > > >#define ARGP_KEY_ARGS 0x1000006 > >#define ARGP_KEY_END 0x1000001 > > > > > >#define ARGP_KEY_NO_ARGS 0x1000002 > > > >#define ARGP_KEY_INIT 0x1000003 > >#define ARGP_KEY_FINI 0x1000007 > > >#define ARGP_KEY_SUCCESS 0x1000004 > >#define ARGP_KEY_ERROR 0x1000005 > > > > > > > >struct argp >{ > > > const struct argp_option *options; ># 233 "/usr/include/argp.h" 3 4 > argp_parser_t parser; > > > > > > > const char *args_doc; > > > > > const char *doc; > > > > > > > > const struct argp_child *children; ># 265 "/usr/include/argp.h" 3 4 > char *(*help_filter) (int __key, const char *__text, void *__input); > > > > > const char *argp_domain; >}; > > >#define ARGP_KEY_HELP_PRE_DOC 0x2000001 >#define ARGP_KEY_HELP_POST_DOC 0x2000002 >#define ARGP_KEY_HELP_HEADER 0x2000003 >#define ARGP_KEY_HELP_EXTRA 0x2000004 > > > >#define ARGP_KEY_HELP_DUP_ARGS_NOTE 0x2000005 >#define ARGP_KEY_HELP_ARGS_DOC 0x2000006 > > > >struct argp_child >{ > > const struct argp *argp; > > > int flags; > > > > > > const char *header; > > > > > > > > int group; >}; > > > >struct argp_state >{ > > const struct argp *root_argp; > > > int argc; > char **argv; > > > int next; > > > unsigned flags; > > > > > > unsigned arg_num; > > > > > int quoted; > > > void *input; > > > void **child_inputs; > > > void *hook; > > > > char *name; > > > FILE *err_stream; > FILE *out_stream; > > void *pstate; >}; ># 364 "/usr/include/argp.h" 3 4 >#define ARGP_PARSE_ARGV0 0x01 > > > > > >#define ARGP_NO_ERRS 0x02 ># 382 "/usr/include/argp.h" 3 4 >#define ARGP_NO_ARGS 0x04 > > > >#define ARGP_IN_ORDER 0x08 > > > >#define ARGP_NO_HELP 0x10 > > >#define ARGP_NO_EXIT 0x20 > > >#define ARGP_LONG_ONLY 0x40 > > >#define ARGP_SILENT (ARGP_NO_EXIT | ARGP_NO_ERRS | ARGP_NO_HELP) ># 408 "/usr/include/argp.h" 3 4 >extern error_t argp_parse (const struct argp *__restrict __argp, > int __argc, char **__restrict __argv, > unsigned __flags, int *__restrict __arg_index, > void *__restrict __input); >extern error_t __argp_parse (const struct argp *__restrict __argp, > int __argc, char **__restrict __argv, > unsigned __flags, int *__restrict __arg_index, > void *__restrict __input); > > > > > > > >extern const char *argp_program_version; > > > > > > >extern void (*argp_program_version_hook) (FILE *__restrict __stream, > struct argp_state *__restrict > __state); > > > > > > >extern const char *argp_program_bug_address; > > > > >extern error_t argp_err_exit_status; > > >#define ARGP_HELP_USAGE 0x01 >#define ARGP_HELP_SHORT_USAGE 0x02 >#define ARGP_HELP_SEE 0x04 >#define ARGP_HELP_LONG 0x08 >#define ARGP_HELP_PRE_DOC 0x10 >#define ARGP_HELP_POST_DOC 0x20 >#define ARGP_HELP_DOC (ARGP_HELP_PRE_DOC | ARGP_HELP_POST_DOC) >#define ARGP_HELP_BUG_ADDR 0x40 >#define ARGP_HELP_LONG_ONLY 0x80 > > > >#define ARGP_HELP_EXIT_ERR 0x100 >#define ARGP_HELP_EXIT_OK 0x200 > > > >#define ARGP_HELP_STD_ERR (ARGP_HELP_SEE | ARGP_HELP_EXIT_ERR) > > > >#define ARGP_HELP_STD_USAGE (ARGP_HELP_SHORT_USAGE | ARGP_HELP_SEE | ARGP_HELP_EXIT_ERR) > > >#define ARGP_HELP_STD_HELP (ARGP_HELP_SHORT_USAGE | ARGP_HELP_LONG | ARGP_HELP_EXIT_OK | ARGP_HELP_DOC | ARGP_HELP_BUG_ADDR) > > > > > >extern void argp_help (const struct argp *__restrict __argp, > FILE *__restrict __stream, > unsigned __flags, char *__restrict __name); >extern void __argp_help (const struct argp *__restrict __argp, > FILE *__restrict __stream, unsigned __flags, > char *__name); ># 494 "/usr/include/argp.h" 3 4 >extern void argp_state_help (const struct argp_state *__restrict __state, > FILE *__restrict __stream, > unsigned int __flags); >extern void __argp_state_help (const struct argp_state *__restrict __state, > FILE *__restrict __stream, > unsigned int __flags); > > >extern void argp_usage (const struct argp_state *__state); >extern void __argp_usage (const struct argp_state *__state); > > > > >extern void argp_error (const struct argp_state *__restrict __state, > const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))); >extern void __argp_error (const struct argp_state *__restrict __state, > const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))); ># 523 "/usr/include/argp.h" 3 4 >extern void argp_failure (const struct argp_state *__restrict __state, > int __status, int __errnum, > const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 4, 5))); >extern void __argp_failure (const struct argp_state *__restrict __state, > int __status, int __errnum, > const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 4, 5))); > > >extern int _option_is_short (const struct argp_option *__opt) __attribute__ ((__nothrow__)); >extern int __option_is_short (const struct argp_option *__opt) __attribute__ ((__nothrow__)); > > > >extern int _option_is_end (const struct argp_option *__opt) __attribute__ ((__nothrow__)); >extern int __option_is_end (const struct argp_option *__opt) __attribute__ ((__nothrow__)); > > > >extern void *_argp_input (const struct argp *__restrict __argp, > const struct argp_state *__restrict __state) > __attribute__ ((__nothrow__)); >extern void *__argp_input (const struct argp *__restrict __argp, > const struct argp_state *__restrict __state) > __attribute__ ((__nothrow__)); > > > > >#define __argp_usage argp_usage >#define __argp_state_help argp_state_help >#define __option_is_short _option_is_short >#define __option_is_end _option_is_end > > > >#define ARGP_EI extern __inline__ > > >extern __inline__ void >__attribute__ ((__nothrow__)) argp_usage (const struct argp_state *__state) >{ > argp_state_help (__state, stderr, (0x02 | 0x04 | 0x100)); >} > >extern __inline__ int >__attribute__ ((__nothrow__)) _option_is_short (const struct argp_option *__opt) >{ > if (__opt->flags & 0x8) > return 0; > else > { > int __key = __opt->key; > return __key > 0 && ((*__ctype_b_loc ())[(int) ((__key))] & (unsigned short int) _ISprint); > } >} > >extern __inline__ int >__attribute__ ((__nothrow__)) _option_is_end (const struct argp_option *__opt) >{ > return !__opt->key && !__opt->name && !__opt->doc && !__opt->group; >} > > >#undef __argp_usage >#undef __argp_state_help >#undef __option_is_short >#undef __option_is_end ># 20 "readelf.c" 2 ># 1 "/usr/include/assert.h" 1 3 4 ># 35 "/usr/include/assert.h" 3 4 >#define _ASSERT_H 1 > > > > > >#define __ASSERT_VOID_CAST (void) ># 65 "/usr/include/assert.h" 3 4 > > > >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__)); > > > > >#define assert(expr) (__ASSERT_VOID_CAST ((expr) ? 0 : (__assert_fail (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION), 0))) > > > > > >#define assert_perror(errnum) (__ASSERT_VOID_CAST (!(errnum) ? 0 : (__assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION), 0))) ># 105 "/usr/include/assert.h" 3 4 >#define __ASSERT_FUNCTION __PRETTY_FUNCTION__ ># 21 "readelf.c" 2 ># 1 "../libdw/dwarf.h" 1 ># 15 "../libdw/dwarf.h" >#define _DWARF_H 1 > > >enum > { > DW_TAG_array_type = 0x01, > DW_TAG_class_type = 0x02, > DW_TAG_entry_point = 0x03, > DW_TAG_enumeration_type = 0x04, > DW_TAG_formal_parameter = 0x05, > DW_TAG_imported_declaration = 0x08, > DW_TAG_label = 0x0a, > DW_TAG_lexical_block = 0x0b, > DW_TAG_member = 0x0d, > DW_TAG_pointer_type = 0x0f, > DW_TAG_reference_type = 0x10, > DW_TAG_compile_unit = 0x11, > DW_TAG_string_type = 0x12, > DW_TAG_structure_type = 0x13, > DW_TAG_subroutine_type = 0x15, > DW_TAG_typedef = 0x16, > DW_TAG_union_type = 0x17, > DW_TAG_unspecified_parameters = 0x18, > DW_TAG_variant = 0x19, > DW_TAG_common_block = 0x1a, > DW_TAG_common_inclusion = 0x1b, > DW_TAG_inheritance = 0x1c, > DW_TAG_inlined_subroutine = 0x1d, > DW_TAG_module = 0x1e, > DW_TAG_ptr_to_member_type = 0x1f, > DW_TAG_set_type = 0x20, > DW_TAG_subrange_type = 0x21, > DW_TAG_with_stmt = 0x22, > DW_TAG_access_declaration = 0x23, > DW_TAG_base_type = 0x24, > DW_TAG_catch_block = 0x25, > DW_TAG_const_type = 0x26, > DW_TAG_constant = 0x27, > DW_TAG_enumerator = 0x28, > DW_TAG_file_type = 0x29, > DW_TAG_friend = 0x2a, > DW_TAG_namelist = 0x2b, > DW_TAG_namelist_item = 0x2c, > DW_TAG_packed_type = 0x2d, > DW_TAG_subprogram = 0x2e, > DW_TAG_template_type_param = 0x2f, > DW_TAG_template_value_param = 0x30, > DW_TAG_thrown_type = 0x31, > DW_TAG_try_block = 0x32, > DW_TAG_variant_part = 0x33, > DW_TAG_variable = 0x34, > DW_TAG_volatile_type = 0x35, > DW_TAG_dwarf_procedure = 0x36, > DW_TAG_restrict_type = 0x37, > DW_TAG_interface_type = 0x38, > DW_TAG_namespace = 0x39, > DW_TAG_imported_module = 0x3a, > DW_TAG_unspecified_type = 0x3b, > DW_TAG_partial_unit = 0x3c, > DW_TAG_imported_unit = 0x3d, > DW_TAG_mutable_type = 0x3e, > DW_TAG_lo_user = 0x4080, > DW_TAG_MIPS_loop = 0x4081, > DW_TAG_format_label = 0x4101, > DW_TAG_function_template = 0x4102, > DW_TAG_class_template = 0x4103, > DW_TAG_hi_user = 0xffff > }; > > > >enum > { > DW_CHILDREN_no = 0, > DW_CHILDREN_yes = 1 > }; > > > >enum > { > DW_AT_sibling = 0x01, > DW_AT_location = 0x02, > DW_AT_name = 0x03, > DW_AT_ordering = 0x09, > DW_AT_subscr_data = 0x0a, > DW_AT_byte_size = 0x0b, > DW_AT_bit_offset = 0x0c, > DW_AT_bit_size = 0x0d, > DW_AT_element_list = 0x0f, > DW_AT_stmt_list = 0x10, > DW_AT_low_pc = 0x11, > DW_AT_high_pc = 0x12, > DW_AT_language = 0x13, > DW_AT_member = 0x14, > DW_AT_discr = 0x15, > DW_AT_discr_value = 0x16, > DW_AT_visibility = 0x17, > DW_AT_import = 0x18, > DW_AT_string_length = 0x19, > DW_AT_common_reference = 0x1a, > DW_AT_comp_dir = 0x1b, > DW_AT_const_value = 0x1c, > DW_AT_containing_type = 0x1d, > DW_AT_default_value = 0x1e, > DW_AT_inline = 0x20, > DW_AT_is_optional = 0x21, > DW_AT_lower_bound = 0x22, > DW_AT_producer = 0x25, > DW_AT_prototyped = 0x27, > DW_AT_return_addr = 0x2a, > DW_AT_start_scope = 0x2c, > DW_AT_stride_size = 0x2e, > DW_AT_upper_bound = 0x2f, > DW_AT_abstract_origin = 0x31, > DW_AT_accessibility = 0x32, > DW_AT_address_class = 0x33, > DW_AT_artificial = 0x34, > DW_AT_base_types = 0x35, > DW_AT_calling_convention = 0x36, > DW_AT_count = 0x37, > DW_AT_data_member_location = 0x38, > DW_AT_decl_column = 0x39, > DW_AT_decl_file = 0x3a, > DW_AT_decl_line = 0x3b, > DW_AT_declaration = 0x3c, > DW_AT_discr_list = 0x3d, > DW_AT_encoding = 0x3e, > DW_AT_external = 0x3f, > DW_AT_frame_base = 0x40, > DW_AT_friend = 0x41, > DW_AT_identifier_case = 0x42, > DW_AT_macro_info = 0x43, > DW_AT_namelist_items = 0x44, > DW_AT_priority = 0x45, > DW_AT_segment = 0x46, > DW_AT_specification = 0x47, > DW_AT_static_link = 0x48, > DW_AT_type = 0x49, > DW_AT_use_location = 0x4a, > DW_AT_variable_parameter = 0x4b, > DW_AT_virtuality = 0x4c, > DW_AT_vtable_elem_location = 0x4d, > DW_AT_allocated = 0x4e, > DW_AT_associated = 0x4f, > DW_AT_data_location = 0x50, > DW_AT_stride = 0x51, > DW_AT_entry_pc = 0x52, > DW_AT_use_UTF8 = 0x53, > DW_AT_extension = 0x54, > DW_AT_ranges = 0x55, > DW_AT_trampoline = 0x56, > DW_AT_call_column = 0x57, > DW_AT_call_file = 0x58, > DW_AT_call_line = 0x59, > DW_AT_description = 0x5a, > DW_AT_lo_user = 0x2000, > DW_AT_MIPS_fde = 0x2001, > DW_AT_MIPS_loop_begin = 0x2002, > DW_AT_MIPS_tail_loop_begin = 0x2003, > DW_AT_MIPS_epilog_begin = 0x2004, > DW_AT_MIPS_loop_unroll_factor = 0x2005, > DW_AT_MIPS_software_pipeline_depth = 0x2006, > DW_AT_MIPS_linkage_name = 0x2007, > DW_AT_MIPS_stride = 0x2008, > DW_AT_MIPS_abstract_name = 0x2009, > DW_AT_MIPS_clone_origin = 0x200a, > DW_AT_MIPS_has_inlines = 0x200b, > DW_AT_MIPS_stride_byte = 0x200c, > DW_AT_MIPS_stride_elem = 0x200d, > DW_AT_MIPS_ptr_dopetype = 0x200e, > DW_AT_MIPS_allocatable_dopetype = 0x200f, > DW_AT_MIPS_assumed_shape_dopetype = 0x2010, > DW_AT_MIPS_assumed_size = 0x2011, > DW_AT_sf_names = 0x2101, > DW_AT_src_info = 0x2102, > DW_AT_mac_info = 0x2103, > DW_AT_src_coords = 0x2104, > DW_AT_body_begin = 0x2105, > DW_AT_body_end = 0x2106, > DW_AT_hi_user = 0x3fff > }; > > > >enum > { > DW_FORM_addr = 0x01, > DW_FORM_block2 = 0x03, > DW_FORM_block4 = 0x04, > DW_FORM_data2 = 0x05, > DW_FORM_data4 = 0x06, > DW_FORM_data8 = 0x07, > DW_FORM_string = 0x08, > DW_FORM_block = 0x09, > DW_FORM_block1 = 0x0a, > DW_FORM_data1 = 0x0b, > DW_FORM_flag = 0x0c, > DW_FORM_sdata = 0x0d, > DW_FORM_strp = 0x0e, > DW_FORM_udata = 0x0f, > DW_FORM_ref_addr = 0x10, > DW_FORM_ref1 = 0x11, > DW_FORM_ref2 = 0x12, > DW_FORM_ref4 = 0x13, > DW_FORM_ref8 = 0x14, > DW_FORM_ref_udata = 0x15, > DW_FORM_indirect = 0x16 > }; > > > >enum > { > DW_OP_addr = 0x03, > DW_OP_deref = 0x06, > DW_OP_const1u = 0x08, > DW_OP_const1s = 0x09, > DW_OP_const2u = 0x0a, > DW_OP_const2s = 0x0b, > DW_OP_const4u = 0x0c, > DW_OP_const4s = 0x0d, > DW_OP_const8u = 0x0e, > DW_OP_const8s = 0x0f, > DW_OP_constu = 0x10, > DW_OP_consts = 0x11, > DW_OP_dup = 0x12, > DW_OP_drop = 0x13, > DW_OP_over = 0x14, > DW_OP_pick = 0x15, > DW_OP_swap = 0x16, > DW_OP_rot = 0x17, > DW_OP_xderef = 0x18, > DW_OP_abs = 0x19, > DW_OP_and = 0x1a, > DW_OP_div = 0x1b, > DW_OP_minus = 0x1c, > DW_OP_mod = 0x1d, > DW_OP_mul = 0x1e, > DW_OP_neg = 0x1f, > DW_OP_not = 0x20, > DW_OP_or = 0x21, > DW_OP_plus = 0x22, > DW_OP_plus_uconst = 0x23, > DW_OP_shl = 0x24, > DW_OP_shr = 0x25, > DW_OP_shra = 0x26, > DW_OP_xor = 0x27, > DW_OP_bra = 0x28, > DW_OP_eq = 0x29, > DW_OP_ge = 0x2a, > DW_OP_gt = 0x2b, > DW_OP_le = 0x2c, > DW_OP_lt = 0x2d, > DW_OP_ne = 0x2e, > DW_OP_skip = 0x2f, > DW_OP_lit0 = 0x30, > DW_OP_lit1 = 0x31, > DW_OP_lit2 = 0x32, > DW_OP_lit3 = 0x33, > DW_OP_lit4 = 0x34, > DW_OP_lit5 = 0x35, > DW_OP_lit6 = 0x36, > DW_OP_lit7 = 0x37, > DW_OP_lit8 = 0x38, > DW_OP_lit9 = 0x39, > DW_OP_lit10 = 0x3a, > DW_OP_lit11 = 0x3b, > DW_OP_lit12 = 0x3c, > DW_OP_lit13 = 0x3d, > DW_OP_lit14 = 0x3e, > DW_OP_lit15 = 0x3f, > DW_OP_lit16 = 0x40, > DW_OP_lit17 = 0x41, > DW_OP_lit18 = 0x42, > DW_OP_lit19 = 0x43, > DW_OP_lit20 = 0x44, > DW_OP_lit21 = 0x45, > DW_OP_lit22 = 0x46, > DW_OP_lit23 = 0x47, > DW_OP_lit24 = 0x48, > DW_OP_lit25 = 0x49, > DW_OP_lit26 = 0x4a, > DW_OP_lit27 = 0x4b, > DW_OP_lit28 = 0x4c, > DW_OP_lit29 = 0x4d, > DW_OP_lit30 = 0x4e, > DW_OP_lit31 = 0x4f, > DW_OP_reg0 = 0x50, > DW_OP_reg1 = 0x51, > DW_OP_reg2 = 0x52, > DW_OP_reg3 = 0x53, > DW_OP_reg4 = 0x54, > DW_OP_reg5 = 0x55, > DW_OP_reg6 = 0x56, > DW_OP_reg7 = 0x57, > DW_OP_reg8 = 0x58, > DW_OP_reg9 = 0x59, > DW_OP_reg10 = 0x5a, > DW_OP_reg11 = 0x5b, > DW_OP_reg12 = 0x5c, > DW_OP_reg13 = 0x5d, > DW_OP_reg14 = 0x5e, > DW_OP_reg15 = 0x5f, > DW_OP_reg16 = 0x60, > DW_OP_reg17 = 0x61, > DW_OP_reg18 = 0x62, > DW_OP_reg19 = 0x63, > DW_OP_reg20 = 0x64, > DW_OP_reg21 = 0x65, > DW_OP_reg22 = 0x66, > DW_OP_reg23 = 0x67, > DW_OP_reg24 = 0x68, > DW_OP_reg25 = 0x69, > DW_OP_reg26 = 0x6a, > DW_OP_reg27 = 0x6b, > DW_OP_reg28 = 0x6c, > DW_OP_reg29 = 0x6d, > DW_OP_reg30 = 0x6e, > DW_OP_reg31 = 0x6f, > DW_OP_breg0 = 0x70, > DW_OP_breg1 = 0x71, > DW_OP_breg2 = 0x72, > DW_OP_breg3 = 0x73, > DW_OP_breg4 = 0x74, > DW_OP_breg5 = 0x75, > DW_OP_breg6 = 0x76, > DW_OP_breg7 = 0x77, > DW_OP_breg8 = 0x78, > DW_OP_breg9 = 0x79, > DW_OP_breg10 = 0x7a, > DW_OP_breg11 = 0x7b, > DW_OP_breg12 = 0x7c, > DW_OP_breg13 = 0x7d, > DW_OP_breg14 = 0x7e, > DW_OP_breg15 = 0x7f, > DW_OP_breg16 = 0x80, > DW_OP_breg17 = 0x81, > DW_OP_breg18 = 0x82, > DW_OP_breg19 = 0x83, > DW_OP_breg20 = 0x84, > DW_OP_breg21 = 0x85, > DW_OP_breg22 = 0x86, > DW_OP_breg23 = 0x87, > DW_OP_breg24 = 0x88, > DW_OP_breg25 = 0x89, > DW_OP_breg26 = 0x8a, > DW_OP_breg27 = 0x8b, > DW_OP_breg28 = 0x8c, > DW_OP_breg29 = 0x8d, > DW_OP_breg30 = 0x8e, > DW_OP_breg31 = 0x8f, > DW_OP_regx = 0x90, > DW_OP_fbreg = 0x91, > DW_OP_bregx = 0x92, > DW_OP_piece = 0x93, > DW_OP_deref_size = 0x94, > DW_OP_xderef_size = 0x95, > DW_OP_nop = 0x96, > DW_OP_push_object_address = 0x97, > DW_OP_call2 = 0x98, > DW_OP_call4 = 0x99, > DW_OP_call_ref = 0x9a, > > DW_OP_lo_user = 0xe0, > DW_OP_hi_user = 0xff > }; > > > >enum > { > DW_ATE_void = 0x0, > DW_ATE_address = 0x1, > DW_ATE_boolean = 0x2, > DW_ATE_complex_float = 0x3, > DW_ATE_float = 0x4, > DW_ATE_signed = 0x5, > DW_ATE_signed_char = 0x6, > DW_ATE_unsigned = 0x7, > DW_ATE_unsigned_char = 0x8, > DW_ATE_imaginary_float = 0x9, > > DW_ATE_lo_user = 0x80, > DW_ATE_hi_user = 0xff > }; > > > >enum > { > DW_ACCESS_public = 1, > DW_ACCESS_protected = 2, > DW_ACCESS_private = 3 > }; > > > >enum > { > DW_VIS_local = 1, > DW_VIS_exported = 2, > DW_VIS_qualified = 3 > }; > > > >enum > { > DW_VIRTUALITY_none = 0, > DW_VIRTUALITY_virtual = 1, > DW_VIRTUALITY_pure_virtual = 2 > }; > > > >enum > { > DW_LANG_C89 = 0x0001, > DW_LANG_C = 0x0002, > DW_LANG_Ada83 = 0x0003, > DW_LANG_C_plus_plus = 0x0004, > DW_LANG_Cobol74 = 0x0005, > DW_LANG_Cobol85 = 0x0006, > DW_LANG_Fortran77 = 0x0007, > DW_LANG_Fortran90 = 0x0008, > DW_LANG_Pascal83 = 0x0009, > DW_LANG_Modula2 = 0x000a, > DW_LANG_Java = 0x000b, > DW_LANG_C99 = 0x000c, > DW_LANG_Ada95 = 0x000d, > DW_LANG_Fortran95 = 0x000e, > DW_LANG_PL1 = 0x000f, > DW_LANG_lo_user = 0x8000, > DW_LANG_Mips_Assembler = 0x8001, > DW_LANG_hi_user = 0xffff > }; > > > >enum > { > DW_ID_case_sensitive = 0, > DW_ID_up_case = 1, > DW_ID_down_case = 2, > DW_ID_case_insensitive = 3 > }; > > > >enum > { > DW_CC_normal = 0x1, > DW_CC_program = 0x2, > DW_CC_nocall = 0x3, > DW_CC_lo_user = 0x40, > DW_CC_hi_user = 0xff > }; > > > >enum > { > DW_INL_not_inlined = 0, > DW_INL_inlined = 1, > DW_INL_declared_not_inlined = 2, > DW_INL_declared_inlined = 3 > }; > > > >enum > { > DW_ORD_row_major = 0, > DW_ORD_col_major = 1 > }; > > > >enum > { > DW_DSC_label = 0, > DW_DSC_range = 1 > }; > > > >enum > { > DW_LNS_copy = 1, > DW_LNS_advance_pc = 2, > DW_LNS_advance_line = 3, > DW_LNS_set_file = 4, > DW_LNS_set_column = 5, > DW_LNS_negate_stmt = 6, > DW_LNS_set_basic_block = 7, > DW_LNS_const_add_pc = 8, > DW_LNS_fixed_advance_pc = 9, > DW_LNS_set_prologue_end = 10, > DW_LNS_set_epilogue_begin = 11, > DW_LNS_set_isa = 12 > }; > > > >enum > { > DW_LNE_end_sequence = 1, > DW_LNE_set_address = 2, > DW_LNE_define_file = 3, > > DW_LNE_lo_user = 128, > DW_LNE_hi_user = 255 > }; > > > >enum > { > DW_MACINFO_define = 1, > DW_MACINFO_undef = 2, > DW_MACINFO_start_file = 3, > DW_MACINFO_end_file = 4, > DW_MACINFO_vendor_ext = 255 > }; > > > >enum > { > DW_CFA_advance_loc = 0x40, > DW_CFA_offset = 0x80, > DW_CFA_restore = 0xc0, > DW_CFA_extended = 0, > > DW_CFA_nop = 0x00, > DW_CFA_set_loc = 0x01, > DW_CFA_advance_loc1 = 0x02, > DW_CFA_advance_loc2 = 0x03, > DW_CFA_advance_loc4 = 0x04, > DW_CFA_offset_extended = 0x05, > DW_CFA_restore_extended = 0x06, > DW_CFA_undefined = 0x07, > DW_CFA_same_value = 0x08, > DW_CFA_register = 0x09, > DW_CFA_remember_state = 0x0a, > DW_CFA_restore_state = 0x0b, > DW_CFA_def_cfa = 0x0c, > DW_CFA_def_cfa_register = 0x0d, > DW_CFA_def_cfa_offset = 0x0e, > DW_CFA_def_cfa_expression = 0x0f, > DW_CFA_expression = 0x10, > DW_CFA_offset_extended_sf = 0x11, > DW_CFA_def_cfa_sf = 0x12, > DW_CFA_def_cfa_offset_sf = 0x13, > DW_CFA_low_user = 0x1c, > DW_CFA_MIPS_advance_loc8 = 0x1d, > DW_CFA_GNU_window_save = 0x2d, > DW_CFA_GNU_args_size = 0x2e, > DW_CFA_high_user = 0x3f > }; > > > >#define DW_ADDR_none 0 ># 22 "readelf.c" 2 ># 1 "/usr/include/errno.h" 1 3 4 ># 23 "readelf.c" 2 ># 1 "/usr/local/include/error.h" 1 3 > >#define _ERROR_H 1 > > > > > > >#define E_WARNING 0 >#define E_FATAL 1 >#define E_CAUTION 2 >#define E_INFORMATION 3 >#define E_MEMORY 4 > >extern void libcgi_error(int error_code, const char *msg, ...); >extern const char *libcgi_error_type[]; ># 24 "readelf.c" 2 ># 1 "/usr/include/fcntl.h" 1 3 4 ># 24 "/usr/include/fcntl.h" 3 4 >#define _FCNTL_H 1 > > > > > > > > ># 1 "/usr/include/bits/fcntl.h" 1 3 4 ># 26 "/usr/include/bits/fcntl.h" 3 4 ># 1 "/usr/include/sys/types.h" 1 3 4 ># 25 "/usr/include/sys/types.h" 3 4 >#define _SYS_TYPES_H 1 > > > > > > > > > >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; >#define __u_char_defined > > > >typedef __loff_t loff_t; > > > > > >typedef __ino64_t ino_t; > >#define __ino_t_defined > > >typedef __ino64_t ino64_t; >#define __ino64_t_defined > > > >typedef __dev_t dev_t; >#define __dev_t_defined > > > >typedef __gid_t gid_t; >#define __gid_t_defined > > > >typedef __mode_t mode_t; >#define __mode_t_defined > > > >typedef __nlink_t nlink_t; >#define __nlink_t_defined > > > >typedef __uid_t uid_t; >#define __uid_t_defined > > > > > > >typedef __off64_t off_t; > >#define __off_t_defined > > >typedef __off64_t off64_t; >#define __off64_t_defined > > > >typedef __pid_t pid_t; >#define __pid_t_defined > > > >typedef __id_t id_t; >#define __id_t_defined > > > >typedef __ssize_t ssize_t; >#define __ssize_t_defined > > > > >typedef __daddr_t daddr_t; >typedef __caddr_t caddr_t; >#define __daddr_t_defined > > > > >typedef __key_t key_t; >#define __key_t_defined > > > >#define __need_clock_t > >#define __need_time_t >#define __need_timer_t >#define __need_clockid_t ># 1 "/usr/include/time.h" 1 3 4 ># 54 "/usr/include/time.h" 3 4 >#define __clock_t_defined 1 > > > > > >typedef __clock_t clock_t; > > > > > > >#undef __need_clock_t > > >#define __time_t_defined 1 > > > > > >typedef __time_t time_t; > > > > > > >#undef __need_time_t > > > >#define __clockid_t_defined 1 > > > > >typedef __clockid_t clockid_t; > > > > > > >#define __timer_t_defined 1 > > > > >typedef __timer_t timer_t; > > >#undef __need_timer_t ># 134 "/usr/include/sys/types.h" 2 3 4 > > > >typedef __useconds_t useconds_t; >#define __useconds_t_defined > > >typedef __suseconds_t suseconds_t; >#define __suseconds_t_defined > > > >#define __need_size_t ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 235 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_size_t ># 148 "/usr/include/sys/types.h" 2 3 4 > > > >typedef unsigned long int ulong; >typedef unsigned short int ushort; >typedef unsigned int uint; ># 184 "/usr/include/sys/types.h" 3 4 >#define __intN_t(N,MODE) typedef int int ##N ##_t __attribute__ ((__mode__ (MODE))) > >#define __u_intN_t(N,MODE) typedef unsigned int u_int ##N ##_t __attribute__ ((__mode__ (MODE))) > > > >#define __int8_t_defined >typedef int int8_t __attribute__ ((__mode__ (__QI__))); >typedef int int16_t __attribute__ ((__mode__ (__HI__))); >typedef int int32_t __attribute__ ((__mode__ (__SI__))); >typedef int int64_t __attribute__ ((__mode__ (__DI__))); > > >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__))); > > > > > >#define __BIT_TYPES_DEFINED__ 1 > > > > > > > ># 1 "/usr/include/sys/select.h" 1 3 4 ># 23 "/usr/include/sys/select.h" 3 4 >#define _SYS_SELECT_H 1 > > > > > > > ># 1 "/usr/include/bits/select.h" 1 3 4 ># 26 "/usr/include/bits/select.h" 3 4 >#define __FD_ZERO(fdsp) do { int __d0, __d1; __asm__ __volatile__ ("cld; rep; stosl" : "=c" (__d0), "=D" (__d1) : "a" (0), "0" (sizeof (fd_set) / sizeof (__fd_mask)), "1" (&__FDS_BITS (fdsp)[0]) : "memory"); } while (0) ># 37 "/usr/include/bits/select.h" 3 4 >#define __FD_SET(fd,fdsp) __asm__ __volatile__ ("btsl %1,%0" : "=m" (__FDS_BITS (fdsp)[__FDELT (fd)]) : "r" (((int) (fd)) % __NFDBITS) : "cc","memory") > > > > >#define __FD_CLR(fd,fdsp) __asm__ __volatile__ ("btrl %1,%0" : "=m" (__FDS_BITS (fdsp)[__FDELT (fd)]) : "r" (((int) (fd)) % __NFDBITS) : "cc","memory") > > > > >#define __FD_ISSET(fd,fdsp) (__extension__ ({register char __result; __asm__ __volatile__ ("btl %1,%2 ; setcb %b0" : "=q" (__result) : "r" (((int) (fd)) % __NFDBITS), "m" (__FDS_BITS (fdsp)[__FDELT (fd)]) : "cc"); __result; })) ># 32 "/usr/include/sys/select.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 21 "/usr/include/bits/sigset.h" 3 4 >#define _SIGSET_H_types 1 > >typedef int __sig_atomic_t; > > > >#define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) >typedef struct > { > unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; > } __sigset_t; ># 35 "/usr/include/sys/select.h" 2 3 4 > > >#define __sigset_t_defined >typedef __sigset_t sigset_t; > > > >#define __need_time_t >#define __need_timespec ># 1 "/usr/include/time.h" 1 3 4 ># 83 "/usr/include/time.h" 3 4 >#undef __need_time_t ># 114 "/usr/include/time.h" 3 4 >#define __timespec_defined 1 > > > >struct timespec > { > __time_t tv_sec; > long int tv_nsec; > }; > > >#undef __need_timespec ># 45 "/usr/include/sys/select.h" 2 3 4 >#define __need_timeval ># 1 "/usr/include/bits/time.h" 1 3 4 ># 62 "/usr/include/bits/time.h" 3 4 >#undef __need_timeval > >#define _STRUCT_TIMEVAL 1 > > > > >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 47 "/usr/include/sys/select.h" 2 3 4 ># 55 "/usr/include/sys/select.h" 3 4 >typedef long int __fd_mask; > > > > > > >#define __NFDBITS (8 * sizeof (__fd_mask)) >#define __FDELT(d) ((d) / __NFDBITS) >#define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS)) > > >typedef struct > { > > > > __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; >#define __FDS_BITS(set) ((set)->fds_bits) > > > > > } fd_set; > > >#define FD_SETSIZE __FD_SETSIZE > > > >typedef __fd_mask fd_mask; > > >#define NFDBITS __NFDBITS > > > > >#define FD_SET(fd,fdsetp) __FD_SET (fd, fdsetp) >#define FD_CLR(fd,fdsetp) __FD_CLR (fd, fdsetp) >#define FD_ISSET(fd,fdsetp) __FD_ISSET (fd, fdsetp) >#define FD_ZERO(fdsetp) __FD_ZERO (fdsetp) > > > ># 109 "/usr/include/sys/select.h" 3 4 >extern int select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout); ># 121 "/usr/include/sys/select.h" 3 4 >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); > > > ># 217 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/sysmacros.h" 1 3 4 ># 21 "/usr/include/sys/sysmacros.h" 3 4 >#define _SYS_SYSMACROS_H 1 > > > > > > > >__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)); >} > > > > >#define major(dev) gnu_dev_major (dev) >#define minor(dev) gnu_dev_minor (dev) >#define makedev(maj,min) gnu_dev_makedev (maj, min) ># 220 "/usr/include/sys/types.h" 2 3 4 > > > > >typedef __blksize_t blksize_t; >#define __blksize_t_defined ># 244 "/usr/include/sys/types.h" 3 4 >typedef __blkcnt64_t blkcnt_t; >#define __blkcnt_t_defined > > >typedef __fsblkcnt64_t fsblkcnt_t; >#define __fsblkcnt_t_defined > > >typedef __fsfilcnt64_t fsfilcnt_t; >#define __fsfilcnt_t_defined > > > > >typedef __blkcnt64_t blkcnt64_t; >typedef __fsblkcnt64_t fsblkcnt64_t; >typedef __fsfilcnt64_t fsfilcnt64_t; > > > > > ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 20 "/usr/include/bits/pthreadtypes.h" 3 4 >#define _BITS_PTHREADTYPES_H 1 > >#define __SIZEOF_PTHREAD_ATTR_T 36 >#define __SIZEOF_PTHREAD_MUTEX_T 24 >#define __SIZEOF_PTHREAD_MUTEXATTR_T 4 >#define __SIZEOF_PTHREAD_COND_T 48 >#define __SIZEOF_PTHREAD_COND_COMPAT_T 12 >#define __SIZEOF_PTHREAD_CONDATTR_T 4 >#define __SIZEOF_PTHREAD_RWLOCK_T 32 >#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 >#define __SIZEOF_PTHREAD_BARRIER_T 20 >#define __SIZEOF_PTHREAD_BARRIERATTR_T 4 > > > > >typedef unsigned long int pthread_t; > > >typedef union >{ > char __size[36]; > long int __align; >} pthread_attr_t; > > > > >typedef union >{ > struct > { > int __lock; > unsigned int __count; > int __owner; > > > int __kind; > unsigned int __nusers; > int __spins; > } __data; > char __size[24]; > long int __align; >} pthread_mutex_t; > >typedef union >{ > char __size[4]; > long 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]; > long 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; > > > unsigned int __flags; > int __writer; > } __data; > char __size[32]; > long int __align; >} pthread_rwlock_t; > >typedef union >{ > char __size[8]; > long int __align; >} pthread_rwlockattr_t; > > > > > >typedef volatile int pthread_spinlock_t; > > > > >typedef union >{ > char __size[20]; > long int __align; >} pthread_barrier_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_barrierattr_t; > > > > >#define __cleanup_fct_attribute __attribute ((regparm (1))) ># 267 "/usr/include/sys/types.h" 2 3 4 > > > ># 27 "/usr/include/bits/fcntl.h" 2 3 4 > > > >#define O_ACCMODE 0003 >#define O_RDONLY 00 >#define O_WRONLY 01 >#define O_RDWR 02 >#define O_CREAT 0100 >#define O_EXCL 0200 >#define O_NOCTTY 0400 >#define O_TRUNC 01000 >#define O_APPEND 02000 >#define O_NONBLOCK 04000 >#define O_NDELAY O_NONBLOCK >#define O_SYNC 010000 >#define O_FSYNC O_SYNC >#define O_ASYNC 020000 > > >#define O_DIRECT 040000 >#define O_DIRECTORY 0200000 >#define O_NOFOLLOW 0400000 >#define O_NOATIME 01000000 > > > > > > >#define O_DSYNC O_SYNC >#define O_RSYNC O_SYNC > > > >#define O_LARGEFILE 0100000 > > > >#define F_DUPFD 0 >#define F_GETFD 1 >#define F_SETFD 2 >#define F_GETFL 3 >#define F_SETFL 4 > > > > > >#define F_GETLK F_GETLK64 >#define F_SETLK F_SETLK64 >#define F_SETLKW F_SETLKW64 > >#define F_GETLK64 12 >#define F_SETLK64 13 >#define F_SETLKW64 14 > > >#define F_SETOWN 8 >#define F_GETOWN 9 > > > >#define F_SETSIG 10 >#define F_GETSIG 11 > > > >#define F_SETLEASE 1024 >#define F_GETLEASE 1025 >#define F_NOTIFY 1026 > > > >#define FD_CLOEXEC 1 > > >#define F_RDLCK 0 >#define F_WRLCK 1 >#define F_UNLCK 2 > > >#define F_EXLCK 4 >#define F_SHLCK 8 > > > >#define LOCK_SH 1 >#define LOCK_EX 2 >#define LOCK_NB 4 > >#define LOCK_UN 8 > > > >#define LOCK_MAND 32 >#define LOCK_READ 64 >#define LOCK_WRITE 128 >#define LOCK_RW 192 > > > > >#define DN_ACCESS 0x00000001 >#define DN_MODIFY 0x00000002 >#define DN_CREATE 0x00000004 >#define DN_DELETE 0x00000008 >#define DN_RENAME 0x00000010 >#define DN_ATTRIB 0x00000020 >#define DN_MULTISHOT 0x80000000 > > >struct flock > { > short int l_type; > short int l_whence; > > > > > __off64_t l_start; > __off64_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; > }; > > > > > >#define FAPPEND O_APPEND >#define FFSYNC O_FSYNC >#define FASYNC O_ASYNC >#define FNONBLOCK O_NONBLOCK >#define FNDELAY O_NDELAY > > > > >#define POSIX_FADV_NORMAL 0 >#define POSIX_FADV_RANDOM 1 >#define POSIX_FADV_SEQUENTIAL 2 >#define POSIX_FADV_WILLNEED 3 >#define POSIX_FADV_DONTNEED 4 >#define POSIX_FADV_NOREUSE 5 > > > > > >extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) > __attribute__ ((__nothrow__)); > > ># 34 "/usr/include/fcntl.h" 2 3 4 > > > ># 1 "/usr/include/sys/stat.h" 1 3 4 ># 24 "/usr/include/sys/stat.h" 3 4 >#define _SYS_STAT_H 1 > > > > > > > >#define __need_time_t > > >#define __need_timespec > ># 1 "/usr/include/time.h" 1 3 4 ># 83 "/usr/include/time.h" 3 4 >#undef __need_time_t ># 125 "/usr/include/time.h" 3 4 >#undef __need_timespec ># 38 "/usr/include/sys/stat.h" 2 3 4 ># 103 "/usr/include/sys/stat.h" 3 4 > > ># 1 "/usr/include/bits/stat.h" 1 3 4 ># 24 "/usr/include/bits/stat.h" 3 4 >#define _STAT_VER_LINUX_OLD 1 >#define _STAT_VER_KERNEL 1 >#define _STAT_VER_SVR4 2 >#define _STAT_VER_LINUX 3 >#define _STAT_VER _STAT_VER_LINUX > > >#define _MKNOD_VER_LINUX 1 >#define _MKNOD_VER_SVR4 2 >#define _MKNOD_VER _MKNOD_VER_LINUX > > >struct stat > { > __dev_t st_dev; > unsigned short int __pad1; > > > > __ino_t __st_ino; > > __mode_t st_mode; > __nlink_t st_nlink; > __uid_t st_uid; > __gid_t st_gid; > __dev_t st_rdev; > unsigned short int __pad2; > > > > __off64_t st_size; > > __blksize_t st_blksize; > > > > > __blkcnt64_t st_blocks; ># 70 "/usr/include/bits/stat.h" 3 4 > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; >#define st_atime st_atim.tv_sec >#define st_mtime st_mtim.tv_sec >#define st_ctime st_ctim.tv_sec ># 88 "/usr/include/bits/stat.h" 3 4 > __ino64_t st_ino; > > }; > > >struct stat64 > { > __dev_t st_dev; > unsigned int __pad1; > > __ino_t __st_ino; > __mode_t st_mode; > __nlink_t st_nlink; > __uid_t st_uid; > __gid_t st_gid; > __dev_t st_rdev; > unsigned int __pad2; > __off64_t st_size; > __blksize_t st_blksize; > > __blkcnt64_t st_blocks; > > > > > > > > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; ># 127 "/usr/include/bits/stat.h" 3 4 > __ino64_t st_ino; > }; > > > >#define _STATBUF_ST_BLKSIZE >#define _STATBUF_ST_RDEV > >#define _STATBUF_ST_NSEC > > > >#define __S_IFMT 0170000 > > >#define __S_IFDIR 0040000 >#define __S_IFCHR 0020000 >#define __S_IFBLK 0060000 >#define __S_IFREG 0100000 >#define __S_IFIFO 0010000 >#define __S_IFLNK 0120000 >#define __S_IFSOCK 0140000 > > > >#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode) >#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode) >#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode) > > > >#define __S_ISUID 04000 >#define __S_ISGID 02000 >#define __S_ISVTX 01000 >#define __S_IREAD 0400 >#define __S_IWRITE 0200 >#define __S_IEXEC 0100 ># 106 "/usr/include/sys/stat.h" 2 3 4 > > >#define S_IFMT __S_IFMT >#define S_IFDIR __S_IFDIR >#define S_IFCHR __S_IFCHR >#define S_IFBLK __S_IFBLK >#define S_IFREG __S_IFREG > >#define S_IFIFO __S_IFIFO > > >#define S_IFLNK __S_IFLNK > > > >#define S_IFSOCK __S_IFSOCK > > > > > >#define __S_ISTYPE(mode,mask) (((mode) & __S_IFMT) == (mask)) > >#define S_ISDIR(mode) __S_ISTYPE((mode), __S_IFDIR) >#define S_ISCHR(mode) __S_ISTYPE((mode), __S_IFCHR) >#define S_ISBLK(mode) __S_ISTYPE((mode), __S_IFBLK) >#define S_ISREG(mode) __S_ISTYPE((mode), __S_IFREG) > >#define S_ISFIFO(mode) __S_ISTYPE((mode), __S_IFIFO) > > >#define S_ISLNK(mode) __S_ISTYPE((mode), __S_IFLNK) ># 146 "/usr/include/sys/stat.h" 3 4 >#define S_ISSOCK(mode) __S_ISTYPE((mode), __S_IFSOCK) > > > > > > > >#define S_TYPEISMQ(buf) __S_TYPEISMQ(buf) >#define S_TYPEISSEM(buf) __S_TYPEISSEM(buf) >#define S_TYPEISSHM(buf) __S_TYPEISSHM(buf) > > > > > >#define S_ISUID __S_ISUID >#define S_ISGID __S_ISGID > > > >#define S_ISVTX __S_ISVTX > > >#define S_IRUSR __S_IREAD >#define S_IWUSR __S_IWRITE >#define S_IXUSR __S_IEXEC > >#define S_IRWXU (__S_IREAD|__S_IWRITE|__S_IEXEC) > > >#define S_IREAD S_IRUSR >#define S_IWRITE S_IWUSR >#define S_IEXEC S_IXUSR > > >#define S_IRGRP (S_IRUSR >> 3) >#define S_IWGRP (S_IWUSR >> 3) >#define S_IXGRP (S_IXUSR >> 3) > >#define S_IRWXG (S_IRWXU >> 3) > >#define S_IROTH (S_IRGRP >> 3) >#define S_IWOTH (S_IWGRP >> 3) >#define S_IXOTH (S_IXGRP >> 3) > >#define S_IRWXO (S_IRWXG >> 3) > > > > >#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) >#define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) >#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) > >#define S_BLKSIZE 512 ># 215 "/usr/include/sys/stat.h" 3 4 >extern int stat (const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "stat64") __attribute__ ((__nothrow__)) > > __attribute__ ((__nonnull__ (1, 2))); >extern int fstat (int __fd, struct stat *__buf) __asm__ ("" "fstat64") __attribute__ ((__nothrow__)) > __attribute__ ((__nonnull__ (2))); > > > > > > >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))); ># 239 "/usr/include/sys/stat.h" 3 4 >extern int lstat (const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "lstat64") __attribute__ ((__nothrow__)) > > > __attribute__ ((__nonnull__ (1, 2))); > > > > > >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 __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 mknod (const char *__path, __mode_t __mode, __dev_t __dev) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int mkfifo (const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 332 "/usr/include/sys/stat.h" 3 4 >extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) __asm__ ("" "__fxstat64") __attribute__ ((__nothrow__)) > > __attribute__ ((__nonnull__ (3))); >extern int __xstat (int __ver, const char *__filename, struct stat *__stat_buf) __asm__ ("" "__xstat64") __attribute__ ((__nothrow__)) > > __attribute__ ((__nonnull__ (2, 3))); >extern int __lxstat (int __ver, const char *__filename, struct stat *__stat_buf) __asm__ ("" "__lxstat64") __attribute__ ((__nothrow__)) > > __attribute__ ((__nonnull__ (2, 3))); ># 350 "/usr/include/sys/stat.h" 3 4 >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 __xmknod (int __ver, const char *__path, __mode_t __mode, > __dev_t *__dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); > > > > >extern __inline__ int >__attribute__ ((__nothrow__)) stat (const char *__path, struct stat *__statbuf) >{ > return __xstat (3, __path, __statbuf); >} > > >extern __inline__ int >__attribute__ ((__nothrow__)) lstat (const char *__path, struct stat *__statbuf) >{ > return __lxstat (3, __path, __statbuf); >} > > >extern __inline__ int >__attribute__ ((__nothrow__)) fstat (int __fd, struct stat *__statbuf) >{ > return __fxstat (3, __fd, __statbuf); >} > > >extern __inline__ int >__attribute__ ((__nothrow__)) mknod (const char *__path, __mode_t __mode, __dev_t __dev) >{ > return __xmknod (1, __path, __mode, &__dev); >} > > > > > >extern __inline__ int >__attribute__ ((__nothrow__)) stat64 (const char *__path, struct stat64 *__statbuf) >{ > return __xstat64 (3, __path, __statbuf); >} > > >extern __inline__ int >__attribute__ ((__nothrow__)) lstat64 (const char *__path, struct stat64 *__statbuf) >{ > return __lxstat64 (3, __path, __statbuf); >} > > >extern __inline__ int >__attribute__ ((__nothrow__)) fstat64 (int __fd, struct stat64 *__statbuf) >{ > return __fxstat64 (3, __fd, __statbuf); >} > > > > > ># 38 "/usr/include/fcntl.h" 2 3 4 > > > > > > >#define R_OK 4 >#define W_OK 2 >#define X_OK 1 >#define F_OK 0 > > > > > >#define SEEK_SET 0 >#define SEEK_CUR 1 >#define SEEK_END 2 > > > > > > > >extern int fcntl (int __fd, int __cmd, ...); ># 75 "/usr/include/fcntl.h" 3 4 >extern int open (const char *__file, int __oflag, ...) __asm__ ("" "open64") > __attribute__ ((__nonnull__ (1))); > > > > > >extern int open64 (const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); ># 94 "/usr/include/fcntl.h" 3 4 >extern int creat (const char *__file, __mode_t __mode) __asm__ ("" "creat64") __attribute__ ((__nonnull__ (1))); > > > > > > >extern int creat64 (const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); ># 114 "/usr/include/fcntl.h" 3 4 >#define F_ULOCK 0 >#define F_LOCK 1 >#define F_TLOCK 2 >#define F_TEST 3 > > > > > >extern int lockf (int __fd, int __cmd, __off64_t __len) __asm__ ("" "lockf64"); > > > > > >extern int lockf64 (int __fd, int __cmd, __off64_t __len); ># 141 "/usr/include/fcntl.h" 3 4 >extern int posix_fadvise (int __fd, __off64_t __offset, __off64_t __len, int __advise) __asm__ ("" "posix_fadvise64") __attribute__ ((__nothrow__)); > > > > > > > >extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, > int __advise) __attribute__ ((__nothrow__)); ># 162 "/usr/include/fcntl.h" 3 4 >extern int posix_fallocate (int __fd, __off64_t __offset, __off64_t __len) __asm__ ("" "posix_fallocate64"); > > > > > > > >extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); > > > > ># 25 "readelf.c" 2 ># 1 "../libelf/gelf.h" 1 ># 18 "../libelf/gelf.h" >#define _GELF_H 1 > ># 1 "../libelf/libelf.h" 1 ># 18 "../libelf/libelf.h" >#define _LIBELF_H 1 > > > > ># 1 "../libelf/elf.h" 1 ># 21 "../libelf/elf.h" >#define _ELF_H 1 > > > > > > > ># 1 "/usr/include/stdint.h" 1 3 4 ># 24 "/usr/include/stdint.h" 3 4 >#define _STDINT_H 1 > > > ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 19 "/usr/include/bits/wordsize.h" 3 4 >#define __WORDSIZE 32 ># 29 "/usr/include/stdint.h" 2 3 4 ># 49 "/usr/include/stdint.h" 3 4 >typedef unsigned char uint8_t; >typedef unsigned short int uint16_t; > >typedef unsigned int uint32_t; >#define __uint32_t_defined > > > > >__extension__ >typedef unsigned long long int uint64_t; > > > > > > >typedef signed char int_least8_t; >typedef short int int_least16_t; >typedef int int_least32_t; > > > >__extension__ >typedef long long int int_least64_t; > > > >typedef unsigned char uint_least8_t; >typedef unsigned short int uint_least16_t; >typedef unsigned int uint_least32_t; > > > >__extension__ >typedef unsigned long long int uint_least64_t; > > > > > > >typedef signed char int_fast8_t; > > > > > >typedef int int_fast16_t; >typedef int int_fast32_t; >__extension__ >typedef long long int int_fast64_t; > > > >typedef unsigned char uint_fast8_t; > > > > > >typedef unsigned int uint_fast16_t; >typedef unsigned int uint_fast32_t; >__extension__ >typedef unsigned long long int uint_fast64_t; ># 126 "/usr/include/stdint.h" 3 4 >typedef int intptr_t; >#define __intptr_t_defined > >typedef unsigned int uintptr_t; ># 138 "/usr/include/stdint.h" 3 4 >__extension__ >typedef long long int intmax_t; >__extension__ >typedef unsigned long long int uintmax_t; ># 153 "/usr/include/stdint.h" 3 4 >#define __INT64_C(c) c ## LL >#define __UINT64_C(c) c ## ULL > > > > > >#define INT8_MIN (-128) >#define INT16_MIN (-32767-1) >#define INT32_MIN (-2147483647-1) >#define INT64_MIN (-__INT64_C(9223372036854775807)-1) > >#define INT8_MAX (127) >#define INT16_MAX (32767) >#define INT32_MAX (2147483647) >#define INT64_MAX (__INT64_C(9223372036854775807)) > > >#define UINT8_MAX (255) >#define UINT16_MAX (65535) >#define UINT32_MAX (4294967295U) >#define UINT64_MAX (__UINT64_C(18446744073709551615)) > > > >#define INT_LEAST8_MIN (-128) >#define INT_LEAST16_MIN (-32767-1) >#define INT_LEAST32_MIN (-2147483647-1) >#define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1) > >#define INT_LEAST8_MAX (127) >#define INT_LEAST16_MAX (32767) >#define INT_LEAST32_MAX (2147483647) >#define INT_LEAST64_MAX (__INT64_C(9223372036854775807)) > > >#define UINT_LEAST8_MAX (255) >#define UINT_LEAST16_MAX (65535) >#define UINT_LEAST32_MAX (4294967295U) >#define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615)) > > > >#define INT_FAST8_MIN (-128) > > > > >#define INT_FAST16_MIN (-2147483647-1) >#define INT_FAST32_MIN (-2147483647-1) > >#define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1) > >#define INT_FAST8_MAX (127) > > > > >#define INT_FAST16_MAX (2147483647) >#define INT_FAST32_MAX (2147483647) > >#define INT_FAST64_MAX (__INT64_C(9223372036854775807)) > > >#define UINT_FAST8_MAX (255) > > > > >#define UINT_FAST16_MAX (4294967295U) >#define UINT_FAST32_MAX (4294967295U) > >#define UINT_FAST64_MAX (__UINT64_C(18446744073709551615)) ># 234 "/usr/include/stdint.h" 3 4 >#define INTPTR_MIN (-2147483647-1) >#define INTPTR_MAX (2147483647) >#define UINTPTR_MAX (4294967295U) > > > > >#define INTMAX_MIN (-__INT64_C(9223372036854775807)-1) > >#define INTMAX_MAX (__INT64_C(9223372036854775807)) > > >#define UINTMAX_MAX (__UINT64_C(18446744073709551615)) ># 256 "/usr/include/stdint.h" 3 4 >#define PTRDIFF_MIN (-2147483647-1) >#define PTRDIFF_MAX (2147483647) > > > >#define SIG_ATOMIC_MIN (-2147483647-1) >#define SIG_ATOMIC_MAX (2147483647) > > > > > >#define SIZE_MAX (4294967295U) > > > > > >#define WCHAR_MIN __WCHAR_MIN >#define WCHAR_MAX __WCHAR_MAX > > > >#define WINT_MIN (0u) >#define WINT_MAX (4294967295u) ># 290 "/usr/include/stdint.h" 3 4 >#define INT8_C(c) c >#define INT16_C(c) c >#define INT32_C(c) c > > > >#define INT64_C(c) c ## LL > > > >#define UINT8_C(c) c ## U >#define UINT16_C(c) c ## U >#define UINT32_C(c) c ## U > > > >#define UINT64_C(c) c ## ULL > > > > > > > >#define INTMAX_C(c) c ## LL >#define UINTMAX_C(c) c ## ULL ># 30 "../libelf/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; > > > > >#define EI_NIDENT (16) > >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; > > > > > >#define EI_MAG0 0 >#define ELFMAG0 0x7f > >#define EI_MAG1 1 >#define ELFMAG1 'E' > >#define EI_MAG2 2 >#define ELFMAG2 'L' > >#define EI_MAG3 3 >#define ELFMAG3 'F' > > >#define ELFMAG "\177ELF" >#define SELFMAG 4 > >#define EI_CLASS 4 >#define ELFCLASSNONE 0 >#define ELFCLASS32 1 >#define ELFCLASS64 2 >#define ELFCLASSNUM 3 > >#define EI_DATA 5 >#define ELFDATANONE 0 >#define ELFDATA2LSB 1 >#define ELFDATA2MSB 2 >#define ELFDATANUM 3 > >#define EI_VERSION 6 > > >#define EI_OSABI 7 >#define ELFOSABI_NONE 0 >#define ELFOSABI_SYSV 0 >#define ELFOSABI_HPUX 1 >#define ELFOSABI_NETBSD 2 >#define ELFOSABI_LINUX 3 >#define ELFOSABI_SOLARIS 6 >#define ELFOSABI_AIX 7 >#define ELFOSABI_IRIX 8 >#define ELFOSABI_FREEBSD 9 >#define ELFOSABI_TRU64 10 >#define ELFOSABI_MODESTO 11 >#define ELFOSABI_OPENBSD 12 >#define ELFOSABI_ARM 97 >#define ELFOSABI_STANDALONE 255 > >#define EI_ABIVERSION 8 > >#define EI_PAD 9 > > > >#define ET_NONE 0 >#define ET_REL 1 >#define ET_EXEC 2 >#define ET_DYN 3 >#define ET_CORE 4 >#define ET_NUM 5 >#define ET_LOOS 0xfe00 >#define ET_HIOS 0xfeff >#define ET_LOPROC 0xff00 >#define ET_HIPROC 0xffff > > > >#define EM_NONE 0 >#define EM_M32 1 >#define EM_SPARC 2 >#define EM_386 3 >#define EM_68K 4 >#define EM_88K 5 >#define EM_860 7 >#define EM_MIPS 8 >#define EM_S370 9 >#define EM_MIPS_RS3_LE 10 > >#define EM_PARISC 15 >#define EM_VPP500 17 >#define EM_SPARC32PLUS 18 >#define EM_960 19 >#define EM_PPC 20 >#define EM_PPC64 21 >#define EM_S390 22 > >#define EM_V800 36 >#define EM_FR20 37 >#define EM_RH32 38 >#define EM_RCE 39 >#define EM_ARM 40 >#define EM_FAKE_ALPHA 41 >#define EM_SH 42 >#define EM_SPARCV9 43 >#define EM_TRICORE 44 >#define EM_ARC 45 >#define EM_H8_300 46 >#define EM_H8_300H 47 >#define EM_H8S 48 >#define EM_H8_500 49 >#define EM_IA_64 50 >#define EM_MIPS_X 51 >#define EM_COLDFIRE 52 >#define EM_68HC12 53 >#define EM_MMA 54 >#define EM_PCP 55 >#define EM_NCPU 56 >#define EM_NDR1 57 >#define EM_STARCORE 58 >#define EM_ME16 59 >#define EM_ST100 60 >#define EM_TINYJ 61 >#define EM_X86_64 62 >#define EM_PDSP 63 > >#define EM_FX66 66 >#define EM_ST9PLUS 67 >#define EM_ST7 68 >#define EM_68HC16 69 >#define EM_68HC11 70 >#define EM_68HC08 71 >#define EM_68HC05 72 >#define EM_SVX 73 >#define EM_ST19 74 >#define EM_VAX 75 >#define EM_CRIS 76 >#define EM_JAVELIN 77 >#define EM_FIREPATH 78 >#define EM_ZSP 79 >#define EM_MMIX 80 >#define EM_HUANY 81 >#define EM_PRISM 82 >#define EM_AVR 83 >#define EM_FR30 84 >#define EM_D10V 85 >#define EM_D30V 86 >#define EM_V850 87 >#define EM_M32R 88 >#define EM_MN10300 89 >#define EM_MN10200 90 >#define EM_PJ 91 >#define EM_OPENRISC 92 >#define EM_ARC_A5 93 >#define EM_XTENSA 94 >#define EM_NUM 95 > > > > > >#define EM_ALPHA 0x9026 > > > >#define EV_NONE 0 >#define EV_CURRENT 1 >#define EV_NUM 2 > > > >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; > > > >#define SHN_UNDEF 0 >#define SHN_LORESERVE 0xff00 >#define SHN_LOPROC 0xff00 >#define SHN_BEFORE 0xff00 > >#define SHN_AFTER 0xff01 > >#define SHN_HIPROC 0xff1f >#define SHN_LOOS 0xff20 >#define SHN_HIOS 0xff3f >#define SHN_ABS 0xfff1 >#define SHN_COMMON 0xfff2 >#define SHN_XINDEX 0xffff >#define SHN_HIRESERVE 0xffff > > > >#define SHT_NULL 0 >#define SHT_PROGBITS 1 >#define SHT_SYMTAB 2 >#define SHT_STRTAB 3 >#define SHT_RELA 4 >#define SHT_HASH 5 >#define SHT_DYNAMIC 6 >#define SHT_NOTE 7 >#define SHT_NOBITS 8 >#define SHT_REL 9 >#define SHT_SHLIB 10 >#define SHT_DYNSYM 11 >#define SHT_INIT_ARRAY 14 >#define SHT_FINI_ARRAY 15 >#define SHT_PREINIT_ARRAY 16 >#define SHT_GROUP 17 >#define SHT_SYMTAB_SHNDX 18 >#define SHT_NUM 19 >#define SHT_LOOS 0x60000000 >#define SHT_GNU_LIBLIST 0x6ffffff7 >#define SHT_CHECKSUM 0x6ffffff8 >#define SHT_LOSUNW 0x6ffffffa >#define SHT_SUNW_move 0x6ffffffa >#define SHT_SUNW_COMDAT 0x6ffffffb >#define SHT_SUNW_syminfo 0x6ffffffc >#define SHT_GNU_verdef 0x6ffffffd >#define SHT_GNU_verneed 0x6ffffffe >#define SHT_GNU_versym 0x6fffffff >#define SHT_HISUNW 0x6fffffff >#define SHT_HIOS 0x6fffffff >#define SHT_LOPROC 0x70000000 >#define SHT_HIPROC 0x7fffffff >#define SHT_LOUSER 0x80000000 >#define SHT_HIUSER 0x8fffffff > > > >#define SHF_WRITE (1 << 0) >#define SHF_ALLOC (1 << 1) >#define SHF_EXECINSTR (1 << 2) >#define SHF_MERGE (1 << 4) >#define SHF_STRINGS (1 << 5) >#define SHF_INFO_LINK (1 << 6) >#define SHF_LINK_ORDER (1 << 7) >#define SHF_OS_NONCONFORMING (1 << 8) > >#define SHF_GROUP (1 << 9) >#define SHF_TLS (1 << 10) >#define SHF_MASKOS 0x0ff00000 >#define SHF_MASKPROC 0xf0000000 >#define SHF_ORDERED (1 << 30) > >#define SHF_EXCLUDE (1 << 31) > > > >#define GRP_COMDAT 0x1 > > > >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; > > >#define SYMINFO_BT_SELF 0xffff >#define SYMINFO_BT_PARENT 0xfffe >#define SYMINFO_BT_LOWRESERVE 0xff00 > > >#define SYMINFO_FLG_DIRECT 0x0001 >#define SYMINFO_FLG_PASSTHRU 0x0002 >#define SYMINFO_FLG_COPY 0x0004 >#define SYMINFO_FLG_LAZYLOAD 0x0008 > > >#define SYMINFO_NONE 0 >#define SYMINFO_CURRENT 1 >#define SYMINFO_NUM 2 > > > > >#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) >#define ELF32_ST_TYPE(val) ((val) & 0xf) >#define ELF32_ST_INFO(bind,type) (((bind) << 4) + ((type) & 0xf)) > > >#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) >#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) >#define ELF64_ST_INFO(bind,type) ELF32_ST_INFO ((bind), (type)) > > > >#define STB_LOCAL 0 >#define STB_GLOBAL 1 >#define STB_WEAK 2 >#define STB_NUM 3 >#define STB_LOOS 10 >#define STB_HIOS 12 >#define STB_LOPROC 13 >#define STB_HIPROC 15 > > > >#define STT_NOTYPE 0 >#define STT_OBJECT 1 >#define STT_FUNC 2 >#define STT_SECTION 3 >#define STT_FILE 4 >#define STT_COMMON 5 >#define STT_TLS 6 >#define STT_NUM 7 >#define STT_LOOS 10 >#define STT_HIOS 12 >#define STT_LOPROC 13 >#define STT_HIPROC 15 > > > > > > >#define STN_UNDEF 0 > > > > >#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) > > >#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) > > >#define STV_DEFAULT 0 >#define STV_INTERNAL 1 >#define STV_HIDDEN 2 >#define STV_PROTECTED 3 > > > > >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; > > > >#define ELF32_R_SYM(val) ((val) >> 8) >#define ELF32_R_TYPE(val) ((val) & 0xff) >#define ELF32_R_INFO(sym,type) (((sym) << 8) + ((type) & 0xff)) > >#define ELF64_R_SYM(i) ((i) >> 32) >#define ELF64_R_TYPE(i) ((i) & 0xffffffff) >#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) > > > >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; > > > >#define PT_NULL 0 >#define PT_LOAD 1 >#define PT_DYNAMIC 2 >#define PT_INTERP 3 >#define PT_NOTE 4 >#define PT_SHLIB 5 >#define PT_PHDR 6 >#define PT_TLS 7 >#define PT_NUM 8 >#define PT_LOOS 0x60000000 >#define PT_GNU_EH_FRAME 0x6474e550 >#define PT_GNU_STACK 0x6474e551 >#define PT_GNU_RELRO 0x6474e552 >#define PT_PAX_FLAGS 0x65041580 >#define PT_LOSUNW 0x6ffffffa >#define PT_SUNWBSS 0x6ffffffa >#define PT_SUNWSTACK 0x6ffffffb >#define PT_HISUNW 0x6fffffff >#define PT_HIOS 0x6fffffff >#define PT_LOPROC 0x70000000 >#define PT_HIPROC 0x7fffffff > > > >#define PF_X (1 << 0) >#define PF_W (1 << 1) >#define PF_R (1 << 2) >#define PF_MASKOS 0x0ff00000 >#define PF_MASKPROC 0xf0000000 > > > >#define NT_PRSTATUS 1 >#define NT_FPREGSET 2 >#define NT_PRPSINFO 3 >#define NT_PRXREG 4 >#define NT_TASKSTRUCT 4 >#define NT_PLATFORM 5 >#define NT_AUXV 6 >#define NT_GWINDOWS 7 >#define NT_ASRS 8 >#define NT_PSTATUS 10 >#define NT_PSINFO 13 >#define NT_PRCRED 14 >#define NT_UTSNAME 15 >#define NT_LWPSTATUS 16 >#define NT_LWPSINFO 17 >#define NT_PRFPXREG 20 > > > >#define NT_VERSION 1 > > > > >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; > > > >#define DT_NULL 0 >#define DT_NEEDED 1 >#define DT_PLTRELSZ 2 >#define DT_PLTGOT 3 >#define DT_HASH 4 >#define DT_STRTAB 5 >#define DT_SYMTAB 6 >#define DT_RELA 7 >#define DT_RELASZ 8 >#define DT_RELAENT 9 >#define DT_STRSZ 10 >#define DT_SYMENT 11 >#define DT_INIT 12 >#define DT_FINI 13 >#define DT_SONAME 14 >#define DT_RPATH 15 >#define DT_SYMBOLIC 16 >#define DT_REL 17 >#define DT_RELSZ 18 >#define DT_RELENT 19 >#define DT_PLTREL 20 >#define DT_DEBUG 21 >#define DT_TEXTREL 22 >#define DT_JMPREL 23 >#define DT_BIND_NOW 24 >#define DT_INIT_ARRAY 25 >#define DT_FINI_ARRAY 26 >#define DT_INIT_ARRAYSZ 27 >#define DT_FINI_ARRAYSZ 28 >#define DT_RUNPATH 29 >#define DT_FLAGS 30 >#define DT_ENCODING 32 >#define DT_PREINIT_ARRAY 32 >#define DT_PREINIT_ARRAYSZ 33 >#define DT_NUM 34 >#define DT_LOOS 0x6000000d >#define DT_HIOS 0x6ffff000 >#define DT_LOPROC 0x70000000 >#define DT_HIPROC 0x7fffffff >#define DT_PROCNUM DT_MIPS_NUM > > > > >#define DT_VALRNGLO 0x6ffffd00 >#define DT_GNU_PRELINKED 0x6ffffdf5 >#define DT_GNU_CONFLICTSZ 0x6ffffdf6 >#define DT_GNU_LIBLISTSZ 0x6ffffdf7 >#define DT_CHECKSUM 0x6ffffdf8 >#define DT_PLTPADSZ 0x6ffffdf9 >#define DT_MOVEENT 0x6ffffdfa >#define DT_MOVESZ 0x6ffffdfb >#define DT_FEATURE_1 0x6ffffdfc >#define DT_POSFLAG_1 0x6ffffdfd > >#define DT_SYMINSZ 0x6ffffdfe >#define DT_SYMINENT 0x6ffffdff >#define DT_VALRNGHI 0x6ffffdff >#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) >#define DT_VALNUM 12 > > > > > > >#define DT_ADDRRNGLO 0x6ffffe00 >#define DT_GNU_CONFLICT 0x6ffffef8 >#define DT_GNU_LIBLIST 0x6ffffef9 >#define DT_CONFIG 0x6ffffefa >#define DT_DEPAUDIT 0x6ffffefb >#define DT_AUDIT 0x6ffffefc >#define DT_PLTPAD 0x6ffffefd >#define DT_MOVETAB 0x6ffffefe >#define DT_SYMINFO 0x6ffffeff >#define DT_ADDRRNGHI 0x6ffffeff >#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) >#define DT_ADDRNUM 10 > > > >#define DT_VERSYM 0x6ffffff0 > >#define DT_RELACOUNT 0x6ffffff9 >#define DT_RELCOUNT 0x6ffffffa > > >#define DT_FLAGS_1 0x6ffffffb >#define DT_VERDEF 0x6ffffffc > >#define DT_VERDEFNUM 0x6ffffffd >#define DT_VERNEED 0x6ffffffe > >#define DT_VERNEEDNUM 0x6fffffff >#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) >#define DT_VERSIONTAGNUM 16 > > > >#define DT_AUXILIARY 0x7ffffffd >#define DT_FILTER 0x7fffffff >#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) >#define DT_EXTRANUM 3 > > >#define DF_ORIGIN 0x00000001 >#define DF_SYMBOLIC 0x00000002 >#define DF_TEXTREL 0x00000004 >#define DF_BIND_NOW 0x00000008 >#define DF_STATIC_TLS 0x00000010 > > > >#define DF_1_NOW 0x00000001 >#define DF_1_GLOBAL 0x00000002 >#define DF_1_GROUP 0x00000004 >#define DF_1_NODELETE 0x00000008 >#define DF_1_LOADFLTR 0x00000010 >#define DF_1_INITFIRST 0x00000020 >#define DF_1_NOOPEN 0x00000040 >#define DF_1_ORIGIN 0x00000080 >#define DF_1_DIRECT 0x00000100 >#define DF_1_TRANS 0x00000200 >#define DF_1_INTERPOSE 0x00000400 >#define DF_1_NODEFLIB 0x00000800 >#define DF_1_NODUMP 0x00001000 >#define DF_1_CONFALT 0x00002000 >#define DF_1_ENDFILTEE 0x00004000 >#define DF_1_DISPRELDNE 0x00008000 >#define DF_1_DISPRELPND 0x00010000 > > >#define DTF_1_PARINIT 0x00000001 >#define DTF_1_CONFEXP 0x00000002 > > >#define DF_P1_LAZYLOAD 0x00000001 >#define DF_P1_GROUPPERM 0x00000002 > > > > >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; > > > >#define VER_DEF_NONE 0 >#define VER_DEF_CURRENT 1 >#define VER_DEF_NUM 2 > > >#define VER_FLG_BASE 0x1 >#define VER_FLG_WEAK 0x2 > > >#define VER_NDX_LOCAL 0 >#define VER_NDX_GLOBAL 1 >#define VER_NDX_LORESERVE 0xff00 >#define VER_NDX_ELIMINATE 0xff01 > > > >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; > > > >#define VER_NEED_NONE 0 >#define VER_NEED_CURRENT 1 >#define VER_NEED_NUM 2 > > > >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; > > > >#define VER_FLG_WEAK 0x2 ># 901 "../libelf/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; > > > >#define AT_NULL 0 >#define AT_IGNORE 1 >#define AT_EXECFD 2 >#define AT_PHDR 3 >#define AT_PHENT 4 >#define AT_PHNUM 5 >#define AT_PAGESZ 6 >#define AT_BASE 7 >#define AT_FLAGS 8 >#define AT_ENTRY 9 >#define AT_NOTELF 10 >#define AT_UID 11 >#define AT_EUID 12 >#define AT_GID 13 >#define AT_EGID 14 >#define AT_CLKTCK 17 > > >#define AT_PLATFORM 15 >#define AT_HWCAP 16 > > > > >#define AT_FPUCW 18 > > >#define AT_DCACHEBSIZE 19 >#define AT_ICACHEBSIZE 20 >#define AT_UCACHEBSIZE 21 > > > >#define AT_IGNOREPPC 22 > >#define AT_SECURE 23 > > > >#define AT_SYSINFO 32 >#define AT_SYSINFO_EHDR 33 > > > >#define AT_L1I_CACHESHAPE 34 >#define AT_L1D_CACHESHAPE 35 >#define AT_L2_CACHESHAPE 36 >#define AT_L3_CACHESHAPE 37 > > > > >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; > > > > >#define ELF_NOTE_SOLARIS "SUNW Solaris" > > >#define ELF_NOTE_GNU "GNU" > > > > > >#define ELF_NOTE_PAGESIZE_HINT 1 ># 1016 "../libelf/elf.h" >#define ELF_NOTE_ABI 1 > > > >#define ELF_NOTE_OS_LINUX 0 >#define ELF_NOTE_OS_GNU 1 >#define ELF_NOTE_OS_SOLARIS2 2 >#define ELF_NOTE_OS_FREEBSD 3 > > > >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; > > >#define ELF32_M_SYM(info) ((info) >> 8) >#define ELF32_M_SIZE(info) ((unsigned char) (info)) >#define ELF32_M_INFO(sym,size) (((sym) << 8) + (unsigned char) (size)) > >#define ELF64_M_SYM(info) ELF32_M_SYM (info) >#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) >#define ELF64_M_INFO(sym,size) ELF32_M_INFO (sym, size) > > > > > >#define EF_CPU32 0x00810000 > > > >#define R_68K_NONE 0 >#define R_68K_32 1 >#define R_68K_16 2 >#define R_68K_8 3 >#define R_68K_PC32 4 >#define R_68K_PC16 5 >#define R_68K_PC8 6 >#define R_68K_GOT32 7 >#define R_68K_GOT16 8 >#define R_68K_GOT8 9 >#define R_68K_GOT32O 10 >#define R_68K_GOT16O 11 >#define R_68K_GOT8O 12 >#define R_68K_PLT32 13 >#define R_68K_PLT16 14 >#define R_68K_PLT8 15 >#define R_68K_PLT32O 16 >#define R_68K_PLT16O 17 >#define R_68K_PLT8O 18 >#define R_68K_COPY 19 >#define R_68K_GLOB_DAT 20 >#define R_68K_JMP_SLOT 21 >#define R_68K_RELATIVE 22 > >#define R_68K_NUM 23 > > > > > >#define R_386_NONE 0 >#define R_386_32 1 >#define R_386_PC32 2 >#define R_386_GOT32 3 >#define R_386_PLT32 4 >#define R_386_COPY 5 >#define R_386_GLOB_DAT 6 >#define R_386_JMP_SLOT 7 >#define R_386_RELATIVE 8 >#define R_386_GOTOFF 9 >#define R_386_GOTPC 10 >#define R_386_32PLT 11 >#define R_386_TLS_TPOFF 14 >#define R_386_TLS_IE 15 > >#define R_386_TLS_GOTIE 16 > >#define R_386_TLS_LE 17 > >#define R_386_TLS_GD 18 > >#define R_386_TLS_LDM 19 > > >#define R_386_16 20 >#define R_386_PC16 21 >#define R_386_8 22 >#define R_386_PC8 23 >#define R_386_TLS_GD_32 24 > >#define R_386_TLS_GD_PUSH 25 >#define R_386_TLS_GD_CALL 26 > >#define R_386_TLS_GD_POP 27 >#define R_386_TLS_LDM_32 28 > >#define R_386_TLS_LDM_PUSH 29 >#define R_386_TLS_LDM_CALL 30 > >#define R_386_TLS_LDM_POP 31 >#define R_386_TLS_LDO_32 32 >#define R_386_TLS_IE_32 33 > >#define R_386_TLS_LE_32 34 > >#define R_386_TLS_DTPMOD32 35 >#define R_386_TLS_DTPOFF32 36 >#define R_386_TLS_TPOFF32 37 > >#define R_386_NUM 38 > > > > > >#define STT_SPARC_REGISTER 13 > > > >#define EF_SPARCV9_MM 3 >#define EF_SPARCV9_TSO 0 >#define EF_SPARCV9_PSO 1 >#define EF_SPARCV9_RMO 2 >#define EF_SPARC_LEDATA 0x800000 >#define EF_SPARC_EXT_MASK 0xFFFF00 >#define EF_SPARC_32PLUS 0x000100 >#define EF_SPARC_SUN_US1 0x000200 >#define EF_SPARC_HAL_R1 0x000400 >#define EF_SPARC_SUN_US3 0x000800 > > > >#define R_SPARC_NONE 0 >#define R_SPARC_8 1 >#define R_SPARC_16 2 >#define R_SPARC_32 3 >#define R_SPARC_DISP8 4 >#define R_SPARC_DISP16 5 >#define R_SPARC_DISP32 6 >#define R_SPARC_WDISP30 7 >#define R_SPARC_WDISP22 8 >#define R_SPARC_HI22 9 >#define R_SPARC_22 10 >#define R_SPARC_13 11 >#define R_SPARC_LO10 12 >#define R_SPARC_GOT10 13 >#define R_SPARC_GOT13 14 >#define R_SPARC_GOT22 15 >#define R_SPARC_PC10 16 >#define R_SPARC_PC22 17 >#define R_SPARC_WPLT30 18 >#define R_SPARC_COPY 19 >#define R_SPARC_GLOB_DAT 20 >#define R_SPARC_JMP_SLOT 21 >#define R_SPARC_RELATIVE 22 >#define R_SPARC_UA32 23 > > > >#define R_SPARC_PLT32 24 >#define R_SPARC_HIPLT22 25 >#define R_SPARC_LOPLT10 26 >#define R_SPARC_PCPLT32 27 >#define R_SPARC_PCPLT22 28 >#define R_SPARC_PCPLT10 29 >#define R_SPARC_10 30 >#define R_SPARC_11 31 >#define R_SPARC_64 32 >#define R_SPARC_OLO10 33 >#define R_SPARC_HH22 34 >#define R_SPARC_HM10 35 >#define R_SPARC_LM22 36 >#define R_SPARC_PC_HH22 37 >#define R_SPARC_PC_HM10 38 >#define R_SPARC_PC_LM22 39 >#define R_SPARC_WDISP16 40 >#define R_SPARC_WDISP19 41 >#define R_SPARC_7 43 >#define R_SPARC_5 44 >#define R_SPARC_6 45 >#define R_SPARC_DISP64 46 >#define R_SPARC_PLT64 47 >#define R_SPARC_HIX22 48 >#define R_SPARC_LOX10 49 >#define R_SPARC_H44 50 >#define R_SPARC_M44 51 >#define R_SPARC_L44 52 >#define R_SPARC_REGISTER 53 >#define R_SPARC_UA64 54 >#define R_SPARC_UA16 55 >#define R_SPARC_TLS_GD_HI22 56 >#define R_SPARC_TLS_GD_LO10 57 >#define R_SPARC_TLS_GD_ADD 58 >#define R_SPARC_TLS_GD_CALL 59 >#define R_SPARC_TLS_LDM_HI22 60 >#define R_SPARC_TLS_LDM_LO10 61 >#define R_SPARC_TLS_LDM_ADD 62 >#define R_SPARC_TLS_LDM_CALL 63 >#define R_SPARC_TLS_LDO_HIX22 64 >#define R_SPARC_TLS_LDO_LOX10 65 >#define R_SPARC_TLS_LDO_ADD 66 >#define R_SPARC_TLS_IE_HI22 67 >#define R_SPARC_TLS_IE_LO10 68 >#define R_SPARC_TLS_IE_LD 69 >#define R_SPARC_TLS_IE_LDX 70 >#define R_SPARC_TLS_IE_ADD 71 >#define R_SPARC_TLS_LE_HIX22 72 >#define R_SPARC_TLS_LE_LOX10 73 >#define R_SPARC_TLS_DTPMOD32 74 >#define R_SPARC_TLS_DTPMOD64 75 >#define R_SPARC_TLS_DTPOFF32 76 >#define R_SPARC_TLS_DTPOFF64 77 >#define R_SPARC_TLS_TPOFF32 78 >#define R_SPARC_TLS_TPOFF64 79 > >#define R_SPARC_NUM 80 > > > >#define DT_SPARC_REGISTER 0x70000001 >#define DT_SPARC_NUM 2 > > > >#define HWCAP_SPARC_FLUSH 1 >#define HWCAP_SPARC_STBAR 2 >#define HWCAP_SPARC_SWAP 4 >#define HWCAP_SPARC_MULDIV 8 >#define HWCAP_SPARC_V9 16 >#define HWCAP_SPARC_ULTRA3 32 > > > > > >#define EF_MIPS_NOREORDER 1 >#define EF_MIPS_PIC 2 >#define EF_MIPS_CPIC 4 >#define EF_MIPS_XGOT 8 >#define EF_MIPS_64BIT_WHIRL 16 >#define EF_MIPS_ABI2 32 >#define EF_MIPS_ABI_ON32 64 >#define EF_MIPS_ARCH 0xf0000000 > > > >#define EF_MIPS_ARCH_1 0x00000000 >#define EF_MIPS_ARCH_2 0x10000000 >#define EF_MIPS_ARCH_3 0x20000000 >#define EF_MIPS_ARCH_4 0x30000000 >#define EF_MIPS_ARCH_5 0x40000000 >#define EF_MIPS_ARCH_32 0x60000000 >#define EF_MIPS_ARCH_64 0x70000000 > > > >#define E_MIPS_ARCH_1 0x00000000 >#define E_MIPS_ARCH_2 0x10000000 >#define E_MIPS_ARCH_3 0x20000000 >#define E_MIPS_ARCH_4 0x30000000 >#define E_MIPS_ARCH_5 0x40000000 >#define E_MIPS_ARCH_32 0x60000000 >#define E_MIPS_ARCH_64 0x70000000 > > > >#define SHN_MIPS_ACOMMON 0xff00 >#define SHN_MIPS_TEXT 0xff01 >#define SHN_MIPS_DATA 0xff02 >#define SHN_MIPS_SCOMMON 0xff03 >#define SHN_MIPS_SUNDEFINED 0xff04 > > > >#define SHT_MIPS_LIBLIST 0x70000000 >#define SHT_MIPS_MSYM 0x70000001 >#define SHT_MIPS_CONFLICT 0x70000002 >#define SHT_MIPS_GPTAB 0x70000003 >#define SHT_MIPS_UCODE 0x70000004 >#define SHT_MIPS_DEBUG 0x70000005 >#define SHT_MIPS_REGINFO 0x70000006 >#define SHT_MIPS_PACKAGE 0x70000007 >#define SHT_MIPS_PACKSYM 0x70000008 >#define SHT_MIPS_RELD 0x70000009 >#define SHT_MIPS_IFACE 0x7000000b >#define SHT_MIPS_CONTENT 0x7000000c >#define SHT_MIPS_OPTIONS 0x7000000d >#define SHT_MIPS_SHDR 0x70000010 >#define SHT_MIPS_FDESC 0x70000011 >#define SHT_MIPS_EXTSYM 0x70000012 >#define SHT_MIPS_DENSE 0x70000013 >#define SHT_MIPS_PDESC 0x70000014 >#define SHT_MIPS_LOCSYM 0x70000015 >#define SHT_MIPS_AUXSYM 0x70000016 >#define SHT_MIPS_OPTSYM 0x70000017 >#define SHT_MIPS_LOCSTR 0x70000018 >#define SHT_MIPS_LINE 0x70000019 >#define SHT_MIPS_RFDESC 0x7000001a >#define SHT_MIPS_DELTASYM 0x7000001b >#define SHT_MIPS_DELTAINST 0x7000001c >#define SHT_MIPS_DELTACLASS 0x7000001d >#define SHT_MIPS_DWARF 0x7000001e >#define SHT_MIPS_DELTADECL 0x7000001f >#define SHT_MIPS_SYMBOL_LIB 0x70000020 >#define SHT_MIPS_EVENTS 0x70000021 >#define SHT_MIPS_TRANSLATE 0x70000022 >#define SHT_MIPS_PIXIE 0x70000023 >#define SHT_MIPS_XLATE 0x70000024 >#define SHT_MIPS_XLATE_DEBUG 0x70000025 >#define SHT_MIPS_WHIRL 0x70000026 >#define SHT_MIPS_EH_REGION 0x70000027 >#define SHT_MIPS_XLATE_OLD 0x70000028 >#define SHT_MIPS_PDR_EXCEPTION 0x70000029 > > > >#define SHF_MIPS_GPREL 0x10000000 >#define SHF_MIPS_MERGE 0x20000000 >#define SHF_MIPS_ADDR 0x40000000 >#define SHF_MIPS_STRINGS 0x80000000 >#define SHF_MIPS_NOSTRIP 0x08000000 >#define SHF_MIPS_LOCAL 0x04000000 >#define SHF_MIPS_NAMES 0x02000000 >#define SHF_MIPS_NODUPE 0x01000000 > > > > > >#define STO_MIPS_DEFAULT 0x0 >#define STO_MIPS_INTERNAL 0x1 >#define STO_MIPS_HIDDEN 0x2 >#define STO_MIPS_PROTECTED 0x3 >#define STO_MIPS_SC_ALIGN_UNUSED 0xff > > >#define STB_MIPS_SPLIT_COMMON 13 > > > >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; > > > >#define ODK_NULL 0 >#define ODK_REGINFO 1 >#define ODK_EXCEPTIONS 2 >#define ODK_PAD 3 >#define ODK_HWPATCH 4 >#define ODK_FILL 5 >#define ODK_TAGS 6 >#define ODK_HWAND 7 >#define ODK_HWOR 8 > > > >#define OEX_FPU_MIN 0x1f >#define OEX_FPU_MAX 0x1f00 >#define OEX_PAGE0 0x10000 >#define OEX_SMM 0x20000 >#define OEX_FPDBUG 0x40000 >#define OEX_PRECISEFP OEX_FPDBUG >#define OEX_DISMISS 0x80000 > >#define OEX_FPU_INVAL 0x10 >#define OEX_FPU_DIV0 0x08 >#define OEX_FPU_OFLO 0x04 >#define OEX_FPU_UFLO 0x02 >#define OEX_FPU_INEX 0x01 > > > >#define OHW_R4KEOP 0x1 >#define OHW_R8KPFETCH 0x2 >#define OHW_R5KEOP 0x4 >#define OHW_R5KCVTL 0x8 > >#define OPAD_PREFIX 0x1 >#define OPAD_POSTFIX 0x2 >#define OPAD_SYMBOL 0x4 > > > >typedef struct >{ > Elf32_Word hwp_flags1; > Elf32_Word hwp_flags2; >} Elf_Options_Hw; > > > >#define OHWA0_R4KEOP_CHECKED 0x00000001 >#define OHWA1_R4KEOP_CLEAN 0x00000002 > > > >#define R_MIPS_NONE 0 >#define R_MIPS_16 1 >#define R_MIPS_32 2 >#define R_MIPS_REL32 3 >#define R_MIPS_26 4 >#define R_MIPS_HI16 5 >#define R_MIPS_LO16 6 >#define R_MIPS_GPREL16 7 >#define R_MIPS_LITERAL 8 >#define R_MIPS_GOT16 9 >#define R_MIPS_PC16 10 >#define R_MIPS_CALL16 11 >#define R_MIPS_GPREL32 12 > >#define R_MIPS_SHIFT5 16 >#define R_MIPS_SHIFT6 17 >#define R_MIPS_64 18 >#define R_MIPS_GOT_DISP 19 >#define R_MIPS_GOT_PAGE 20 >#define R_MIPS_GOT_OFST 21 >#define R_MIPS_GOT_HI16 22 >#define R_MIPS_GOT_LO16 23 >#define R_MIPS_SUB 24 >#define R_MIPS_INSERT_A 25 >#define R_MIPS_INSERT_B 26 >#define R_MIPS_DELETE 27 >#define R_MIPS_HIGHER 28 >#define R_MIPS_HIGHEST 29 >#define R_MIPS_CALL_HI16 30 >#define R_MIPS_CALL_LO16 31 >#define R_MIPS_SCN_DISP 32 >#define R_MIPS_REL16 33 >#define R_MIPS_ADD_IMMEDIATE 34 >#define R_MIPS_PJUMP 35 >#define R_MIPS_RELGOT 36 >#define R_MIPS_JALR 37 >#define R_MIPS_TLS_DTPMOD32 38 >#define R_MIPS_TLS_DTPREL32 39 >#define R_MIPS_TLS_DTPMOD64 40 >#define R_MIPS_TLS_DTPREL64 41 >#define R_MIPS_TLS_GD 42 >#define R_MIPS_TLS_LDM 43 >#define R_MIPS_TLS_DTPREL_HI16 44 >#define R_MIPS_TLS_DTPREL_LO16 45 >#define R_MIPS_TLS_GOTTPREL 46 >#define R_MIPS_TLS_TPREL32 47 >#define R_MIPS_TLS_TPREL64 48 >#define R_MIPS_TLS_TPREL_HI16 49 >#define R_MIPS_TLS_TPREL_LO16 50 > >#define R_MIPS_NUM 51 > > > >#define PT_MIPS_REGINFO 0x70000000 >#define PT_MIPS_RTPROC 0x70000001 >#define PT_MIPS_OPTIONS 0x70000002 > > > >#define PF_MIPS_LOCAL 0x10000000 > > > >#define DT_MIPS_RLD_VERSION 0x70000001 >#define DT_MIPS_TIME_STAMP 0x70000002 >#define DT_MIPS_ICHECKSUM 0x70000003 >#define DT_MIPS_IVERSION 0x70000004 >#define DT_MIPS_FLAGS 0x70000005 >#define DT_MIPS_BASE_ADDRESS 0x70000006 >#define DT_MIPS_MSYM 0x70000007 >#define DT_MIPS_CONFLICT 0x70000008 >#define DT_MIPS_LIBLIST 0x70000009 >#define DT_MIPS_LOCAL_GOTNO 0x7000000a >#define DT_MIPS_CONFLICTNO 0x7000000b >#define DT_MIPS_LIBLISTNO 0x70000010 >#define DT_MIPS_SYMTABNO 0x70000011 >#define DT_MIPS_UNREFEXTNO 0x70000012 >#define DT_MIPS_GOTSYM 0x70000013 >#define DT_MIPS_HIPAGENO 0x70000014 >#define DT_MIPS_RLD_MAP 0x70000016 >#define DT_MIPS_DELTA_CLASS 0x70000017 >#define DT_MIPS_DELTA_CLASS_NO 0x70000018 > >#define DT_MIPS_DELTA_INSTANCE 0x70000019 >#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a > >#define DT_MIPS_DELTA_RELOC 0x7000001b >#define DT_MIPS_DELTA_RELOC_NO 0x7000001c > >#define DT_MIPS_DELTA_SYM 0x7000001d > >#define DT_MIPS_DELTA_SYM_NO 0x7000001e > >#define DT_MIPS_DELTA_CLASSSYM 0x70000020 > >#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 > >#define DT_MIPS_CXX_FLAGS 0x70000022 >#define DT_MIPS_PIXIE_INIT 0x70000023 >#define DT_MIPS_SYMBOL_LIB 0x70000024 >#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 >#define DT_MIPS_LOCAL_GOTIDX 0x70000026 >#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 >#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 >#define DT_MIPS_OPTIONS 0x70000029 >#define DT_MIPS_INTERFACE 0x7000002a >#define DT_MIPS_DYNSTR_ALIGN 0x7000002b >#define DT_MIPS_INTERFACE_SIZE 0x7000002c >#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d > >#define DT_MIPS_PERF_SUFFIX 0x7000002e > >#define DT_MIPS_COMPACT_SIZE 0x7000002f >#define DT_MIPS_GP_VALUE 0x70000030 >#define DT_MIPS_AUX_DYNAMIC 0x70000031 >#define DT_MIPS_NUM 0x32 > > > >#define RHF_NONE 0 >#define RHF_QUICKSTART (1 << 0) >#define RHF_NOTPOT (1 << 1) >#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) >#define RHF_NO_MOVE (1 << 3) >#define RHF_SGI_ONLY (1 << 4) >#define RHF_GUARANTEE_INIT (1 << 5) >#define RHF_DELTA_C_PLUS_PLUS (1 << 6) >#define RHF_GUARANTEE_START_INIT (1 << 7) >#define RHF_PIXIE (1 << 8) >#define RHF_DEFAULT_DELAY_LOAD (1 << 9) >#define RHF_REQUICKSTART (1 << 10) >#define RHF_REQUICKSTARTED (1 << 11) >#define RHF_CORD (1 << 12) >#define RHF_NO_UNRES_UNDEF (1 << 13) >#define RHF_RLD_ORDER_SAFE (1 << 14) > > > >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; > > > > >#define LL_NONE 0 >#define LL_EXACT_MATCH (1 << 0) >#define LL_IGNORE_INT_VER (1 << 1) >#define LL_REQUIRE_MINOR (1 << 2) >#define LL_EXPORTS (1 << 3) >#define LL_DELAY_LOAD (1 << 4) >#define LL_DELTA (1 << 5) > > > >typedef Elf32_Addr Elf32_Conflict; > > > > > > >#define EF_PARISC_TRAPNIL 0x00010000 >#define EF_PARISC_EXT 0x00020000 >#define EF_PARISC_LSB 0x00040000 >#define EF_PARISC_WIDE 0x00080000 >#define EF_PARISC_NO_KABP 0x00100000 > >#define EF_PARISC_LAZYSWAP 0x00400000 >#define EF_PARISC_ARCH 0x0000ffff > > > >#define EFA_PARISC_1_0 0x020b >#define EFA_PARISC_1_1 0x0210 >#define EFA_PARISC_2_0 0x0214 > > > >#define SHN_PARISC_ANSI_COMMON 0xff00 > >#define SHN_PARISC_HUGE_COMMON 0xff01 > > > >#define SHT_PARISC_EXT 0x70000000 >#define SHT_PARISC_UNWIND 0x70000001 >#define SHT_PARISC_DOC 0x70000002 > > > >#define SHF_PARISC_SHORT 0x20000000 >#define SHF_PARISC_HUGE 0x40000000 >#define SHF_PARISC_SBP 0x80000000 > > > >#define STT_PARISC_MILLICODE 13 > >#define STT_HP_OPAQUE (STT_LOOS + 0x1) >#define STT_HP_STUB (STT_LOOS + 0x2) > > > >#define R_PARISC_NONE 0 >#define R_PARISC_DIR32 1 >#define R_PARISC_DIR21L 2 >#define R_PARISC_DIR17R 3 >#define R_PARISC_DIR17F 4 >#define R_PARISC_DIR14R 6 >#define R_PARISC_PCREL32 9 >#define R_PARISC_PCREL21L 10 >#define R_PARISC_PCREL17R 11 >#define R_PARISC_PCREL17F 12 >#define R_PARISC_PCREL14R 14 >#define R_PARISC_DPREL21L 18 >#define R_PARISC_DPREL14R 22 >#define R_PARISC_GPREL21L 26 >#define R_PARISC_GPREL14R 30 >#define R_PARISC_LTOFF21L 34 >#define R_PARISC_LTOFF14R 38 >#define R_PARISC_SECREL32 41 >#define R_PARISC_SEGBASE 48 >#define R_PARISC_SEGREL32 49 >#define R_PARISC_PLTOFF21L 50 >#define R_PARISC_PLTOFF14R 54 >#define R_PARISC_LTOFF_FPTR32 57 >#define R_PARISC_LTOFF_FPTR21L 58 >#define R_PARISC_LTOFF_FPTR14R 62 >#define R_PARISC_FPTR64 64 >#define R_PARISC_PLABEL32 65 >#define R_PARISC_PCREL64 72 >#define R_PARISC_PCREL22F 74 >#define R_PARISC_PCREL14WR 75 >#define R_PARISC_PCREL14DR 76 >#define R_PARISC_PCREL16F 77 >#define R_PARISC_PCREL16WF 78 >#define R_PARISC_PCREL16DF 79 >#define R_PARISC_DIR64 80 >#define R_PARISC_DIR14WR 83 >#define R_PARISC_DIR14DR 84 >#define R_PARISC_DIR16F 85 >#define R_PARISC_DIR16WF 86 >#define R_PARISC_DIR16DF 87 >#define R_PARISC_GPREL64 88 >#define R_PARISC_GPREL14WR 91 >#define R_PARISC_GPREL14DR 92 >#define R_PARISC_GPREL16F 93 >#define R_PARISC_GPREL16WF 94 >#define R_PARISC_GPREL16DF 95 >#define R_PARISC_LTOFF64 96 >#define R_PARISC_LTOFF14WR 99 >#define R_PARISC_LTOFF14DR 100 >#define R_PARISC_LTOFF16F 101 >#define R_PARISC_LTOFF16WF 102 >#define R_PARISC_LTOFF16DF 103 >#define R_PARISC_SECREL64 104 >#define R_PARISC_SEGREL64 112 >#define R_PARISC_PLTOFF14WR 115 >#define R_PARISC_PLTOFF14DR 116 >#define R_PARISC_PLTOFF16F 117 >#define R_PARISC_PLTOFF16WF 118 >#define R_PARISC_PLTOFF16DF 119 >#define R_PARISC_LTOFF_FPTR64 120 >#define R_PARISC_LTOFF_FPTR14WR 123 >#define R_PARISC_LTOFF_FPTR14DR 124 >#define R_PARISC_LTOFF_FPTR16F 125 >#define R_PARISC_LTOFF_FPTR16WF 126 >#define R_PARISC_LTOFF_FPTR16DF 127 >#define R_PARISC_LORESERVE 128 >#define R_PARISC_COPY 128 >#define R_PARISC_IPLT 129 >#define R_PARISC_EPLT 130 >#define R_PARISC_TPREL32 153 >#define R_PARISC_TPREL21L 154 >#define R_PARISC_TPREL14R 158 >#define R_PARISC_LTOFF_TP21L 162 >#define R_PARISC_LTOFF_TP14R 166 >#define R_PARISC_LTOFF_TP14F 167 >#define R_PARISC_TPREL64 216 >#define R_PARISC_TPREL14WR 219 >#define R_PARISC_TPREL14DR 220 >#define R_PARISC_TPREL16F 221 >#define R_PARISC_TPREL16WF 222 >#define R_PARISC_TPREL16DF 223 >#define R_PARISC_LTOFF_TP64 224 >#define R_PARISC_LTOFF_TP14WR 227 >#define R_PARISC_LTOFF_TP14DR 228 >#define R_PARISC_LTOFF_TP16F 229 >#define R_PARISC_LTOFF_TP16WF 230 >#define R_PARISC_LTOFF_TP16DF 231 >#define R_PARISC_HIRESERVE 255 > > > >#define PT_HP_TLS (PT_LOOS + 0x0) >#define PT_HP_CORE_NONE (PT_LOOS + 0x1) >#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) >#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) >#define PT_HP_CORE_COMM (PT_LOOS + 0x4) >#define PT_HP_CORE_PROC (PT_LOOS + 0x5) >#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) >#define PT_HP_CORE_STACK (PT_LOOS + 0x7) >#define PT_HP_CORE_SHM (PT_LOOS + 0x8) >#define PT_HP_CORE_MMF (PT_LOOS + 0x9) >#define PT_HP_PARALLEL (PT_LOOS + 0x10) >#define PT_HP_FASTBIND (PT_LOOS + 0x11) >#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) >#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) >#define PT_HP_STACK (PT_LOOS + 0x14) > >#define PT_PARISC_ARCHEXT 0x70000000 >#define PT_PARISC_UNWIND 0x70000001 > > > >#define PF_PARISC_SBP 0x08000000 > >#define PF_HP_PAGE_SIZE 0x00100000 >#define PF_HP_FAR_SHARED 0x00200000 >#define PF_HP_NEAR_SHARED 0x00400000 >#define PF_HP_CODE 0x01000000 >#define PF_HP_MODIFY 0x02000000 >#define PF_HP_LAZYSWAP 0x04000000 >#define PF_HP_SBP 0x08000000 > > > > > > >#define EF_ALPHA_32BIT 1 >#define EF_ALPHA_CANRELAX 2 > > > > >#define SHT_ALPHA_DEBUG 0x70000001 >#define SHT_ALPHA_REGINFO 0x70000002 > > > >#define SHF_ALPHA_GPREL 0x10000000 > > >#define STO_ALPHA_NOPV 0x80 >#define STO_ALPHA_STD_GPLOAD 0x88 > > > >#define R_ALPHA_NONE 0 >#define R_ALPHA_REFLONG 1 >#define R_ALPHA_REFQUAD 2 >#define R_ALPHA_GPREL32 3 >#define R_ALPHA_LITERAL 4 >#define R_ALPHA_LITUSE 5 >#define R_ALPHA_GPDISP 6 >#define R_ALPHA_BRADDR 7 >#define R_ALPHA_HINT 8 >#define R_ALPHA_SREL16 9 >#define R_ALPHA_SREL32 10 >#define R_ALPHA_SREL64 11 >#define R_ALPHA_GPRELHIGH 17 >#define R_ALPHA_GPRELLOW 18 >#define R_ALPHA_GPREL16 19 >#define R_ALPHA_COPY 24 >#define R_ALPHA_GLOB_DAT 25 >#define R_ALPHA_JMP_SLOT 26 >#define R_ALPHA_RELATIVE 27 >#define R_ALPHA_TLS_GD_HI 28 >#define R_ALPHA_TLSGD 29 >#define R_ALPHA_TLS_LDM 30 >#define R_ALPHA_DTPMOD64 31 >#define R_ALPHA_GOTDTPREL 32 >#define R_ALPHA_DTPREL64 33 >#define R_ALPHA_DTPRELHI 34 >#define R_ALPHA_DTPRELLO 35 >#define R_ALPHA_DTPREL16 36 >#define R_ALPHA_GOTTPREL 37 >#define R_ALPHA_TPREL64 38 >#define R_ALPHA_TPRELHI 39 >#define R_ALPHA_TPRELLO 40 >#define R_ALPHA_TPREL16 41 > >#define R_ALPHA_NUM 46 > > >#define LITUSE_ALPHA_ADDR 0 >#define LITUSE_ALPHA_BASE 1 >#define LITUSE_ALPHA_BYTOFF 2 >#define LITUSE_ALPHA_JSR 3 >#define LITUSE_ALPHA_TLS_GD 4 >#define LITUSE_ALPHA_TLS_LDM 5 > > >#define DT_ALPHA_PLTRO (DT_LOPROC + 0) >#define DT_ALPHA_NUM 1 > > > > >#define EF_PPC_EMB 0x80000000 > > >#define EF_PPC_RELOCATABLE 0x00010000 >#define EF_PPC_RELOCATABLE_LIB 0x00008000 > > > >#define R_PPC_NONE 0 >#define R_PPC_ADDR32 1 >#define R_PPC_ADDR24 2 >#define R_PPC_ADDR16 3 >#define R_PPC_ADDR16_LO 4 >#define R_PPC_ADDR16_HI 5 >#define R_PPC_ADDR16_HA 6 >#define R_PPC_ADDR14 7 >#define R_PPC_ADDR14_BRTAKEN 8 >#define R_PPC_ADDR14_BRNTAKEN 9 >#define R_PPC_REL24 10 >#define R_PPC_REL14 11 >#define R_PPC_REL14_BRTAKEN 12 >#define R_PPC_REL14_BRNTAKEN 13 >#define R_PPC_GOT16 14 >#define R_PPC_GOT16_LO 15 >#define R_PPC_GOT16_HI 16 >#define R_PPC_GOT16_HA 17 >#define R_PPC_PLTREL24 18 >#define R_PPC_COPY 19 >#define R_PPC_GLOB_DAT 20 >#define R_PPC_JMP_SLOT 21 >#define R_PPC_RELATIVE 22 >#define R_PPC_LOCAL24PC 23 >#define R_PPC_UADDR32 24 >#define R_PPC_UADDR16 25 >#define R_PPC_REL32 26 >#define R_PPC_PLT32 27 >#define R_PPC_PLTREL32 28 >#define R_PPC_PLT16_LO 29 >#define R_PPC_PLT16_HI 30 >#define R_PPC_PLT16_HA 31 >#define R_PPC_SDAREL16 32 >#define R_PPC_SECTOFF 33 >#define R_PPC_SECTOFF_LO 34 >#define R_PPC_SECTOFF_HI 35 >#define R_PPC_SECTOFF_HA 36 > > >#define R_PPC_TLS 67 >#define R_PPC_DTPMOD32 68 >#define R_PPC_TPREL16 69 >#define R_PPC_TPREL16_LO 70 >#define R_PPC_TPREL16_HI 71 >#define R_PPC_TPREL16_HA 72 >#define R_PPC_TPREL32 73 >#define R_PPC_DTPREL16 74 >#define R_PPC_DTPREL16_LO 75 >#define R_PPC_DTPREL16_HI 76 >#define R_PPC_DTPREL16_HA 77 >#define R_PPC_DTPREL32 78 >#define R_PPC_GOT_TLSGD16 79 >#define R_PPC_GOT_TLSGD16_LO 80 >#define R_PPC_GOT_TLSGD16_HI 81 >#define R_PPC_GOT_TLSGD16_HA 82 >#define R_PPC_GOT_TLSLD16 83 >#define R_PPC_GOT_TLSLD16_LO 84 >#define R_PPC_GOT_TLSLD16_HI 85 >#define R_PPC_GOT_TLSLD16_HA 86 >#define R_PPC_GOT_TPREL16 87 >#define R_PPC_GOT_TPREL16_LO 88 >#define R_PPC_GOT_TPREL16_HI 89 >#define R_PPC_GOT_TPREL16_HA 90 >#define R_PPC_GOT_DTPREL16 91 >#define R_PPC_GOT_DTPREL16_LO 92 >#define R_PPC_GOT_DTPREL16_HI 93 >#define R_PPC_GOT_DTPREL16_HA 94 > > >#define R_PPC_NUM 95 > > > >#define R_PPC_EMB_NADDR32 101 >#define R_PPC_EMB_NADDR16 102 >#define R_PPC_EMB_NADDR16_LO 103 >#define R_PPC_EMB_NADDR16_HI 104 >#define R_PPC_EMB_NADDR16_HA 105 >#define R_PPC_EMB_SDAI16 106 >#define R_PPC_EMB_SDA2I16 107 >#define R_PPC_EMB_SDA2REL 108 >#define R_PPC_EMB_SDA21 109 >#define R_PPC_EMB_MRKREF 110 >#define R_PPC_EMB_RELSEC16 111 >#define R_PPC_EMB_RELST_LO 112 >#define R_PPC_EMB_RELST_HI 113 >#define R_PPC_EMB_RELST_HA 114 >#define R_PPC_EMB_BIT_FLD 115 >#define R_PPC_EMB_RELSDA 116 > > >#define R_PPC_DIAB_SDA21_LO 180 >#define R_PPC_DIAB_SDA21_HI 181 >#define R_PPC_DIAB_SDA21_HA 182 >#define R_PPC_DIAB_RELSDA_LO 183 >#define R_PPC_DIAB_RELSDA_HI 184 >#define R_PPC_DIAB_RELSDA_HA 185 > > >#define R_PPC_REL16 249 >#define R_PPC_REL16_LO 250 >#define R_PPC_REL16_HI 251 >#define R_PPC_REL16_HA 252 > > > >#define R_PPC_TOC16 255 > > >#define DT_PPC_GOT (DT_LOPROC + 0) >#define DT_PPC_NUM 1 > > >#define R_PPC64_NONE R_PPC_NONE >#define R_PPC64_ADDR32 R_PPC_ADDR32 >#define R_PPC64_ADDR24 R_PPC_ADDR24 >#define R_PPC64_ADDR16 R_PPC_ADDR16 >#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO >#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI >#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA >#define R_PPC64_ADDR14 R_PPC_ADDR14 >#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN >#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN >#define R_PPC64_REL24 R_PPC_REL24 >#define R_PPC64_REL14 R_PPC_REL14 >#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN >#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN >#define R_PPC64_GOT16 R_PPC_GOT16 >#define R_PPC64_GOT16_LO R_PPC_GOT16_LO >#define R_PPC64_GOT16_HI R_PPC_GOT16_HI >#define R_PPC64_GOT16_HA R_PPC_GOT16_HA > >#define R_PPC64_COPY R_PPC_COPY >#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT >#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT >#define R_PPC64_RELATIVE R_PPC_RELATIVE > >#define R_PPC64_UADDR32 R_PPC_UADDR32 >#define R_PPC64_UADDR16 R_PPC_UADDR16 >#define R_PPC64_REL32 R_PPC_REL32 >#define R_PPC64_PLT32 R_PPC_PLT32 >#define R_PPC64_PLTREL32 R_PPC_PLTREL32 >#define R_PPC64_PLT16_LO R_PPC_PLT16_LO >#define R_PPC64_PLT16_HI R_PPC_PLT16_HI >#define R_PPC64_PLT16_HA R_PPC_PLT16_HA > >#define R_PPC64_SECTOFF R_PPC_SECTOFF >#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO >#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI >#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA >#define R_PPC64_ADDR30 37 >#define R_PPC64_ADDR64 38 >#define R_PPC64_ADDR16_HIGHER 39 >#define R_PPC64_ADDR16_HIGHERA 40 >#define R_PPC64_ADDR16_HIGHEST 41 >#define R_PPC64_ADDR16_HIGHESTA 42 >#define R_PPC64_UADDR64 43 >#define R_PPC64_REL64 44 >#define R_PPC64_PLT64 45 >#define R_PPC64_PLTREL64 46 >#define R_PPC64_TOC16 47 >#define R_PPC64_TOC16_LO 48 >#define R_PPC64_TOC16_HI 49 >#define R_PPC64_TOC16_HA 50 >#define R_PPC64_TOC 51 >#define R_PPC64_PLTGOT16 52 >#define R_PPC64_PLTGOT16_LO 53 >#define R_PPC64_PLTGOT16_HI 54 >#define R_PPC64_PLTGOT16_HA 55 > >#define R_PPC64_ADDR16_DS 56 >#define R_PPC64_ADDR16_LO_DS 57 >#define R_PPC64_GOT16_DS 58 >#define R_PPC64_GOT16_LO_DS 59 >#define R_PPC64_PLT16_LO_DS 60 >#define R_PPC64_SECTOFF_DS 61 >#define R_PPC64_SECTOFF_LO_DS 62 >#define R_PPC64_TOC16_DS 63 >#define R_PPC64_TOC16_LO_DS 64 >#define R_PPC64_PLTGOT16_DS 65 >#define R_PPC64_PLTGOT16_LO_DS 66 > > >#define R_PPC64_TLS 67 >#define R_PPC64_DTPMOD64 68 >#define R_PPC64_TPREL16 69 >#define R_PPC64_TPREL16_LO 70 >#define R_PPC64_TPREL16_HI 71 >#define R_PPC64_TPREL16_HA 72 >#define R_PPC64_TPREL64 73 >#define R_PPC64_DTPREL16 74 >#define R_PPC64_DTPREL16_LO 75 >#define R_PPC64_DTPREL16_HI 76 >#define R_PPC64_DTPREL16_HA 77 >#define R_PPC64_DTPREL64 78 >#define R_PPC64_GOT_TLSGD16 79 >#define R_PPC64_GOT_TLSGD16_LO 80 >#define R_PPC64_GOT_TLSGD16_HI 81 >#define R_PPC64_GOT_TLSGD16_HA 82 >#define R_PPC64_GOT_TLSLD16 83 >#define R_PPC64_GOT_TLSLD16_LO 84 >#define R_PPC64_GOT_TLSLD16_HI 85 >#define R_PPC64_GOT_TLSLD16_HA 86 >#define R_PPC64_GOT_TPREL16_DS 87 >#define R_PPC64_GOT_TPREL16_LO_DS 88 >#define R_PPC64_GOT_TPREL16_HI 89 >#define R_PPC64_GOT_TPREL16_HA 90 >#define R_PPC64_GOT_DTPREL16_DS 91 >#define R_PPC64_GOT_DTPREL16_LO_DS 92 >#define R_PPC64_GOT_DTPREL16_HI 93 >#define R_PPC64_GOT_DTPREL16_HA 94 >#define R_PPC64_TPREL16_DS 95 >#define R_PPC64_TPREL16_LO_DS 96 >#define R_PPC64_TPREL16_HIGHER 97 >#define R_PPC64_TPREL16_HIGHERA 98 >#define R_PPC64_TPREL16_HIGHEST 99 >#define R_PPC64_TPREL16_HIGHESTA 100 >#define R_PPC64_DTPREL16_DS 101 >#define R_PPC64_DTPREL16_LO_DS 102 >#define R_PPC64_DTPREL16_HIGHER 103 >#define R_PPC64_DTPREL16_HIGHERA 104 >#define R_PPC64_DTPREL16_HIGHEST 105 >#define R_PPC64_DTPREL16_HIGHESTA 106 > > >#define R_PPC64_NUM 107 > > >#define DT_PPC64_GLINK (DT_LOPROC + 0) >#define DT_PPC64_OPD (DT_LOPROC + 1) >#define DT_PPC64_OPDSZ (DT_LOPROC + 2) >#define DT_PPC64_NUM 3 > > > > > >#define EF_ARM_RELEXEC 0x01 >#define EF_ARM_HASENTRY 0x02 >#define EF_ARM_INTERWORK 0x04 >#define EF_ARM_APCS_26 0x08 >#define EF_ARM_APCS_FLOAT 0x10 >#define EF_ARM_PIC 0x20 >#define EF_ARM_ALIGN8 0x40 >#define EF_ARM_NEW_ABI 0x80 >#define EF_ARM_OLD_ABI 0x100 > > > >#define EF_ARM_SYMSARESORTED 0x04 >#define EF_ARM_DYNSYMSUSESEGIDX 0x08 >#define EF_ARM_MAPSYMSFIRST 0x10 >#define EF_ARM_EABIMASK 0XFF000000 > >#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) >#define EF_ARM_EABI_UNKNOWN 0x00000000 >#define EF_ARM_EABI_VER1 0x01000000 >#define EF_ARM_EABI_VER2 0x02000000 > > >#define STT_ARM_TFUNC 0xd > > >#define SHF_ARM_ENTRYSECT 0x10000000 >#define SHF_ARM_COMDEF 0x80000000 > > > >#define PF_ARM_SB 0x10000000 > > > >#define PT_ARM_EXIDX 0x70000001 > > > >#define R_ARM_NONE 0 >#define R_ARM_PC24 1 >#define R_ARM_ABS32 2 >#define R_ARM_REL32 3 >#define R_ARM_PC13 4 >#define R_ARM_ABS16 5 >#define R_ARM_ABS12 6 >#define R_ARM_THM_ABS5 7 >#define R_ARM_ABS8 8 >#define R_ARM_SBREL32 9 >#define R_ARM_THM_PC22 10 >#define R_ARM_THM_PC8 11 >#define R_ARM_AMP_VCALL9 12 >#define R_ARM_SWI24 13 >#define R_ARM_THM_SWI8 14 >#define R_ARM_XPC25 15 >#define R_ARM_THM_XPC22 16 >#define R_ARM_TLS_DTPMOD32 17 >#define R_ARM_TLS_DTPOFF32 18 >#define R_ARM_TLS_TPOFF32 19 >#define R_ARM_COPY 20 >#define R_ARM_GLOB_DAT 21 >#define R_ARM_JUMP_SLOT 22 >#define R_ARM_RELATIVE 23 >#define R_ARM_GOTOFF 24 >#define R_ARM_GOTPC 25 >#define R_ARM_GOT32 26 >#define R_ARM_PLT32 27 >#define R_ARM_ALU_PCREL_7_0 32 >#define R_ARM_ALU_PCREL_15_8 33 >#define R_ARM_ALU_PCREL_23_15 34 >#define R_ARM_LDR_SBREL_11_0 35 >#define R_ARM_ALU_SBREL_19_12 36 >#define R_ARM_ALU_SBREL_27_20 37 >#define R_ARM_GNU_VTENTRY 100 >#define R_ARM_GNU_VTINHERIT 101 >#define R_ARM_THM_PC11 102 >#define R_ARM_THM_PC9 103 >#define R_ARM_TLS_GD32 104 > >#define R_ARM_TLS_LDM32 105 > >#define R_ARM_TLS_LDO32 106 > >#define R_ARM_TLS_IE32 107 > >#define R_ARM_TLS_LE32 108 > >#define R_ARM_RXPC25 249 >#define R_ARM_RSBREL32 250 >#define R_ARM_THM_RPC22 251 >#define R_ARM_RREL32 252 >#define R_ARM_RABS22 253 >#define R_ARM_RPC24 254 >#define R_ARM_RBASE 255 > >#define R_ARM_NUM 256 > > > > >#define EF_IA_64_MASKOS 0x0000000f >#define EF_IA_64_ABI64 0x00000010 >#define EF_IA_64_ARCH 0xff000000 > > >#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) >#define PT_IA_64_UNWIND (PT_LOPROC + 1) >#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) >#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) >#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) > > >#define PF_IA_64_NORECOV 0x80000000 > > >#define SHT_IA_64_EXT (SHT_LOPROC + 0) >#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) > > >#define SHF_IA_64_SHORT 0x10000000 >#define SHF_IA_64_NORECOV 0x20000000 > > >#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) >#define DT_IA_64_NUM 1 > > >#define R_IA64_NONE 0x00 >#define R_IA64_IMM14 0x21 >#define R_IA64_IMM22 0x22 >#define R_IA64_IMM64 0x23 >#define R_IA64_DIR32MSB 0x24 >#define R_IA64_DIR32LSB 0x25 >#define R_IA64_DIR64MSB 0x26 >#define R_IA64_DIR64LSB 0x27 >#define R_IA64_GPREL22 0x2a >#define R_IA64_GPREL64I 0x2b >#define R_IA64_GPREL32MSB 0x2c >#define R_IA64_GPREL32LSB 0x2d >#define R_IA64_GPREL64MSB 0x2e >#define R_IA64_GPREL64LSB 0x2f >#define R_IA64_LTOFF22 0x32 >#define R_IA64_LTOFF64I 0x33 >#define R_IA64_PLTOFF22 0x3a >#define R_IA64_PLTOFF64I 0x3b >#define R_IA64_PLTOFF64MSB 0x3e >#define R_IA64_PLTOFF64LSB 0x3f >#define R_IA64_FPTR64I 0x43 >#define R_IA64_FPTR32MSB 0x44 >#define R_IA64_FPTR32LSB 0x45 >#define R_IA64_FPTR64MSB 0x46 >#define R_IA64_FPTR64LSB 0x47 >#define R_IA64_PCREL60B 0x48 >#define R_IA64_PCREL21B 0x49 >#define R_IA64_PCREL21M 0x4a >#define R_IA64_PCREL21F 0x4b >#define R_IA64_PCREL32MSB 0x4c >#define R_IA64_PCREL32LSB 0x4d >#define R_IA64_PCREL64MSB 0x4e >#define R_IA64_PCREL64LSB 0x4f >#define R_IA64_LTOFF_FPTR22 0x52 >#define R_IA64_LTOFF_FPTR64I 0x53 >#define R_IA64_LTOFF_FPTR32MSB 0x54 >#define R_IA64_LTOFF_FPTR32LSB 0x55 >#define R_IA64_LTOFF_FPTR64MSB 0x56 >#define R_IA64_LTOFF_FPTR64LSB 0x57 >#define R_IA64_SEGREL32MSB 0x5c >#define R_IA64_SEGREL32LSB 0x5d >#define R_IA64_SEGREL64MSB 0x5e >#define R_IA64_SEGREL64LSB 0x5f >#define R_IA64_SECREL32MSB 0x64 >#define R_IA64_SECREL32LSB 0x65 >#define R_IA64_SECREL64MSB 0x66 >#define R_IA64_SECREL64LSB 0x67 >#define R_IA64_REL32MSB 0x6c >#define R_IA64_REL32LSB 0x6d >#define R_IA64_REL64MSB 0x6e >#define R_IA64_REL64LSB 0x6f >#define R_IA64_LTV32MSB 0x74 >#define R_IA64_LTV32LSB 0x75 >#define R_IA64_LTV64MSB 0x76 >#define R_IA64_LTV64LSB 0x77 >#define R_IA64_PCREL21BI 0x79 >#define R_IA64_PCREL22 0x7a >#define R_IA64_PCREL64I 0x7b >#define R_IA64_IPLTMSB 0x80 >#define R_IA64_IPLTLSB 0x81 >#define R_IA64_COPY 0x84 >#define R_IA64_SUB 0x85 >#define R_IA64_LTOFF22X 0x86 >#define R_IA64_LDXMOV 0x87 >#define R_IA64_TPREL14 0x91 >#define R_IA64_TPREL22 0x92 >#define R_IA64_TPREL64I 0x93 >#define R_IA64_TPREL64MSB 0x96 >#define R_IA64_TPREL64LSB 0x97 >#define R_IA64_LTOFF_TPREL22 0x9a >#define R_IA64_DTPMOD64MSB 0xa6 >#define R_IA64_DTPMOD64LSB 0xa7 >#define R_IA64_LTOFF_DTPMOD22 0xaa >#define R_IA64_DTPREL14 0xb1 >#define R_IA64_DTPREL22 0xb2 >#define R_IA64_DTPREL64I 0xb3 >#define R_IA64_DTPREL32MSB 0xb4 >#define R_IA64_DTPREL32LSB 0xb5 >#define R_IA64_DTPREL64MSB 0xb6 >#define R_IA64_DTPREL64LSB 0xb7 >#define R_IA64_LTOFF_DTPREL22 0xba > > > > >#define R_SH_NONE 0 >#define R_SH_DIR32 1 >#define R_SH_REL32 2 >#define R_SH_DIR8WPN 3 >#define R_SH_IND12W 4 >#define R_SH_DIR8WPL 5 >#define R_SH_DIR8WPZ 6 >#define R_SH_DIR8BP 7 >#define R_SH_DIR8W 8 >#define R_SH_DIR8L 9 >#define R_SH_SWITCH16 25 >#define R_SH_SWITCH32 26 >#define R_SH_USES 27 >#define R_SH_COUNT 28 >#define R_SH_ALIGN 29 >#define R_SH_CODE 30 >#define R_SH_DATA 31 >#define R_SH_LABEL 32 >#define R_SH_SWITCH8 33 >#define R_SH_GNU_VTINHERIT 34 >#define R_SH_GNU_VTENTRY 35 >#define R_SH_TLS_GD_32 144 >#define R_SH_TLS_LD_32 145 >#define R_SH_TLS_LDO_32 146 >#define R_SH_TLS_IE_32 147 >#define R_SH_TLS_LE_32 148 >#define R_SH_TLS_DTPMOD32 149 >#define R_SH_TLS_DTPOFF32 150 >#define R_SH_TLS_TPOFF32 151 >#define R_SH_GOT32 160 >#define R_SH_PLT32 161 >#define R_SH_COPY 162 >#define R_SH_GLOB_DAT 163 >#define R_SH_JMP_SLOT 164 >#define R_SH_RELATIVE 165 >#define R_SH_GOTOFF 166 >#define R_SH_GOTPC 167 > >#define R_SH_NUM 256 > > > >#define R_390_NONE 0 >#define R_390_8 1 >#define R_390_12 2 >#define R_390_16 3 >#define R_390_32 4 >#define R_390_PC32 5 >#define R_390_GOT12 6 >#define R_390_GOT32 7 >#define R_390_PLT32 8 >#define R_390_COPY 9 >#define R_390_GLOB_DAT 10 >#define R_390_JMP_SLOT 11 >#define R_390_RELATIVE 12 >#define R_390_GOTOFF32 13 >#define R_390_GOTPC 14 >#define R_390_GOT16 15 >#define R_390_PC16 16 >#define R_390_PC16DBL 17 >#define R_390_PLT16DBL 18 >#define R_390_PC32DBL 19 >#define R_390_PLT32DBL 20 >#define R_390_GOTPCDBL 21 >#define R_390_64 22 >#define R_390_PC64 23 >#define R_390_GOT64 24 >#define R_390_PLT64 25 >#define R_390_GOTENT 26 >#define R_390_GOTOFF16 27 >#define R_390_GOTOFF64 28 >#define R_390_GOTPLT12 29 >#define R_390_GOTPLT16 30 >#define R_390_GOTPLT32 31 >#define R_390_GOTPLT64 32 >#define R_390_GOTPLTENT 33 >#define R_390_PLTOFF16 34 >#define R_390_PLTOFF32 35 >#define R_390_PLTOFF64 36 >#define R_390_TLS_LOAD 37 >#define R_390_TLS_GDCALL 38 > >#define R_390_TLS_LDCALL 39 > >#define R_390_TLS_GD32 40 > >#define R_390_TLS_GD64 41 > >#define R_390_TLS_GOTIE12 42 > >#define R_390_TLS_GOTIE32 43 > >#define R_390_TLS_GOTIE64 44 > >#define R_390_TLS_LDM32 45 > >#define R_390_TLS_LDM64 46 > >#define R_390_TLS_IE32 47 > >#define R_390_TLS_IE64 48 > >#define R_390_TLS_IEENT 49 > >#define R_390_TLS_LE32 50 > >#define R_390_TLS_LE64 51 > >#define R_390_TLS_LDO32 52 > >#define R_390_TLS_LDO64 53 > >#define R_390_TLS_DTPMOD 54 >#define R_390_TLS_DTPOFF 55 >#define R_390_TLS_TPOFF 56 > >#define R_390_20 57 >#define R_390_GOT20 58 >#define R_390_GOTPLT20 59 >#define R_390_TLS_GOTIE20 60 > > >#define R_390_NUM 61 > > > >#define R_CRIS_NONE 0 >#define R_CRIS_8 1 >#define R_CRIS_16 2 >#define R_CRIS_32 3 >#define R_CRIS_8_PCREL 4 >#define R_CRIS_16_PCREL 5 >#define R_CRIS_32_PCREL 6 >#define R_CRIS_GNU_VTINHERIT 7 >#define R_CRIS_GNU_VTENTRY 8 >#define R_CRIS_COPY 9 >#define R_CRIS_GLOB_DAT 10 >#define R_CRIS_JUMP_SLOT 11 >#define R_CRIS_RELATIVE 12 >#define R_CRIS_16_GOT 13 >#define R_CRIS_32_GOT 14 >#define R_CRIS_16_GOTPLT 15 >#define R_CRIS_32_GOTPLT 16 >#define R_CRIS_32_GOTREL 17 >#define R_CRIS_32_PLT_GOTREL 18 >#define R_CRIS_32_PLT_PCREL 19 > >#define R_CRIS_NUM 20 > > > >#define R_X86_64_NONE 0 >#define R_X86_64_64 1 >#define R_X86_64_PC32 2 >#define R_X86_64_GOT32 3 >#define R_X86_64_PLT32 4 >#define R_X86_64_COPY 5 >#define R_X86_64_GLOB_DAT 6 >#define R_X86_64_JUMP_SLOT 7 >#define R_X86_64_RELATIVE 8 >#define R_X86_64_GOTPCREL 9 > >#define R_X86_64_32 10 >#define R_X86_64_32S 11 >#define R_X86_64_16 12 >#define R_X86_64_PC16 13 >#define R_X86_64_8 14 >#define R_X86_64_PC8 15 >#define R_X86_64_DTPMOD64 16 >#define R_X86_64_DTPOFF64 17 >#define R_X86_64_TPOFF64 18 >#define R_X86_64_TLSGD 19 > >#define R_X86_64_TLSLD 20 > >#define R_X86_64_DTPOFF32 21 >#define R_X86_64_GOTTPOFF 22 > >#define R_X86_64_TPOFF32 23 > >#define R_X86_64_NUM 24 > > > >#define R_MN10300_NONE 0 >#define R_MN10300_32 1 >#define R_MN10300_16 2 >#define R_MN10300_8 3 >#define R_MN10300_PCREL32 4 >#define R_MN10300_PCREL16 5 >#define R_MN10300_PCREL8 6 >#define R_MN10300_GNU_VTINHERIT 7 >#define R_MN10300_GNU_VTENTRY 8 >#define R_MN10300_24 9 >#define R_MN10300_GOTPC32 10 >#define R_MN10300_GOTPC16 11 >#define R_MN10300_GOTOFF32 12 >#define R_MN10300_GOTOFF24 13 >#define R_MN10300_GOTOFF16 14 >#define R_MN10300_PLT32 15 >#define R_MN10300_PLT16 16 >#define R_MN10300_GOT32 17 >#define R_MN10300_GOT24 18 >#define R_MN10300_GOT16 19 >#define R_MN10300_COPY 20 >#define R_MN10300_GLOB_DAT 21 >#define R_MN10300_JMP_SLOT 22 >#define R_MN10300_RELATIVE 23 > >#define R_MN10300_NUM 24 > > > >#define R_M32R_NONE 0 >#define R_M32R_16 1 >#define R_M32R_32 2 >#define R_M32R_24 3 >#define R_M32R_10_PCREL 4 >#define R_M32R_18_PCREL 5 >#define R_M32R_26_PCREL 6 >#define R_M32R_HI16_ULO 7 >#define R_M32R_HI16_SLO 8 >#define R_M32R_LO16 9 >#define R_M32R_SDA16 10 >#define R_M32R_GNU_VTINHERIT 11 >#define R_M32R_GNU_VTENTRY 12 > >#define R_M32R_16_RELA 33 >#define R_M32R_32_RELA 34 >#define R_M32R_24_RELA 35 >#define R_M32R_10_PCREL_RELA 36 >#define R_M32R_18_PCREL_RELA 37 >#define R_M32R_26_PCREL_RELA 38 >#define R_M32R_HI16_ULO_RELA 39 >#define R_M32R_HI16_SLO_RELA 40 >#define R_M32R_LO16_RELA 41 >#define R_M32R_SDA16_RELA 42 >#define R_M32R_RELA_GNU_VTINHERIT 43 >#define R_M32R_RELA_GNU_VTENTRY 44 >#define R_M32R_REL32 45 > >#define R_M32R_GOT24 48 >#define R_M32R_26_PLTREL 49 >#define R_M32R_COPY 50 >#define R_M32R_GLOB_DAT 51 >#define R_M32R_JMP_SLOT 52 >#define R_M32R_RELATIVE 53 >#define R_M32R_GOTOFF 54 >#define R_M32R_GOTPC24 55 >#define R_M32R_GOT16_HI_ULO 56 > >#define R_M32R_GOT16_HI_SLO 57 > >#define R_M32R_GOT16_LO 58 >#define R_M32R_GOTPC_HI_ULO 59 > >#define R_M32R_GOTPC_HI_SLO 60 > >#define R_M32R_GOTPC_LO 61 > >#define R_M32R_GOTOFF_HI_ULO 62 > >#define R_M32R_GOTOFF_HI_SLO 63 > >#define R_M32R_GOTOFF_LO 64 >#define R_M32R_NUM 256 > > > ># 24 "../libelf/libelf.h" 2 > > > >typedef enum >{ > ELF_T_BYTE, > ELF_T_ADDR, > ELF_T_DYN, > ELF_T_EHDR, > ELF_T_HALF, > ELF_T_OFF, > ELF_T_PHDR, > ELF_T_RELA, > ELF_T_REL, > ELF_T_SHDR, > ELF_T_SWORD, > ELF_T_SYM, > ELF_T_WORD, > ELF_T_XWORD, > ELF_T_SXWORD, > ELF_T_VDEF, > ELF_T_VDAUX, > ELF_T_VNEED, > ELF_T_VNAUX, > ELF_T_NHDR, > ELF_T_SYMINFO, > ELF_T_MOVE, > ELF_T_LIB, > > ELF_T_NUM >} Elf_Type; > > >typedef struct >{ > void *d_buf; > Elf_Type d_type; > unsigned int d_version; > size_t d_size; > off_t d_off; > size_t d_align; >} Elf_Data; > > > >typedef enum >{ > ELF_C_NULL, > ELF_C_READ, > ELF_C_RDWR, > ELF_C_WRITE, > ELF_C_CLR, > ELF_C_SET, > ELF_C_FDDONE, > > ELF_C_FDREAD, > > > ELF_C_READ_MMAP, > ELF_C_RDWR_MMAP, > ELF_C_WRITE_MMAP, > ELF_C_READ_MMAP_PRIVATE, > > ELF_C_EMPTY, > > ELF_C_NUM >} Elf_Cmd; > > > >enum >{ > ELF_F_DIRTY = 0x1, >#define ELF_F_DIRTY ELF_F_DIRTY > ELF_F_LAYOUT = 0x4, >#define ELF_F_LAYOUT ELF_F_LAYOUT > ELF_F_PERMISSIVE = 0x8 >#define ELF_F_PERMISSIVE ELF_F_PERMISSIVE >}; > > > >typedef enum >{ > ELF_K_NONE, > ELF_K_AR, > ELF_K_COFF, > ELF_K_ELF, > > ELF_K_NUM >} Elf_Kind; > > > >typedef struct >{ > char *ar_name; > time_t ar_date; > uid_t ar_uid; > gid_t ar_gid; > mode_t ar_mode; > off_t ar_size; > char *ar_rawname; >} Elf_Arhdr; > > > >typedef struct >{ > char *as_name; > size_t as_off; > unsigned long int as_hash; >} Elf_Arsym; > > > >typedef struct Elf Elf; > > >typedef struct Elf_Scn Elf_Scn; > > > > > > > >extern Elf *elf_begin (int __fildes, Elf_Cmd __cmd, Elf *__ref); > > > extern Elf *elf_clone (Elf *__elf, Elf_Cmd __cmd); > > >extern Elf *elf_memory (char *__image, size_t __size); > > >extern Elf_Cmd elf_next (Elf *__elf); > > >extern int elf_end (Elf *__elf); > > >extern off_t elf_update (Elf *__elf, Elf_Cmd __cmd); > > >extern Elf_Kind elf_kind (Elf *__elf) __attribute__ ((__pure__)); > > >extern off_t elf_getbase (Elf *__elf); > > > >extern char *elf_getident (Elf *__elf, size_t *__ptr); > > >extern Elf32_Ehdr *elf32_getehdr (Elf *__elf); > >extern Elf64_Ehdr *elf64_getehdr (Elf *__elf); > > >extern Elf32_Ehdr *elf32_newehdr (Elf *__elf); > >extern Elf64_Ehdr *elf64_newehdr (Elf *__elf); > > >extern Elf32_Phdr *elf32_getphdr (Elf *__elf); > >extern Elf64_Phdr *elf64_getphdr (Elf *__elf); > > >extern Elf32_Phdr *elf32_newphdr (Elf *__elf, size_t __cnt); > >extern Elf64_Phdr *elf64_newphdr (Elf *__elf, size_t __cnt); > > > >extern Elf_Scn *elf_getscn (Elf *__elf, size_t __index); > > >extern Elf_Scn *elf32_offscn (Elf *__elf, Elf32_Off __offset); > >extern Elf_Scn *elf64_offscn (Elf *__elf, Elf64_Off __offset); > > >extern size_t elf_ndxscn (Elf_Scn *__scn); > > >extern Elf_Scn *elf_nextscn (Elf *__elf, Elf_Scn *__scn); > > >extern Elf_Scn *elf_newscn (Elf *__elf); > > > > > >extern int elf_getshnum (Elf *__elf, size_t *__dst); > > > > > > >extern int elf_getshstrndx (Elf *__elf, size_t *__dst); > > > >extern Elf32_Shdr *elf32_getshdr (Elf_Scn *__scn); > >extern Elf64_Shdr *elf64_getshdr (Elf_Scn *__scn); > > > >extern unsigned int elf_flagelf (Elf *__elf, Elf_Cmd __cmd, > unsigned int __flags); > >extern unsigned int elf_flagehdr (Elf *__elf, Elf_Cmd __cmd, > unsigned int __flags); > >extern unsigned int elf_flagphdr (Elf *__elf, Elf_Cmd __cmd, > unsigned int __flags); > >extern unsigned int elf_flagscn (Elf_Scn *__scn, Elf_Cmd __cmd, > unsigned int __flags); > >extern unsigned int elf_flagdata (Elf_Data *__data, Elf_Cmd __cmd, > unsigned int __flags); > >extern unsigned int elf_flagshdr (Elf_Scn *__scn, Elf_Cmd __cmd, > unsigned int __flags); > > > > >extern Elf_Data *elf_getdata (Elf_Scn *__scn, Elf_Data *__data); > > >extern Elf_Data *elf_rawdata (Elf_Scn *__scn, Elf_Data *__data); > > >extern Elf_Data *elf_newdata (Elf_Scn *__scn); > > > >extern char *elf_strptr (Elf *__elf, size_t __index, size_t __offset); > > > >extern Elf_Arhdr *elf_getarhdr (Elf *__elf); > > >extern off_t elf_getaroff (Elf *__elf); > > >extern size_t elf_rand (Elf *__elf, size_t __offset); > > >extern Elf_Arsym *elf_getarsym (Elf *__elf, size_t *__ptr); > > > >extern int elf_cntl (Elf *__elf, Elf_Cmd __cmd); > > >extern char *elf_rawfile (Elf *__elf, size_t *__ptr); > > > > > >extern size_t elf32_fsize (Elf_Type __type, size_t __count, > unsigned int __version) > __attribute__ ((__const__)); > >extern size_t elf64_fsize (Elf_Type __type, size_t __count, > unsigned int __version) > __attribute__ ((__const__)); > > > > >extern Elf_Data *elf32_xlatetom (Elf_Data *__dest, const Elf_Data *__src, > unsigned int __encode); > >extern Elf_Data *elf64_xlatetom (Elf_Data *__dest, const Elf_Data *__src, > unsigned int __encode); > > > >extern Elf_Data *elf32_xlatetof (Elf_Data *__dest, const Elf_Data *__src, > unsigned int __encode); > >extern Elf_Data *elf64_xlatetof (Elf_Data *__dest, const Elf_Data *__src, > unsigned int __encode); > > > > >extern int elf_errno (void); > > > > > >extern const char *elf_errmsg (int __error); > > > >extern unsigned int elf_version (unsigned int __version); > > >extern void elf_fill (int __fill); > > >extern unsigned long int elf_hash (const char *__string) > __attribute__ ((__pure__)); > > > >extern long int elf32_checksum (Elf *__elf); > >extern long int elf64_checksum (Elf *__elf); ># 21 "../libelf/gelf.h" 2 ># 32 "../libelf/gelf.h" >typedef Elf64_Half GElf_Half; > > >typedef Elf64_Word GElf_Word; >typedef Elf64_Sword GElf_Sword; > > >typedef Elf64_Xword GElf_Xword; >typedef Elf64_Sxword GElf_Sxword; > > >typedef Elf64_Addr GElf_Addr; > > >typedef Elf64_Off GElf_Off; > > > >typedef Elf64_Ehdr GElf_Ehdr; > > >typedef Elf64_Shdr GElf_Shdr; > > > > >typedef Elf64_Section GElf_Section; > > >typedef Elf64_Sym GElf_Sym; > > > >typedef Elf64_Syminfo GElf_Syminfo; > > >typedef Elf64_Rel GElf_Rel; > > >typedef Elf64_Rela GElf_Rela; > > >typedef Elf64_Phdr GElf_Phdr; > > >typedef Elf64_Dyn GElf_Dyn; > > > >typedef Elf64_Verdef GElf_Verdef; > > >typedef Elf64_Verdaux GElf_Verdaux; > > >typedef Elf64_Verneed GElf_Verneed; > > >typedef Elf64_Vernaux GElf_Vernaux; > > > >typedef Elf64_Versym GElf_Versym; > > > >typedef Elf64_auxv_t GElf_auxv_t; > > > >typedef Elf64_Nhdr GElf_Nhdr; > > > >typedef Elf64_Move GElf_Move; > > > >typedef Elf64_Lib GElf_Lib; > > > > >#define GELF_ST_BIND(val) ELF64_ST_BIND (val) >#define GELF_ST_TYPE(val) ELF64_ST_TYPE (val) >#define GELF_ST_INFO(bind,type) ELF64_ST_INFO (bind, type) > > > >#define GELF_ST_VISIBILITY(val) ELF64_ST_VISIBILITY (val) > > > > >#define GELF_R_SYM(info) ELF64_R_SYM (info) >#define GELF_R_TYPE(info) ELF64_R_TYPE (info) >#define GELF_R_INFO(sym,type) ELF64_R_INFO (sym, type) > > > >#define GELF_M_SYM(info) ELF64_M_SYM (info) >#define GELF_M_SIZE(info) ELF64_M_SIZE (info) >#define GELF_M_INFO(sym,size) ELF64_M_INFO (sym, size) > > > >extern int gelf_getclass (Elf *__elf); > > > > > >extern size_t gelf_fsize (Elf *__elf, Elf_Type __type, size_t __count, > unsigned int __version); > > >extern GElf_Ehdr *gelf_getehdr (Elf *__elf, GElf_Ehdr *__dest); > > >extern int gelf_update_ehdr (Elf *__elf, GElf_Ehdr *__src); > > >extern unsigned long int gelf_newehdr (Elf *__elf, int __class); > > >extern Elf_Scn *gelf_offscn (Elf *__elf, GElf_Off __offset); > > >extern GElf_Shdr *gelf_getshdr (Elf_Scn *__scn, GElf_Shdr *__dst); > > >extern int gelf_update_shdr (Elf_Scn *__scn, GElf_Shdr *__src); > > >extern GElf_Phdr *gelf_getphdr (Elf *__elf, int __ndx, GElf_Phdr *__dst); > > >extern int gelf_update_phdr (Elf *__elf, int __ndx, GElf_Phdr *__src); > > >extern unsigned long int gelf_newphdr (Elf *__elf, size_t __phnum); > > > > >extern Elf_Data *gelf_xlatetom (Elf *__elf, Elf_Data *__dest, > const Elf_Data *__src, unsigned int __encode); > > > >extern Elf_Data *gelf_xlatetof (Elf *__elf, Elf_Data *__dest, > const Elf_Data *__src, unsigned int __encode); > > > >extern GElf_Rel *gelf_getrel (Elf_Data *__data, int __ndx, GElf_Rel *__dst); > > >extern GElf_Rela *gelf_getrela (Elf_Data *__data, int __ndx, GElf_Rela *__dst); > > >extern int gelf_update_rel (Elf_Data *__dst, int __ndx, GElf_Rel *__src); > > >extern int gelf_update_rela (Elf_Data *__dst, int __ndx, GElf_Rela *__src); > > > >extern GElf_Sym *gelf_getsym (Elf_Data *__data, int __ndx, GElf_Sym *__dst); > > >extern int gelf_update_sym (Elf_Data *__data, int __ndx, GElf_Sym *__src); > > > > >extern GElf_Sym *gelf_getsymshndx (Elf_Data *__symdata, Elf_Data *__shndxdata, > int __ndx, GElf_Sym *__sym, > Elf32_Word *__xshndx); > > > >extern int gelf_update_symshndx (Elf_Data *__symdata, Elf_Data *__shndxdata, > int __ndx, GElf_Sym *__sym, > Elf32_Word __xshndx); > > > > >extern GElf_Syminfo *gelf_getsyminfo (Elf_Data *__data, int __ndx, > GElf_Syminfo *__dst); > > > >extern int gelf_update_syminfo (Elf_Data *__data, int __ndx, > GElf_Syminfo *__src); > > > >extern GElf_Dyn *gelf_getdyn (Elf_Data *__data, int __ndx, GElf_Dyn *__dst); > > >extern int gelf_update_dyn (Elf_Data *__dst, int __ndx, GElf_Dyn *__src); > > > >extern GElf_Move *gelf_getmove (Elf_Data *__data, int __ndx, GElf_Move *__dst); > > >extern int gelf_update_move (Elf_Data *__data, int __ndx, > GElf_Move *__src); > > > >extern GElf_Lib *gelf_getlib (Elf_Data *__data, int __ndx, GElf_Lib *__dst); > > >extern int gelf_update_lib (Elf_Data *__data, int __ndx, GElf_Lib *__src); > > > > >extern GElf_Versym *gelf_getversym (Elf_Data *__data, int __ndx, > GElf_Versym *__dst); > > >extern int gelf_update_versym (Elf_Data *__data, int __ndx, > GElf_Versym *__src); > > > >extern GElf_Verneed *gelf_getverneed (Elf_Data *__data, int __offset, > GElf_Verneed *__dst); > > >extern int gelf_update_verneed (Elf_Data *__data, int __offset, > GElf_Verneed *__src); > > >extern GElf_Vernaux *gelf_getvernaux (Elf_Data *__data, int __offset, > GElf_Vernaux *__dst); > > >extern int gelf_update_vernaux (Elf_Data *__data, int __offset, > GElf_Vernaux *__src); > > > >extern GElf_Verdef *gelf_getverdef (Elf_Data *__data, int __offset, > GElf_Verdef *__dst); > > >extern int gelf_update_verdef (Elf_Data *__data, int __offset, > GElf_Verdef *__src); > > > >extern GElf_Verdaux *gelf_getverdaux (Elf_Data *__data, int __offset, > GElf_Verdaux *__dst); > > >extern int gelf_update_verdaux (Elf_Data *__data, int __offset, > GElf_Verdaux *__src); > > > >extern char *gelf_rawchunk (Elf *__elf, GElf_Off __offset, GElf_Word __size); > > >extern void gelf_freechunk (Elf *__elf, char *__ptr); > > > >extern long int gelf_checksum (Elf *__elf); ># 26 "readelf.c" 2 ># 1 "/usr/include/inttypes.h" 1 3 4 ># 24 "/usr/include/inttypes.h" 3 4 >#define _INTTYPES_H 1 ># 35 "/usr/include/inttypes.h" 3 4 >typedef long int __gwchar_t; > > > > > >#define ____gwchar_t_defined 1 ># 53 "/usr/include/inttypes.h" 3 4 >#define __PRI64_PREFIX "ll" >#define __PRIPTR_PREFIX > > > > > >#define PRId8 "d" >#define PRId16 "d" >#define PRId32 "d" >#define PRId64 __PRI64_PREFIX "d" > >#define PRIdLEAST8 "d" >#define PRIdLEAST16 "d" >#define PRIdLEAST32 "d" >#define PRIdLEAST64 __PRI64_PREFIX "d" > >#define PRIdFAST8 "d" >#define PRIdFAST16 __PRIPTR_PREFIX "d" >#define PRIdFAST32 __PRIPTR_PREFIX "d" >#define PRIdFAST64 __PRI64_PREFIX "d" > > >#define PRIi8 "i" >#define PRIi16 "i" >#define PRIi32 "i" >#define PRIi64 __PRI64_PREFIX "i" > >#define PRIiLEAST8 "i" >#define PRIiLEAST16 "i" >#define PRIiLEAST32 "i" >#define PRIiLEAST64 __PRI64_PREFIX "i" > >#define PRIiFAST8 "i" >#define PRIiFAST16 __PRIPTR_PREFIX "i" >#define PRIiFAST32 __PRIPTR_PREFIX "i" >#define PRIiFAST64 __PRI64_PREFIX "i" > > >#define PRIo8 "o" >#define PRIo16 "o" >#define PRIo32 "o" >#define PRIo64 __PRI64_PREFIX "o" > >#define PRIoLEAST8 "o" >#define PRIoLEAST16 "o" >#define PRIoLEAST32 "o" >#define PRIoLEAST64 __PRI64_PREFIX "o" > >#define PRIoFAST8 "o" >#define PRIoFAST16 __PRIPTR_PREFIX "o" >#define PRIoFAST32 __PRIPTR_PREFIX "o" >#define PRIoFAST64 __PRI64_PREFIX "o" > > >#define PRIu8 "u" >#define PRIu16 "u" >#define PRIu32 "u" >#define PRIu64 __PRI64_PREFIX "u" > >#define PRIuLEAST8 "u" >#define PRIuLEAST16 "u" >#define PRIuLEAST32 "u" >#define PRIuLEAST64 __PRI64_PREFIX "u" > >#define PRIuFAST8 "u" >#define PRIuFAST16 __PRIPTR_PREFIX "u" >#define PRIuFAST32 __PRIPTR_PREFIX "u" >#define PRIuFAST64 __PRI64_PREFIX "u" > > >#define PRIx8 "x" >#define PRIx16 "x" >#define PRIx32 "x" >#define PRIx64 __PRI64_PREFIX "x" > >#define PRIxLEAST8 "x" >#define PRIxLEAST16 "x" >#define PRIxLEAST32 "x" >#define PRIxLEAST64 __PRI64_PREFIX "x" > >#define PRIxFAST8 "x" >#define PRIxFAST16 __PRIPTR_PREFIX "x" >#define PRIxFAST32 __PRIPTR_PREFIX "x" >#define PRIxFAST64 __PRI64_PREFIX "x" > > >#define PRIX8 "X" >#define PRIX16 "X" >#define PRIX32 "X" >#define PRIX64 __PRI64_PREFIX "X" > >#define PRIXLEAST8 "X" >#define PRIXLEAST16 "X" >#define PRIXLEAST32 "X" >#define PRIXLEAST64 __PRI64_PREFIX "X" > >#define PRIXFAST8 "X" >#define PRIXFAST16 __PRIPTR_PREFIX "X" >#define PRIXFAST32 __PRIPTR_PREFIX "X" >#define PRIXFAST64 __PRI64_PREFIX "X" > > > >#define PRIdMAX __PRI64_PREFIX "d" >#define PRIiMAX __PRI64_PREFIX "i" >#define PRIoMAX __PRI64_PREFIX "o" >#define PRIuMAX __PRI64_PREFIX "u" >#define PRIxMAX __PRI64_PREFIX "x" >#define PRIXMAX __PRI64_PREFIX "X" > > > >#define PRIdPTR __PRIPTR_PREFIX "d" >#define PRIiPTR __PRIPTR_PREFIX "i" >#define PRIoPTR __PRIPTR_PREFIX "o" >#define PRIuPTR __PRIPTR_PREFIX "u" >#define PRIxPTR __PRIPTR_PREFIX "x" >#define PRIXPTR __PRIPTR_PREFIX "X" > > > > > >#define SCNd8 "hhd" >#define SCNd16 "hd" >#define SCNd32 "d" >#define SCNd64 __PRI64_PREFIX "d" > >#define SCNdLEAST8 "hhd" >#define SCNdLEAST16 "hd" >#define SCNdLEAST32 "d" >#define SCNdLEAST64 __PRI64_PREFIX "d" > >#define SCNdFAST8 "hhd" >#define SCNdFAST16 __PRIPTR_PREFIX "d" >#define SCNdFAST32 __PRIPTR_PREFIX "d" >#define SCNdFAST64 __PRI64_PREFIX "d" > > >#define SCNi8 "hhi" >#define SCNi16 "hi" >#define SCNi32 "i" >#define SCNi64 __PRI64_PREFIX "i" > >#define SCNiLEAST8 "hhi" >#define SCNiLEAST16 "hi" >#define SCNiLEAST32 "i" >#define SCNiLEAST64 __PRI64_PREFIX "i" > >#define SCNiFAST8 "hhi" >#define SCNiFAST16 __PRIPTR_PREFIX "i" >#define SCNiFAST32 __PRIPTR_PREFIX "i" >#define SCNiFAST64 __PRI64_PREFIX "i" > > >#define SCNu8 "hhu" >#define SCNu16 "hu" >#define SCNu32 "u" >#define SCNu64 __PRI64_PREFIX "u" > >#define SCNuLEAST8 "hhu" >#define SCNuLEAST16 "hu" >#define SCNuLEAST32 "u" >#define SCNuLEAST64 __PRI64_PREFIX "u" > >#define SCNuFAST8 "hhu" >#define SCNuFAST16 __PRIPTR_PREFIX "u" >#define SCNuFAST32 __PRIPTR_PREFIX "u" >#define SCNuFAST64 __PRI64_PREFIX "u" > > >#define SCNo8 "hho" >#define SCNo16 "ho" >#define SCNo32 "o" >#define SCNo64 __PRI64_PREFIX "o" > >#define SCNoLEAST8 "hho" >#define SCNoLEAST16 "ho" >#define SCNoLEAST32 "o" >#define SCNoLEAST64 __PRI64_PREFIX "o" > >#define SCNoFAST8 "hho" >#define SCNoFAST16 __PRIPTR_PREFIX "o" >#define SCNoFAST32 __PRIPTR_PREFIX "o" >#define SCNoFAST64 __PRI64_PREFIX "o" > > >#define SCNx8 "hhx" >#define SCNx16 "hx" >#define SCNx32 "x" >#define SCNx64 __PRI64_PREFIX "x" > >#define SCNxLEAST8 "hhx" >#define SCNxLEAST16 "hx" >#define SCNxLEAST32 "x" >#define SCNxLEAST64 __PRI64_PREFIX "x" > >#define SCNxFAST8 "hhx" >#define SCNxFAST16 __PRIPTR_PREFIX "x" >#define SCNxFAST32 __PRIPTR_PREFIX "x" >#define SCNxFAST64 __PRI64_PREFIX "x" > > > >#define SCNdMAX __PRI64_PREFIX "d" >#define SCNiMAX __PRI64_PREFIX "i" >#define SCNoMAX __PRI64_PREFIX "o" >#define SCNuMAX __PRI64_PREFIX "u" >#define SCNxMAX __PRI64_PREFIX "x" > > >#define SCNdPTR __PRIPTR_PREFIX "d" >#define SCNiPTR __PRIPTR_PREFIX "i" >#define SCNoPTR __PRIPTR_PREFIX "o" >#define SCNuPTR __PRIPTR_PREFIX "u" >#define SCNxPTR __PRIPTR_PREFIX "x" > > > > > ># 288 "/usr/include/inttypes.h" 3 4 >typedef struct > { > long long int quot; > long long int rem; > } imaxdiv_t; > > > > > >extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern intmax_t strtoimax (const char *__restrict __nptr, > char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)); > > >extern uintmax_t strtoumax (const char *__restrict __nptr, > char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__)); > > >extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr, > __gwchar_t **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)); > > >extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr, > __gwchar_t ** __restrict __endptr, int __base) > __attribute__ ((__nothrow__)); ># 390 "/usr/include/inttypes.h" 3 4 >__extension__ >extern long long int __strtoll_internal (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) __attribute__ ((__nothrow__)); >#define __strtoll_internal_defined 1 > >extern __inline intmax_t >__attribute__ ((__nothrow__)) strtoimax (const char *__restrict nptr, char **__restrict endptr, int base) > >{ > return __strtoll_internal (nptr, endptr, base, 0); >} > > > >__extension__ >extern unsigned long long int __strtoull_internal (const char * > __restrict __nptr, > char ** > __restrict __endptr, > int __base, > int __group) __attribute__ ((__nothrow__)); >#define __strtoull_internal_defined 1 > >extern __inline uintmax_t >__attribute__ ((__nothrow__)) strtoumax (const char *__restrict nptr, char **__restrict endptr, int base) > >{ > return __strtoull_internal (nptr, endptr, base, 0); >} > > > >__extension__ >extern long long int __wcstoll_internal (const __gwchar_t * > __restrict __nptr, > __gwchar_t **__restrict __endptr, > int __base, int __group) __attribute__ ((__nothrow__)); >#define __wcstoll_internal_defined 1 > >extern __inline intmax_t >__attribute__ ((__nothrow__)) wcstoimax (const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) > >{ > return __wcstoll_internal (nptr, endptr, base, 0); >} > > > > >__extension__ >extern unsigned long long int __wcstoull_internal (const __gwchar_t * > __restrict __nptr, > __gwchar_t ** > __restrict __endptr, > int __base, > int __group) __attribute__ ((__nothrow__)); >#define __wcstoull_internal_defined 1 > >extern __inline uintmax_t >__attribute__ ((__nothrow__)) wcstoumax (const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) > >{ > return __wcstoull_internal (nptr, endptr, base, 0); >} > > > > > ># 27 "readelf.c" 2 ># 1 "/usr/include/langinfo.h" 1 3 4 ># 21 "/usr/include/langinfo.h" 3 4 >#define _LANGINFO_H 1 > > ># 1 "/usr/include/nl_types.h" 1 3 4 ># 20 "/usr/include/nl_types.h" 3 4 >#define _NL_TYPES_H 1 > > > > >#define NL_SETD 1 > > >#define NL_CAT_LOCALE 1 > > > > > >typedef void *nl_catd; > > >typedef int nl_item; > > > > > >extern nl_catd catopen (const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1))); > > > >extern char *catgets (nl_catd __catalog, int __set, int __number, > const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int catclose (nl_catd __catalog) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > ># 25 "/usr/include/langinfo.h" 2 3 4 > ># 1 "/usr/include/bits/locale.h" 1 3 4 ># 25 "/usr/include/bits/locale.h" 3 4 >#define _BITS_LOCALE_H 1 > >enum >{ > __LC_CTYPE = 0, > __LC_NUMERIC = 1, > __LC_TIME = 2, > __LC_COLLATE = 3, > __LC_MONETARY = 4, > __LC_MESSAGES = 5, > __LC_ALL = 6, > __LC_PAPER = 7, > __LC_NAME = 8, > __LC_ADDRESS = 9, > __LC_TELEPHONE = 10, > __LC_MEASUREMENT = 11, > __LC_IDENTIFICATION = 12 >}; ># 27 "/usr/include/langinfo.h" 2 3 4 > > > > > > > > >#define _NL_ITEM(category,index) (((category) << 16) | (index)) > > >#define _NL_ITEM_CATEGORY(item) ((int) (item) >> 16) >#define _NL_ITEM_INDEX(item) ((int) (item) & 0xffff) > > > >enum >{ > > > > ABDAY_1 = (((__LC_TIME) << 16) | (0)), >#define ABDAY_1 ABDAY_1 > ABDAY_2, >#define ABDAY_2 ABDAY_2 > ABDAY_3, >#define ABDAY_3 ABDAY_3 > ABDAY_4, >#define ABDAY_4 ABDAY_4 > ABDAY_5, >#define ABDAY_5 ABDAY_5 > ABDAY_6, >#define ABDAY_6 ABDAY_6 > ABDAY_7, >#define ABDAY_7 ABDAY_7 > > > DAY_1, >#define DAY_1 DAY_1 > DAY_2, >#define DAY_2 DAY_2 > DAY_3, >#define DAY_3 DAY_3 > DAY_4, >#define DAY_4 DAY_4 > DAY_5, >#define DAY_5 DAY_5 > DAY_6, >#define DAY_6 DAY_6 > DAY_7, >#define DAY_7 DAY_7 > > > ABMON_1, >#define ABMON_1 ABMON_1 > ABMON_2, >#define ABMON_2 ABMON_2 > ABMON_3, >#define ABMON_3 ABMON_3 > ABMON_4, >#define ABMON_4 ABMON_4 > ABMON_5, >#define ABMON_5 ABMON_5 > ABMON_6, >#define ABMON_6 ABMON_6 > ABMON_7, >#define ABMON_7 ABMON_7 > ABMON_8, >#define ABMON_8 ABMON_8 > ABMON_9, >#define ABMON_9 ABMON_9 > ABMON_10, >#define ABMON_10 ABMON_10 > ABMON_11, >#define ABMON_11 ABMON_11 > ABMON_12, >#define ABMON_12 ABMON_12 > > > MON_1, >#define MON_1 MON_1 > MON_2, >#define MON_2 MON_2 > MON_3, >#define MON_3 MON_3 > MON_4, >#define MON_4 MON_4 > MON_5, >#define MON_5 MON_5 > MON_6, >#define MON_6 MON_6 > MON_7, >#define MON_7 MON_7 > MON_8, >#define MON_8 MON_8 > MON_9, >#define MON_9 MON_9 > MON_10, >#define MON_10 MON_10 > MON_11, >#define MON_11 MON_11 > MON_12, >#define MON_12 MON_12 > > AM_STR, >#define AM_STR AM_STR > PM_STR, >#define PM_STR PM_STR > > D_T_FMT, >#define D_T_FMT D_T_FMT > D_FMT, >#define D_FMT D_FMT > T_FMT, >#define T_FMT T_FMT > T_FMT_AMPM, >#define T_FMT_AMPM T_FMT_AMPM > > ERA, >#define ERA ERA > __ERA_YEAR, > >#define ERA_YEAR __ERA_YEAR > > ERA_D_FMT, >#define ERA_D_FMT ERA_D_FMT > ALT_DIGITS, >#define ALT_DIGITS ALT_DIGITS > ERA_D_T_FMT, >#define ERA_D_T_FMT ERA_D_T_FMT > ERA_T_FMT, >#define ERA_T_FMT ERA_T_FMT > > _NL_TIME_ERA_NUM_ENTRIES, > _NL_TIME_ERA_ENTRIES, > > _NL_WABDAY_1, > _NL_WABDAY_2, > _NL_WABDAY_3, > _NL_WABDAY_4, > _NL_WABDAY_5, > _NL_WABDAY_6, > _NL_WABDAY_7, > > > _NL_WDAY_1, > _NL_WDAY_2, > _NL_WDAY_3, > _NL_WDAY_4, > _NL_WDAY_5, > _NL_WDAY_6, > _NL_WDAY_7, > > > _NL_WABMON_1, > _NL_WABMON_2, > _NL_WABMON_3, > _NL_WABMON_4, > _NL_WABMON_5, > _NL_WABMON_6, > _NL_WABMON_7, > _NL_WABMON_8, > _NL_WABMON_9, > _NL_WABMON_10, > _NL_WABMON_11, > _NL_WABMON_12, > > > _NL_WMON_1, > _NL_WMON_2, > _NL_WMON_3, > _NL_WMON_4, > _NL_WMON_5, > _NL_WMON_6, > _NL_WMON_7, > _NL_WMON_8, > _NL_WMON_9, > _NL_WMON_10, > _NL_WMON_11, > _NL_WMON_12, > > _NL_WAM_STR, > _NL_WPM_STR, > > _NL_WD_T_FMT, > _NL_WD_FMT, > _NL_WT_FMT, > _NL_WT_FMT_AMPM, > > _NL_WERA_YEAR, > _NL_WERA_D_FMT, > _NL_WALT_DIGITS, > _NL_WERA_D_T_FMT, > _NL_WERA_T_FMT, > > _NL_TIME_WEEK_NDAYS, > _NL_TIME_WEEK_1STDAY, > _NL_TIME_WEEK_1STWEEK, > _NL_TIME_FIRST_WEEKDAY, > _NL_TIME_FIRST_WORKDAY, > _NL_TIME_CAL_DIRECTION, > _NL_TIME_TIMEZONE, > > _DATE_FMT, >#define _DATE_FMT _DATE_FMT > _NL_W_DATE_FMT, > > _NL_TIME_CODESET, > > _NL_NUM_LC_TIME, > > > > > _NL_COLLATE_NRULES = (((__LC_COLLATE) << 16) | (0)), > _NL_COLLATE_RULESETS, > _NL_COLLATE_TABLEMB, > _NL_COLLATE_WEIGHTMB, > _NL_COLLATE_EXTRAMB, > _NL_COLLATE_INDIRECTMB, > _NL_COLLATE_GAP1, > _NL_COLLATE_GAP2, > _NL_COLLATE_GAP3, > _NL_COLLATE_TABLEWC, > _NL_COLLATE_WEIGHTWC, > _NL_COLLATE_EXTRAWC, > _NL_COLLATE_INDIRECTWC, > _NL_COLLATE_SYMB_HASH_SIZEMB, > _NL_COLLATE_SYMB_TABLEMB, > _NL_COLLATE_SYMB_EXTRAMB, > _NL_COLLATE_COLLSEQMB, > _NL_COLLATE_COLLSEQWC, > _NL_COLLATE_CODESET, > _NL_NUM_LC_COLLATE, > > > > > _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)), > _NL_CTYPE_TOUPPER, > _NL_CTYPE_GAP1, > _NL_CTYPE_TOLOWER, > _NL_CTYPE_GAP2, > _NL_CTYPE_CLASS32, > _NL_CTYPE_GAP3, > _NL_CTYPE_GAP4, > _NL_CTYPE_GAP5, > _NL_CTYPE_GAP6, > _NL_CTYPE_CLASS_NAMES, > _NL_CTYPE_MAP_NAMES, > _NL_CTYPE_WIDTH, > _NL_CTYPE_MB_CUR_MAX, > _NL_CTYPE_CODESET_NAME, > CODESET = _NL_CTYPE_CODESET_NAME, >#define CODESET CODESET > _NL_CTYPE_TOUPPER32, > _NL_CTYPE_TOLOWER32, > _NL_CTYPE_CLASS_OFFSET, > _NL_CTYPE_MAP_OFFSET, > _NL_CTYPE_INDIGITS_MB_LEN, > _NL_CTYPE_INDIGITS0_MB, > _NL_CTYPE_INDIGITS1_MB, > _NL_CTYPE_INDIGITS2_MB, > _NL_CTYPE_INDIGITS3_MB, > _NL_CTYPE_INDIGITS4_MB, > _NL_CTYPE_INDIGITS5_MB, > _NL_CTYPE_INDIGITS6_MB, > _NL_CTYPE_INDIGITS7_MB, > _NL_CTYPE_INDIGITS8_MB, > _NL_CTYPE_INDIGITS9_MB, > _NL_CTYPE_INDIGITS_WC_LEN, > _NL_CTYPE_INDIGITS0_WC, > _NL_CTYPE_INDIGITS1_WC, > _NL_CTYPE_INDIGITS2_WC, > _NL_CTYPE_INDIGITS3_WC, > _NL_CTYPE_INDIGITS4_WC, > _NL_CTYPE_INDIGITS5_WC, > _NL_CTYPE_INDIGITS6_WC, > _NL_CTYPE_INDIGITS7_WC, > _NL_CTYPE_INDIGITS8_WC, > _NL_CTYPE_INDIGITS9_WC, > _NL_CTYPE_OUTDIGIT0_MB, > _NL_CTYPE_OUTDIGIT1_MB, > _NL_CTYPE_OUTDIGIT2_MB, > _NL_CTYPE_OUTDIGIT3_MB, > _NL_CTYPE_OUTDIGIT4_MB, > _NL_CTYPE_OUTDIGIT5_MB, > _NL_CTYPE_OUTDIGIT6_MB, > _NL_CTYPE_OUTDIGIT7_MB, > _NL_CTYPE_OUTDIGIT8_MB, > _NL_CTYPE_OUTDIGIT9_MB, > _NL_CTYPE_OUTDIGIT0_WC, > _NL_CTYPE_OUTDIGIT1_WC, > _NL_CTYPE_OUTDIGIT2_WC, > _NL_CTYPE_OUTDIGIT3_WC, > _NL_CTYPE_OUTDIGIT4_WC, > _NL_CTYPE_OUTDIGIT5_WC, > _NL_CTYPE_OUTDIGIT6_WC, > _NL_CTYPE_OUTDIGIT7_WC, > _NL_CTYPE_OUTDIGIT8_WC, > _NL_CTYPE_OUTDIGIT9_WC, > _NL_CTYPE_TRANSLIT_TAB_SIZE, > _NL_CTYPE_TRANSLIT_FROM_IDX, > _NL_CTYPE_TRANSLIT_FROM_TBL, > _NL_CTYPE_TRANSLIT_TO_IDX, > _NL_CTYPE_TRANSLIT_TO_TBL, > _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN, > _NL_CTYPE_TRANSLIT_DEFAULT_MISSING, > _NL_CTYPE_TRANSLIT_IGNORE_LEN, > _NL_CTYPE_TRANSLIT_IGNORE, > _NL_CTYPE_MAP_TO_NONASCII, > _NL_CTYPE_EXTRA_MAP_1, > _NL_CTYPE_EXTRA_MAP_2, > _NL_CTYPE_EXTRA_MAP_3, > _NL_CTYPE_EXTRA_MAP_4, > _NL_CTYPE_EXTRA_MAP_5, > _NL_CTYPE_EXTRA_MAP_6, > _NL_CTYPE_EXTRA_MAP_7, > _NL_CTYPE_EXTRA_MAP_8, > _NL_CTYPE_EXTRA_MAP_9, > _NL_CTYPE_EXTRA_MAP_10, > _NL_CTYPE_EXTRA_MAP_11, > _NL_CTYPE_EXTRA_MAP_12, > _NL_CTYPE_EXTRA_MAP_13, > _NL_CTYPE_EXTRA_MAP_14, > _NL_NUM_LC_CTYPE, > > > > > __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)), > >#define INT_CURR_SYMBOL __INT_CURR_SYMBOL > > __CURRENCY_SYMBOL, > >#define CURRENCY_SYMBOL __CURRENCY_SYMBOL > > __MON_DECIMAL_POINT, > >#define MON_DECIMAL_POINT __MON_DECIMAL_POINT > > __MON_THOUSANDS_SEP, > >#define MON_THOUSANDS_SEP __MON_THOUSANDS_SEP > > __MON_GROUPING, > >#define MON_GROUPING __MON_GROUPING > > __POSITIVE_SIGN, > >#define POSITIVE_SIGN __POSITIVE_SIGN > > __NEGATIVE_SIGN, > >#define NEGATIVE_SIGN __NEGATIVE_SIGN > > __INT_FRAC_DIGITS, > >#define INT_FRAC_DIGITS __INT_FRAC_DIGITS > > __FRAC_DIGITS, > >#define FRAC_DIGITS __FRAC_DIGITS > > __P_CS_PRECEDES, > >#define P_CS_PRECEDES __P_CS_PRECEDES > > __P_SEP_BY_SPACE, > >#define P_SEP_BY_SPACE __P_SEP_BY_SPACE > > __N_CS_PRECEDES, > >#define N_CS_PRECEDES __N_CS_PRECEDES > > __N_SEP_BY_SPACE, > >#define N_SEP_BY_SPACE __N_SEP_BY_SPACE > > __P_SIGN_POSN, > >#define P_SIGN_POSN __P_SIGN_POSN > > __N_SIGN_POSN, > >#define N_SIGN_POSN __N_SIGN_POSN > > _NL_MONETARY_CRNCYSTR, >#define CRNCYSTR _NL_MONETARY_CRNCYSTR > __INT_P_CS_PRECEDES, > >#define INT_P_CS_PRECEDES __INT_P_CS_PRECEDES > > __INT_P_SEP_BY_SPACE, > >#define INT_P_SEP_BY_SPACE __INT_P_SEP_BY_SPACE > > __INT_N_CS_PRECEDES, > >#define INT_N_CS_PRECEDES __INT_N_CS_PRECEDES > > __INT_N_SEP_BY_SPACE, > >#define INT_N_SEP_BY_SPACE __INT_N_SEP_BY_SPACE > > __INT_P_SIGN_POSN, > >#define INT_P_SIGN_POSN __INT_P_SIGN_POSN > > __INT_N_SIGN_POSN, > >#define INT_N_SIGN_POSN __INT_N_SIGN_POSN > > _NL_MONETARY_DUO_INT_CURR_SYMBOL, > _NL_MONETARY_DUO_CURRENCY_SYMBOL, > _NL_MONETARY_DUO_INT_FRAC_DIGITS, > _NL_MONETARY_DUO_FRAC_DIGITS, > _NL_MONETARY_DUO_P_CS_PRECEDES, > _NL_MONETARY_DUO_P_SEP_BY_SPACE, > _NL_MONETARY_DUO_N_CS_PRECEDES, > _NL_MONETARY_DUO_N_SEP_BY_SPACE, > _NL_MONETARY_DUO_INT_P_CS_PRECEDES, > _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE, > _NL_MONETARY_DUO_INT_N_CS_PRECEDES, > _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE, > _NL_MONETARY_DUO_P_SIGN_POSN, > _NL_MONETARY_DUO_N_SIGN_POSN, > _NL_MONETARY_DUO_INT_P_SIGN_POSN, > _NL_MONETARY_DUO_INT_N_SIGN_POSN, > _NL_MONETARY_UNO_VALID_FROM, > _NL_MONETARY_UNO_VALID_TO, > _NL_MONETARY_DUO_VALID_FROM, > _NL_MONETARY_DUO_VALID_TO, > _NL_MONETARY_CONVERSION_RATE, > _NL_MONETARY_DECIMAL_POINT_WC, > _NL_MONETARY_THOUSANDS_SEP_WC, > _NL_MONETARY_CODESET, > _NL_NUM_LC_MONETARY, > > > > __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)), > >#define DECIMAL_POINT __DECIMAL_POINT > > RADIXCHAR = __DECIMAL_POINT, >#define RADIXCHAR RADIXCHAR > __THOUSANDS_SEP, > >#define THOUSANDS_SEP __THOUSANDS_SEP > > THOUSEP = __THOUSANDS_SEP, >#define THOUSEP THOUSEP > __GROUPING, > >#define GROUPING __GROUPING > > _NL_NUMERIC_DECIMAL_POINT_WC, > _NL_NUMERIC_THOUSANDS_SEP_WC, > _NL_NUMERIC_CODESET, > _NL_NUM_LC_NUMERIC, > > __YESEXPR = (((__LC_MESSAGES) << 16) | (0)), >#define YESEXPR __YESEXPR > __NOEXPR, >#define NOEXPR __NOEXPR > __YESSTR, > >#define YESSTR __YESSTR > > __NOSTR, > >#define NOSTR __NOSTR > > _NL_MESSAGES_CODESET, > _NL_NUM_LC_MESSAGES, > > _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)), > _NL_PAPER_WIDTH, > _NL_PAPER_CODESET, > _NL_NUM_LC_PAPER, > > _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)), > _NL_NAME_NAME_GEN, > _NL_NAME_NAME_MR, > _NL_NAME_NAME_MRS, > _NL_NAME_NAME_MISS, > _NL_NAME_NAME_MS, > _NL_NAME_CODESET, > _NL_NUM_LC_NAME, > > _NL_ADDRESS_POSTAL_FMT = (((__LC_ADDRESS) << 16) | (0)), > _NL_ADDRESS_COUNTRY_NAME, > _NL_ADDRESS_COUNTRY_POST, > _NL_ADDRESS_COUNTRY_AB2, > _NL_ADDRESS_COUNTRY_AB3, > _NL_ADDRESS_COUNTRY_CAR, > _NL_ADDRESS_COUNTRY_NUM, > _NL_ADDRESS_COUNTRY_ISBN, > _NL_ADDRESS_LANG_NAME, > _NL_ADDRESS_LANG_AB, > _NL_ADDRESS_LANG_TERM, > _NL_ADDRESS_LANG_LIB, > _NL_ADDRESS_CODESET, > _NL_NUM_LC_ADDRESS, > > _NL_TELEPHONE_TEL_INT_FMT = (((__LC_TELEPHONE) << 16) | (0)), > _NL_TELEPHONE_TEL_DOM_FMT, > _NL_TELEPHONE_INT_SELECT, > _NL_TELEPHONE_INT_PREFIX, > _NL_TELEPHONE_CODESET, > _NL_NUM_LC_TELEPHONE, > > _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)), > _NL_MEASUREMENT_CODESET, > _NL_NUM_LC_MEASUREMENT, > > _NL_IDENTIFICATION_TITLE = (((__LC_IDENTIFICATION) << 16) | (0)), > _NL_IDENTIFICATION_SOURCE, > _NL_IDENTIFICATION_ADDRESS, > _NL_IDENTIFICATION_CONTACT, > _NL_IDENTIFICATION_EMAIL, > _NL_IDENTIFICATION_TEL, > _NL_IDENTIFICATION_FAX, > _NL_IDENTIFICATION_LANGUAGE, > _NL_IDENTIFICATION_TERRITORY, > _NL_IDENTIFICATION_AUDIENCE, > _NL_IDENTIFICATION_APPLICATION, > _NL_IDENTIFICATION_ABBREVIATION, > _NL_IDENTIFICATION_REVISION, > _NL_IDENTIFICATION_DATE, > _NL_IDENTIFICATION_CATEGORY, > _NL_IDENTIFICATION_CODESET, > _NL_NUM_LC_IDENTIFICATION, > > > _NL_NUM >}; ># 576 "/usr/include/langinfo.h" 3 4 >extern char *nl_langinfo (nl_item __item) __attribute__ ((__nothrow__)); ># 587 "/usr/include/langinfo.h" 3 4 >extern char *nl_langinfo_l (nl_item __item, __locale_t l); > > > ># 28 "readelf.c" 2 ># 1 "../libdw/libdw.h" 1 ># 16 "../libdw/libdw.h" >#define _LIBDW_H 1 > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stdbool.h" 1 3 4 ># 32 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stdbool.h" 3 4 >#define _STDBOOL_H > > > >#define bool _Bool >#define true 1 >#define false 0 ># 51 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stdbool.h" 3 4 >#define __bool_true_false_are_defined 1 ># 20 "../libdw/libdw.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 42 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#define _STDDEF_H >#define _STDDEF_H_ > >#define _ANSI_STDDEF_H > >#define __STDDEF_H__ ># 140 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#define _PTRDIFF_T >#define _T_PTRDIFF_ >#define _T_PTRDIFF >#define __PTRDIFF_T >#define _PTRDIFF_T_ >#define _BSD_PTRDIFF_T_ >#define ___int_ptrdiff_t_h >#define _GCC_PTRDIFF_T > > > >typedef int ptrdiff_t; ># 397 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef NULL > > > > >#define NULL ((void *)0) ># 414 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#define offsetof(TYPE,MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ># 21 "../libdw/libdw.h" 2 > > > >#define __nonnull_attribute__(...) __attribute__ ((__nonnull__ (__VA_ARGS__))) > > > > > > >typedef enum > { > DWARF_C_READ, > DWARF_C_RDWR, > DWARF_C_WRITE, > } >Dwarf_Cmd; > > > >enum >{ > DWARF_CB_OK = 0, > DWARF_CB_ABORT >}; > > > >enum > { > DW_TAG_invalid = 0 >#define DW_TAG_invalid DW_TAG_invalid > }; > > > >typedef GElf_Off Dwarf_Off; > > >typedef GElf_Addr Dwarf_Addr; > > >typedef GElf_Xword Dwarf_Word; >typedef GElf_Sxword Dwarf_Sword; > >typedef GElf_Half Dwarf_Half; > > > >typedef struct Dwarf_Abbrev Dwarf_Abbrev; > > >#define DWARF_END_ABBREV ((Dwarf_Abbrev *) -1l) > > >typedef struct Dwarf_Lines_s Dwarf_Lines; > > >typedef struct Dwarf_Line_s Dwarf_Line; > > >typedef struct Dwarf_Files_s Dwarf_Files; > > >typedef struct Dwarf_Arange_s Dwarf_Arange; > > >typedef struct Dwarf_Aranges_s Dwarf_Aranges; > > >struct Dwarf_CU; > > >typedef struct Dwarf_Macro_s Dwarf_Macro; > > >typedef struct >{ > unsigned int code; > unsigned int form; > unsigned char *valp; > struct Dwarf_CU *cu; >} Dwarf_Attribute; > > > >typedef struct >{ > Dwarf_Word length; > unsigned char *data; >} Dwarf_Block; > > > >typedef struct >{ > > void *addr; > struct Dwarf_CU *cu; > Dwarf_Abbrev *abbrev; > > long int padding__; >} Dwarf_Die; > > >#define DWARF_END_DIE ((Dwarf_Die *) -1l) > > > >typedef struct >{ > Dwarf_Off cu_offset; > Dwarf_Off die_offset; > const char *name; >} Dwarf_Global; > > > > >typedef struct >{ > uint8_t atom; > Dwarf_Word number; > Dwarf_Word number2; > Dwarf_Word offset; >} Dwarf_Op; > > > >typedef struct Dwarf Dwarf; > > > > >typedef void (*Dwarf_OOM) (void); > > > > > > >extern Dwarf *dwarf_begin (int fildes, Dwarf_Cmd cmd); > > >extern Dwarf *dwarf_begin_elf (Elf *elf, Dwarf_Cmd cmd, Elf_Scn *scngrp); > > >extern Elf *dwarf_getelf (Dwarf *dwarf); > > >extern int dwarf_end (Dwarf *dwarf); > > > >extern Elf_Data *dwarf_getscn_info (Dwarf *dwarf); > > >extern int dwarf_nextcu (Dwarf *dwarf, Dwarf_Off off, Dwarf_Off *next_off, > size_t *header_sizep, Dwarf_Off *abbrev_offsetp, > uint8_t *address_sizep, uint8_t *offset_sizep) > __attribute__ ((__nonnull__ (3))); > > > >extern Dwarf_Die *dwarf_offdie (Dwarf *dbg, Dwarf_Off offset, > Dwarf_Die *result) __attribute__ ((__nonnull__ (3))); > > >extern Dwarf_Off dwarf_dieoffset (Dwarf_Die *die); > > >extern Dwarf_Off dwarf_cuoffset (Dwarf_Die *die); > > >extern Dwarf_Die *dwarf_diecu (Dwarf_Die *die, Dwarf_Die *result, > uint8_t *address_sizep, uint8_t *offset_sizep); > > >extern Dwarf_Die *dwarf_addrdie (Dwarf *dbg, Dwarf_Addr addr, > Dwarf_Die *result) __attribute__ ((__nonnull__ (3))); > > >extern int dwarf_child (Dwarf_Die *die, Dwarf_Die *result) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_siblingof (Dwarf_Die *die, Dwarf_Die *result) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_haschildren (Dwarf_Die *die); > > >extern ptrdiff_t dwarf_getattrs (Dwarf_Die *die, > int (*callback) (Dwarf_Attribute *, void *), > void *arg, ptrdiff_t offset); > > >extern int dwarf_tag (Dwarf_Die *die); > > > >extern Dwarf_Attribute *dwarf_attr (Dwarf_Die *die, unsigned int search_name, > Dwarf_Attribute *result) > __attribute__ ((__nonnull__ (3))); > > >extern int dwarf_hasattr (Dwarf_Die *die, unsigned int search_name); > > > >extern Dwarf_Attribute *dwarf_attr_integrate (Dwarf_Die *die, > unsigned int search_name, > Dwarf_Attribute *result) > __attribute__ ((__nonnull__ (3))); >extern int dwarf_hasattr_integrate (Dwarf_Die *die, unsigned int search_name); > > > > > >extern int dwarf_hasform (Dwarf_Attribute *attr, unsigned int search_form); > > >extern unsigned int dwarf_whatattr (Dwarf_Attribute *attr); > > >extern unsigned int dwarf_whatform (Dwarf_Attribute *attr); > > > >extern const char *dwarf_formstring (Dwarf_Attribute *attrp); > > >extern int dwarf_formudata (Dwarf_Attribute *attr, Dwarf_Word *return_uval) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_formsdata (Dwarf_Attribute *attr, Dwarf_Sword *return_uval) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_formaddr (Dwarf_Attribute *attr, Dwarf_Addr *return_addr) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_formref (Dwarf_Attribute *attr, Dwarf_Off *return_offset) > __attribute__ ((__nonnull__ (2))); > > >extern Dwarf_Die *dwarf_formref_die (Dwarf_Attribute *attr, Dwarf_Die *die_mem) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_formblock (Dwarf_Attribute *attr, Dwarf_Block *return_block) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_formflag (Dwarf_Attribute *attr, _Bool *return_bool) > __attribute__ ((__nonnull__ (2))); > > > > > >extern const char *dwarf_diename (Dwarf_Die *die); > > >extern int dwarf_highpc (Dwarf_Die *die, Dwarf_Addr *return_addr) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_lowpc (Dwarf_Die *die, Dwarf_Addr *return_addr) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_entrypc (Dwarf_Die *die, Dwarf_Addr *return_addr) > __attribute__ ((__nonnull__ (2))); > > > >extern int dwarf_haspc (Dwarf_Die *die, Dwarf_Addr pc); ># 311 "../libdw/libdw.h" >extern ptrdiff_t dwarf_ranges (Dwarf_Die *die, > ptrdiff_t offset, Dwarf_Addr *basep, > Dwarf_Addr *startp, Dwarf_Addr *endp); > > > >extern int dwarf_bytesize (Dwarf_Die *die); > > >extern int dwarf_bitsize (Dwarf_Die *die); > > >extern int dwarf_bitoffset (Dwarf_Die *die); > > >extern int dwarf_arrayorder (Dwarf_Die *die); > > >extern int dwarf_srclang (Dwarf_Die *die); > > > >extern Dwarf_Abbrev *dwarf_getabbrev (Dwarf_Die *die, Dwarf_Off offset, > size_t *lengthp); > > >extern int dwarf_offabbrev (Dwarf *dbg, Dwarf_Off offset, size_t *lengthp, > Dwarf_Abbrev *abbrevp) > __attribute__ ((__nonnull__ (4))); > > >extern unsigned int dwarf_getabbrevcode (Dwarf_Abbrev *abbrev); > > >extern unsigned int dwarf_getabbrevtag (Dwarf_Abbrev *abbrev); > > >extern int dwarf_abbrevhaschildren (Dwarf_Abbrev *abbrev); > > >extern int dwarf_getattrcnt (Dwarf_Abbrev *abbrev, size_t *attrcntp) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_getabbrevattr (Dwarf_Abbrev *abbrev, size_t idx, > unsigned int *namep, unsigned int *formp, > Dwarf_Off *offset); > > > >extern const char *dwarf_getstring (Dwarf *dbg, Dwarf_Off offset, > size_t *lenp); > > > >extern ptrdiff_t dwarf_getpubnames (Dwarf *dbg, > int (*callback) (Dwarf *, Dwarf_Global *, > void *), > void *arg, ptrdiff_t offset) > __attribute__ ((__nonnull__ (2))); > > > >extern int dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, > size_t *nlines) __attribute__ ((__nonnull__ (2, 3))); > > >extern Dwarf_Line *dwarf_onesrcline (Dwarf_Lines *lines, size_t idx); > > >extern int dwarf_getsrcfiles (Dwarf_Die *cudie, Dwarf_Files **files, > size_t *nfiles) > __attribute__ ((__nonnull__ (2))); > > > >extern Dwarf_Line *dwarf_getsrc_die (Dwarf_Die *cudie, Dwarf_Addr addr); > > >extern int dwarf_getsrc_file (Dwarf *dbg, const char *fname, int line, int col, > Dwarf_Line ***srcsp, size_t *nsrcs) > __attribute__ ((__nonnull__ (2, 5, 6))); > > > >extern int dwarf_lineaddr (Dwarf_Line *line, Dwarf_Addr *addrp); > > >extern int dwarf_lineno (Dwarf_Line *line, int *linep) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_linecol (Dwarf_Line *line, int *colp) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_linebeginstatement (Dwarf_Line *line, _Bool *flagp) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_lineendsequence (Dwarf_Line *line, _Bool *flagp) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_lineblock (Dwarf_Line *line, _Bool *flagp) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_lineprologueend (Dwarf_Line *line, _Bool *flagp) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_lineepiloguebegin (Dwarf_Line *line, _Bool *flagp) > __attribute__ ((__nonnull__ (2))); > > > >extern const char *dwarf_linesrc (Dwarf_Line *line, > Dwarf_Word *mtime, Dwarf_Word *length); > > >extern const char *dwarf_filesrc (Dwarf_Files *file, size_t idx, > Dwarf_Word *mtime, Dwarf_Word *length); > > > >extern int dwarf_getlocation (Dwarf_Attribute *attr, Dwarf_Op **expr, > size_t *exprlen) __attribute__ ((__nonnull__ (2, 3))); ># 448 "../libdw/libdw.h" >extern int dwarf_getlocation_addr (Dwarf_Attribute *attr, Dwarf_Addr address, > Dwarf_Op **exprs, size_t *exprlens, > size_t nlocs); ># 459 "../libdw/libdw.h" >extern int dwarf_getscopes (Dwarf_Die *cudie, Dwarf_Addr pc, > Dwarf_Die **scopes); > > > > > > > >extern int dwarf_getscopes_die (Dwarf_Die *die, Dwarf_Die **scopes); ># 480 "../libdw/libdw.h" >extern int dwarf_getscopevar (Dwarf_Die *scopes, int nscopes, > const char *name, int skip_shadows, > const char *match_file, > int match_lineno, int match_linecol, > Dwarf_Die *result); > > > > >extern int dwarf_getaranges (Dwarf *dbg, Dwarf_Aranges **aranges, > size_t *naranges) > __attribute__ ((__nonnull__ (2))); > > >extern Dwarf_Arange *dwarf_onearange (Dwarf_Aranges *aranges, size_t idx); > > >extern int dwarf_getarangeinfo (Dwarf_Arange *arange, Dwarf_Addr *addrp, > Dwarf_Word *lengthp, Dwarf_Off *offsetp); > > >extern Dwarf_Arange *dwarf_getarange_addr (Dwarf_Aranges *aranges, > Dwarf_Addr addr); > > > > >extern ptrdiff_t dwarf_getfuncs (Dwarf_Die *cudie, > int (*callback) (Dwarf_Die *, void *), > void *arg, ptrdiff_t offset); > > > >extern const char *dwarf_decl_file (Dwarf_Die *decl); > > >extern int dwarf_decl_line (Dwarf_Die *decl, int *linep) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_decl_column (Dwarf_Die *decl, int *colp) > __attribute__ ((__nonnull__ (2))); > > > >extern int dwarf_func_inline (Dwarf_Die *func); > > >extern int dwarf_func_inline_instances (Dwarf_Die *func, > int (*callback) (Dwarf_Die *, void *), > void *arg); > > > > > > >extern int dwarf_entry_breakpoints (Dwarf_Die *die, Dwarf_Addr **bkpts); > > > > >extern ptrdiff_t dwarf_getmacros (Dwarf_Die *cudie, > int (*callback) (Dwarf_Macro *, void *), > void *arg, ptrdiff_t offset) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_macro_opcode (Dwarf_Macro *macro, unsigned int *opcodep) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_macro_param1 (Dwarf_Macro *macro, Dwarf_Word *paramp) > __attribute__ ((__nonnull__ (2))); > > >extern int dwarf_macro_param2 (Dwarf_Macro *macro, Dwarf_Word *paramp, > const char **strp); > > > > >extern int dwarf_errno (void); > > > > > >extern const char *dwarf_errmsg (int err); > > > >extern Dwarf_OOM dwarf_new_oom_handler (Dwarf *dbg, Dwarf_OOM handler); > > > > > >extern inline unsigned int >dwarf_whatattr (Dwarf_Attribute *attr) >{ > return attr == ((void *)0) ? 0 : attr->code; >} > > >extern inline unsigned int >dwarf_whatform (Dwarf_Attribute *attr) >{ > return attr == ((void *)0) ? 0 : attr->form; >} ># 29 "readelf.c" 2 ># 1 "/usr/include/libintl.h" 1 3 4 ># 22 "/usr/include/libintl.h" 3 4 >#define _LIBINTL_H 1 > > > > > >#define __USE_GNU_GETTEXT 1 > > > >#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 1 : -1) > > > > > > > >extern char *gettext (const char *__msgid) __attribute__ ((__nothrow__)); > > > >extern char *dgettext (const char *__domainname, const char *__msgid) > __attribute__ ((__nothrow__)); >extern char *__dgettext (const char *__domainname, const char *__msgid) > __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (2))); > > > >extern char *dcgettext (const char *__domainname, > const char *__msgid, int __category) __attribute__ ((__nothrow__)); >extern char *__dcgettext (const char *__domainname, > const char *__msgid, int __category) > __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (2))); > > > > >extern char *ngettext (const char *__msgid1, const char *__msgid2, > unsigned long int __n) > __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2))); > > > >extern char *dngettext (const char *__domainname, const char *__msgid1, > const char *__msgid2, unsigned long int __n) > __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); > > > >extern char *dcngettext (const char *__domainname, const char *__msgid1, > const char *__msgid2, unsigned long int __n, > int __category) > __attribute__ ((__nothrow__)) __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); > > > > > >extern char *textdomain (const char *__domainname) __attribute__ ((__nothrow__)); > > > >extern char *bindtextdomain (const char *__domainname, > const char *__dirname) __attribute__ ((__nothrow__)); > > > >extern char *bind_textdomain_codeset (const char *__domainname, > const char *__codeset) __attribute__ ((__nothrow__)); > > > > > > >#define __need_NULL ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 397 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef NULL > > > > >#define NULL ((void *)0) > > > > > >#undef __need_NULL > > > > > >#define offsetof(TYPE,MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ># 100 "/usr/include/libintl.h" 2 3 4 > > ># 1 "/usr/include/locale.h" 1 3 4 ># 24 "/usr/include/locale.h" 3 4 >#define _LOCALE_H 1 > > > >#define __need_NULL ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 397 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef NULL > > > > >#define NULL ((void *)0) > > > > > >#undef __need_NULL > > > > > >#define offsetof(TYPE,MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ># 30 "/usr/include/locale.h" 2 3 4 ># 1 "/usr/include/bits/locale.h" 1 3 4 ># 31 "/usr/include/locale.h" 2 3 4 > > > > > >#define LC_CTYPE __LC_CTYPE >#define LC_NUMERIC __LC_NUMERIC >#define LC_TIME __LC_TIME >#define LC_COLLATE __LC_COLLATE >#define LC_MONETARY __LC_MONETARY >#define LC_MESSAGES __LC_MESSAGES >#define LC_ALL __LC_ALL >#define LC_PAPER __LC_PAPER >#define LC_NAME __LC_NAME >#define LC_ADDRESS __LC_ADDRESS >#define LC_TELEPHONE __LC_TELEPHONE >#define LC_MEASUREMENT __LC_MEASUREMENT >#define LC_IDENTIFICATION __LC_IDENTIFICATION > > > >struct lconv >{ > > > char *decimal_point; > char *thousands_sep; > > > > > > char *grouping; > > > > > > char *int_curr_symbol; > char *currency_symbol; > char *mon_decimal_point; > char *mon_thousands_sep; > char *mon_grouping; > char *positive_sign; > char *negative_sign; > char int_frac_digits; > char frac_digits; > > char p_cs_precedes; > > char p_sep_by_space; > > char n_cs_precedes; > > char n_sep_by_space; > > > > > > > char p_sign_posn; > char n_sign_posn; > > > char int_p_cs_precedes; > > char int_p_sep_by_space; > > char int_n_cs_precedes; > > char int_n_sep_by_space; > > > > > > > char int_p_sign_posn; > char int_n_sign_posn; ># 119 "/usr/include/locale.h" 3 4 >}; > > > > > >extern char *setlocale (int __category, const char *__locale) __attribute__ ((__nothrow__)); > > >extern struct lconv *localeconv (void) __attribute__ ((__nothrow__)); > > ># 148 "/usr/include/locale.h" 3 4 >typedef __locale_t locale_t; > > > > > >extern __locale_t newlocale (int __category_mask, const char *__locale, > __locale_t __base) __attribute__ ((__nothrow__)); > > > > > >#define LC_CTYPE_MASK (1 << __LC_CTYPE) >#define LC_NUMERIC_MASK (1 << __LC_NUMERIC) >#define LC_TIME_MASK (1 << __LC_TIME) >#define LC_COLLATE_MASK (1 << __LC_COLLATE) >#define LC_MONETARY_MASK (1 << __LC_MONETARY) >#define LC_MESSAGES_MASK (1 << __LC_MESSAGES) >#define LC_PAPER_MASK (1 << __LC_PAPER) >#define LC_NAME_MASK (1 << __LC_NAME) >#define LC_ADDRESS_MASK (1 << __LC_ADDRESS) >#define LC_TELEPHONE_MASK (1 << __LC_TELEPHONE) >#define LC_MEASUREMENT_MASK (1 << __LC_MEASUREMENT) >#define LC_IDENTIFICATION_MASK (1 << __LC_IDENTIFICATION) >#define LC_ALL_MASK (LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK | LC_MONETARY_MASK | LC_MESSAGES_MASK | LC_PAPER_MASK | LC_NAME_MASK | LC_ADDRESS_MASK | LC_TELEPHONE_MASK | LC_MEASUREMENT_MASK | LC_IDENTIFICATION_MASK ) ># 189 "/usr/include/locale.h" 3 4 >extern __locale_t duplocale (__locale_t __dataset) __attribute__ ((__nothrow__)); > > > >extern void freelocale (__locale_t __dataset) __attribute__ ((__nothrow__)); > > > > > > >extern __locale_t uselocale (__locale_t __dataset) __attribute__ ((__nothrow__)); > > > >#define LC_GLOBAL_LOCALE ((__locale_t) -1L) > > > > ># 103 "/usr/include/libintl.h" 2 3 4 > > > > > >#define gettext(msgid) dgettext (NULL, msgid) > >#define dgettext(domainname,msgid) dcgettext (domainname, msgid, LC_MESSAGES) > > >#define ngettext(msgid1,msgid2,n) dngettext (NULL, msgid1, msgid2, n) > >#define dngettext(domainname,msgid1,msgid2,n) dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES) > > > > > ># 30 "readelf.c" 2 > > ># 1 "/usr/include/stdlib.h" 1 3 4 ># 28 "/usr/include/stdlib.h" 3 4 >#define __need_size_t > >#define __need_wchar_t >#define __need_NULL > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 235 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_size_t ># 344 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_wchar_t ># 397 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef NULL > > > > >#define NULL ((void *)0) > > > > > >#undef __need_NULL > > > > > >#define offsetof(TYPE,MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ># 34 "/usr/include/stdlib.h" 2 3 4 > > > > >#define _STDLIB_H 1 > > > ># 1 "/usr/include/bits/waitflags.h" 1 3 4 ># 26 "/usr/include/bits/waitflags.h" 3 4 >#define WNOHANG 1 >#define WUNTRACED 2 > > >#define WSTOPPED 2 >#define WEXITED 4 >#define WCONTINUED 8 >#define WNOWAIT 0x01000000 > >#define __WALL 0x40000000 >#define __WCLONE 0x80000000 ># 43 "/usr/include/stdlib.h" 2 3 4 ># 1 "/usr/include/bits/waitstatus.h" 1 3 4 ># 29 "/usr/include/bits/waitstatus.h" 3 4 >#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) > > >#define __WTERMSIG(status) ((status) & 0x7f) > > >#define __WSTOPSIG(status) __WEXITSTATUS(status) > > >#define __WIFEXITED(status) (__WTERMSIG(status) == 0) > > >#define __WIFSIGNALED(status) (((signed char) (((status) & 0x7f) + 1) >> 1) > 0) > > > >#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f) > > > > >#define __WIFCONTINUED(status) ((status) == __W_CONTINUED) > > > >#define __WCOREDUMP(status) ((status) & __WCOREFLAG) > > >#define __W_EXITCODE(ret,sig) ((ret) << 8 | (sig)) >#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f) >#define __W_CONTINUED 0xffff >#define __WCOREFLAG 0x80 > > > > > > >union wait > { > int w_status; > struct > { > > unsigned int __w_termsig:7; > unsigned int __w_coredump:1; > unsigned int __w_retcode:8; > unsigned int:16; > > > > > > > > } __wait_terminated; > struct > { > > unsigned int __w_stopval:8; > unsigned int __w_stopsig:8; > unsigned int:16; > > > > > > > } __wait_stopped; > }; > >#define w_termsig __wait_terminated.__w_termsig >#define w_coredump __wait_terminated.__w_coredump >#define w_retcode __wait_terminated.__w_retcode >#define w_stopsig __wait_stopped.__w_stopsig >#define w_stopval __wait_stopped.__w_stopval ># 44 "/usr/include/stdlib.h" 2 3 4 > > > > > > > >#define __WAIT_INT(status) (__extension__ ({ union { __typeof(status) __in; int __i; } __u; __u.__in = (status); __u.__i; })) ># 68 "/usr/include/stdlib.h" 3 4 >typedef union > { > union wait *__uptr; > int *__iptr; > } __WAIT_STATUS __attribute__ ((__transparent_union__)); >#define __WAIT_STATUS_DEFN int * ># 85 "/usr/include/stdlib.h" 3 4 >#define WEXITSTATUS(status) __WEXITSTATUS(__WAIT_INT(status)) >#define WTERMSIG(status) __WTERMSIG(__WAIT_INT(status)) >#define WSTOPSIG(status) __WSTOPSIG(__WAIT_INT(status)) >#define WIFEXITED(status) __WIFEXITED(__WAIT_INT(status)) >#define WIFSIGNALED(status) __WIFSIGNALED(__WAIT_INT(status)) >#define WIFSTOPPED(status) __WIFSTOPPED(__WAIT_INT(status)) > >#define WIFCONTINUED(status) __WIFCONTINUED(__WAIT_INT(status)) > > > > > >typedef struct > { > int quot; > int rem; > } div_t; > > > >typedef struct > { > long int quot; > long int rem; > } ldiv_t; >#define __ldiv_t_defined 1 > > > > > > >__extension__ typedef struct > { > long long int quot; > long long int rem; > } lldiv_t; >#define __lldiv_t_defined 1 > > > > > >#define RAND_MAX 2147483647 > > > > >#define EXIT_FAILURE 1 >#define EXIT_SUCCESS 0 > > > >#define MB_CUR_MAX (__ctype_get_mb_cur_max ()) >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))); > ># 239 "/usr/include/stdlib.h" 3 4 >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))); >#define __strtol_internal_defined 1 > > >extern unsigned long int __strtoul_internal (const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); >#define __strtoul_internal_defined 1 ># 323 "/usr/include/stdlib.h" 3 4 > >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); >} > ># 424 "/usr/include/stdlib.h" 3 4 >extern char *l64a (long int __n) __attribute__ ((__nothrow__)); > > >extern long int a64l (const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 440 "/usr/include/stdlib.h" 3 4 >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))); > > > > > > >#define __malloc_and_calloc_defined > > >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__)); > >extern void free (void *__ptr) __attribute__ ((__nothrow__)); > > > > >extern void cfree (void *__ptr) __attribute__ ((__nothrow__)); > > > ># 1 "/usr/include/alloca.h" 1 3 4 ># 20 "/usr/include/alloca.h" 3 4 >#define _ALLOCA_H 1 > > > >#define __need_size_t ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 235 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_size_t ># 397 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef NULL > > > > >#define NULL ((void *)0) ># 414 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#define offsetof(TYPE,MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ># 26 "/usr/include/alloca.h" 2 3 4 > > > > > > > >extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); > > >#define alloca(size) __builtin_alloca (size) > > > ># 607 "/usr/include/stdlib.h" 2 3 4 > > > > >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__)); ># 691 "/usr/include/stdlib.h" 3 4 >extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 705 "/usr/include/stdlib.h" 3 4 >extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") __attribute__ ((__nonnull__ (1))); > > > > > >extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))); ># 721 "/usr/include/stdlib.h" 3 4 >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))); ># 749 "/usr/include/stdlib.h" 3 4 >extern char *realpath (const char *__restrict __name, > char *__restrict __resolved) __attribute__ ((__nothrow__)); > > > > > >#define __COMPAR_FN_T >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__)); > ># 814 "/usr/include/stdlib.h" 3 4 >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))); ># 902 "/usr/include/stdlib.h" 3 4 >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))); > > > > > > ># 33 "readelf.c" 2 ># 1 "/usr/include/string.h" 1 3 4 ># 24 "/usr/include/string.h" 3 4 >#define _STRING_H 1 > > > > > > >#define __need_size_t >#define __need_NULL ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 235 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_size_t ># 397 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef NULL > > > > >#define NULL ((void *)0) > > > > > >#undef __need_NULL > > > > > >#define offsetof(TYPE,MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ># 34 "/usr/include/string.h" 2 3 4 > > > > >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))); > ># 121 "/usr/include/string.h" 3 4 >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))); > > > > >#define strdupa(s) (__extension__ ({ __const char *__old = (s); size_t __len = strlen (__old) + 1; char *__new = (char *) __builtin_alloca (__len); (char *) memcpy (__new, __old, __len); })) ># 154 "/usr/include/string.h" 3 4 >#define strndupa(s,n) (__extension__ ({ __const char *__old = (s); size_t __len = strnlen (__old, (n)); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); })) ># 165 "/usr/include/string.h" 3 4 > > >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 "/usr/include/string.h" 3 4 >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 "/usr/include/string.h" 3 4 ># 1 "/usr/include/bits/string.h" 1 3 4 ># 26 "/usr/include/bits/string.h" 3 4 >#define _STRING_ARCH_unaligned 1 ># 415 "/usr/include/string.h" 2 3 4 > > ># 1 "/usr/include/bits/string2.h" 1 3 4 ># 46 "/usr/include/bits/string2.h" 3 4 >#define __STRING_INLINE extern __inline ># 56 "/usr/include/bits/string2.h" 3 4 >#define __STRING2_SMALL_GET16(src,idx) (((__const unsigned char *) (__const char *) (src))[idx + 1] << 8 | ((__const unsigned char *) (__const char *) (src))[idx]) > > >#define __STRING2_SMALL_GET32(src,idx) (((((__const unsigned char *) (__const char *) (src))[idx + 3] << 8 | ((__const unsigned char *) (__const char *) (src))[idx + 2]) << 8 | ((__const unsigned char *) (__const char *) (src))[idx + 1]) << 8 | ((__const unsigned char *) (__const char *) (src))[idx]) ># 93 "/usr/include/bits/string2.h" 3 4 >#define __string2_1bptr_p(__x) ((size_t)(const void *)((__x) + 1) - (size_t)(const void *)(__x) == 1) ># 195 "/usr/include/bits/string2.h" 3 4 >#define __bzero(s,n) __builtin_memset (s, '\0', n) ># 209 "/usr/include/bits/string2.h" 3 4 >#define __mempcpy(dest,src,n) (__extension__ (__builtin_constant_p (src) && __builtin_constant_p (n) && __string2_1bptr_p (src) && n <= 8 ? __builtin_memcpy (dest, src, n) + (n) : __mempcpy (dest, src, n))) ># 223 "/usr/include/bits/string2.h" 3 4 >#define mempcpy(dest,src,n) __mempcpy (dest, src, n) ># 394 "/usr/include/bits/string2.h" 3 4 >extern void *__rawmemchr (const void *__s, int __c); > >#define strchr(s,c) (__extension__ (__builtin_constant_p (c) && !__builtin_constant_p (s) && (c) == '\0' ? (char *) __rawmemchr (s, c) : __builtin_strchr (s, c))) ># 579 "/usr/include/bits/string2.h" 3 4 >#define __stpcpy(dest,src) (__extension__ (__builtin_constant_p (src) ? (__string2_1bptr_p (src) && strlen (src) + 1 <= 8 ? __builtin_strcpy (dest, src) + strlen (src) : ((char *) (__mempcpy) (dest, src, strlen (src) + 1) - 1)) : __stpcpy (dest, src))) ># 598 "/usr/include/bits/string2.h" 3 4 >#define stpcpy(dest,src) __stpcpy (dest, src) ># 761 "/usr/include/bits/string2.h" 3 4 >#define strncpy(dest,src,n) __builtin_strncpy (dest, src, n) ># 785 "/usr/include/bits/string2.h" 3 4 >#define strncat(dest,src,n) __builtin_strncat (dest, src, n) ># 800 "/usr/include/bits/string2.h" 3 4 >#define strcmp(s1,s2) __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (s1) && __builtin_constant_p (s2) && (__s1_len = strlen (s1), __s2_len = strlen (s2), (!__string2_1bptr_p (s1) || __s1_len >= 4) && (!__string2_1bptr_p (s2) || __s2_len >= 4)) ? __builtin_strcmp (s1, s2) : (__builtin_constant_p (s1) && __string2_1bptr_p (s1) && (__s1_len = strlen (s1), __s1_len < 4) ? (__builtin_constant_p (s2) && __string2_1bptr_p (s2) ? __builtin_strcmp (s1, s2) : __strcmp_cg (s1, s2, __s1_len)) : (__builtin_constant_p (s2) && __string2_1bptr_p (s2) && (__s2_len = strlen (s2), __s2_len < 4) ? (__builtin_constant_p (s1) && __string2_1bptr_p (s1) ? __builtin_strcmp (s1, s2) : __strcmp_gc (s1, s2, __s2_len)) : __builtin_strcmp (s1, s2)))); }) ># 842 "/usr/include/bits/string2.h" 3 4 >#define __strcmp_cc(s1,s2,l) (__extension__ ({ register int __result = (((__const unsigned char *) (__const char *) (s1))[0] - ((__const unsigned char *) (__const char *)(s2))[0]); if (l > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[1] - ((__const unsigned char *) (__const char *) (s2))[1]); if (l > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[2] - ((__const unsigned char *) (__const char *) (s2))[2]); if (l > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (s1))[3] - ((__const unsigned char *) (__const char *) (s2))[3]); } } __result; })) ># 869 "/usr/include/bits/string2.h" 3 4 >#define __strcmp_cg(s1,s2,l1) (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (s2); register int __result = (((__const unsigned char *) (__const char *) (s1))[0] - __s2[0]); if (l1 > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[1] - __s2[1]); if (l1 > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (s1))[2] - __s2[2]); if (l1 > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (s1))[3] - __s2[3]); } } __result; })) ># 891 "/usr/include/bits/string2.h" 3 4 >#define __strcmp_gc(s1,s2,l2) (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (s1); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (s2))[0]; if (l2 > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (s2))[1]); if (l2 > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (s2))[2]); if (l2 > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (s2))[3]); } } __result; })) ># 920 "/usr/include/bits/string2.h" 3 4 >#define strncmp(s1,s2,n) (__extension__ (__builtin_constant_p (n) && ((__builtin_constant_p (s1) && strlen (s1) < ((size_t) (n))) || (__builtin_constant_p (s2) && strlen (s2) < ((size_t) (n)))) ? strcmp (s1, s2) : strncmp (s1, s2, n))) ># 935 "/usr/include/bits/string2.h" 3 4 >#define strcspn(s,reject) __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (reject) && __string2_1bptr_p (reject) ? ((__builtin_constant_p (s) && __string2_1bptr_p (s)) ? __builtin_strcspn (s, reject) : ((__r0 = ((__const char *) (reject))[0], __r0 == '\0') ? strlen (s) : ((__r1 = ((__const char *) (reject))[1], __r1 == '\0') ? __strcspn_c1 (s, __r0) : ((__r2 = ((__const char *) (reject))[2], __r2 == '\0') ? __strcspn_c2 (s, __r0, __r1) : (((__const char *) (reject))[3] == '\0' ? __strcspn_c3 (s, __r0, __r1, __r2) : __builtin_strcspn (s, reject)))))) : __builtin_strcspn (s, reject)); }) ># 969 "/usr/include/bits/string2.h" 3 4 >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; >} ># 1011 "/usr/include/bits/string2.h" 3 4 >#define strspn(s,accept) __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (accept) && __string2_1bptr_p (accept) ? ((__builtin_constant_p (s) && __string2_1bptr_p (s)) ? __builtin_strspn (s, accept) : ((__a0 = ((__const char *) (accept))[0], __a0 == '\0') ? ((void) (s), 0) : ((__a1 = ((__const char *) (accept))[1], __a1 == '\0') ? __strspn_c1 (s, __a0) : ((__a2 = ((__const char *) (accept))[2], __a2 == '\0') ? __strspn_c2 (s, __a0, __a1) : (((__const char *) (accept))[3] == '\0' ? __strspn_c3 (s, __a0, __a1, __a2) : __builtin_strspn (s, accept)))))) : __builtin_strspn (s, accept)); }) ># 1045 "/usr/include/bits/string2.h" 3 4 >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; >} > > > > > > > >#define strpbrk(s,accept) __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (accept) && __string2_1bptr_p (accept) ? ((__builtin_constant_p (s) && __string2_1bptr_p (s)) ? __builtin_strpbrk (s, accept) : ((__a0 = ((__const char *) (accept))[0], __a0 == '\0') ? ((void) (s), (char *) NULL) : ((__a1 = ((__const char *) (accept))[1], __a1 == '\0') ? __builtin_strchr (s, __a0) : ((__a2 = ((__const char *) (accept))[2], __a2 == '\0') ? __strpbrk_c2 (s, __a0, __a1) : (((__const char *) (accept))[3] == '\0' ? __strpbrk_c3 (s, __a0, __a1, __a2) : __builtin_strpbrk (s, accept)))))) : __builtin_strpbrk (s, accept)); }) ># 1121 "/usr/include/bits/string2.h" 3 4 >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; >} ># 1164 "/usr/include/bits/string2.h" 3 4 >#define __strtok_r(s,sep,nextp) (__extension__ (__builtin_constant_p (sep) && __string2_1bptr_p (sep) ? (((__const char *) (sep))[0] != '\0' && ((__const char *) (sep))[1] == '\0' ? __strtok_r_1c (s, ((__const char *) (sep))[0], nextp) : __strtok_r (s, sep, nextp)) : __strtok_r (s, sep, nextp))) ># 1173 "/usr/include/bits/string2.h" 3 4 >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; >} > >#define strtok_r(s,sep,nextp) __strtok_r (s, sep, nextp) > > > > > > > >extern char *__strsep_g (char **__stringp, const char *__delim); >#define __strsep(s,reject) __extension__ ({ char __r0, __r1, __r2; (__builtin_constant_p (reject) && __string2_1bptr_p (reject) && (__r0 = ((__const char *) (reject))[0], ((__const char *) (reject))[0] != '\0') ? ((__r1 = ((__const char *) (reject))[1], ((__const char *) (reject))[1] == '\0') ? __strsep_1c (s, __r0) : ((__r2 = ((__const char *) (reject))[2], __r2 == '\0') ? __strsep_2c (s, __r0, __r1) : (((__const char *) (reject))[3] == '\0' ? __strsep_3c (s, __r0, __r1, __r2) : __strsep_g (s, reject)))) : __strsep_g (s, reject)); }) ># 1223 "/usr/include/bits/string2.h" 3 4 >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; >} > >#define strsep(s,reject) __strsep (s, reject) ># 1298 "/usr/include/bits/string2.h" 3 4 >#define __need_malloc_and_calloc > > > > > >extern char *__strdup (const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); >#define __strdup(s) (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s) ? (((__const char *) (s))[0] == '\0' ? (char *) calloc (1, 1) : ({ size_t __len = strlen (s) + 1; char *__retval = (char *) malloc (__len); if (__retval != NULL) __retval = (char *) memcpy (__retval, s, __len); __retval; })) : __strdup (s))) ># 1317 "/usr/include/bits/string2.h" 3 4 >#define strdup(s) __strdup (s) > > > > > >extern char *__strndup (const char *__string, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); >#define __strndup(s,n) (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s) ? (((__const char *) (s))[0] == '\0' ? (char *) calloc (1, 1) : ({ size_t __len = strlen (s) + 1; size_t __n = (n); char *__retval; if (__n < __len) __len = __n + 1; __retval = (char *) malloc (__len); if (__retval != NULL) { __retval[__len - 1] = '\0'; __retval = (char *) memcpy (__retval, s, __len - 1); } __retval; })) : __strndup (s, n))) ># 1345 "/usr/include/bits/string2.h" 3 4 >#define strndup(s,n) __strndup (s, n) > > > > > > >#undef __STRING_INLINE ># 418 "/usr/include/string.h" 2 3 4 ># 426 "/usr/include/string.h" 3 4 > ># 34 "readelf.c" 2 ># 1 "/usr/include/time.h" 1 3 4 ># 27 "/usr/include/time.h" 3 4 >#define _TIME_H 1 > > > > > > > > >#define __need_size_t >#define __need_NULL ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 235 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_size_t ># 397 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef NULL > > > > >#define NULL ((void *)0) > > > > > >#undef __need_NULL > > > > > >#define offsetof(TYPE,MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ># 39 "/usr/include/time.h" 2 3 4 > > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 26 "/usr/include/bits/time.h" 3 4 >#define _BITS_TIME_H 1 > > > > > > > >#define CLOCKS_PER_SEC 1000000l ># 46 "/usr/include/bits/time.h" 3 4 >#define CLOCK_REALTIME 0 > >#define CLOCK_MONOTONIC 1 > >#define CLOCK_PROCESS_CPUTIME_ID 2 > >#define CLOCK_THREAD_CPUTIME_ID 3 > > >#define TIMER_ABSTIME 1 ># 43 "/usr/include/time.h" 2 3 4 ># 129 "/usr/include/time.h" 3 4 > > >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; ># 178 "/usr/include/time.h" 3 4 > > > >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__)); > > > > > > > >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__)); > > > > > >#define __isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) ># 309 "/usr/include/time.h" 3 4 >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__)); ># 324 "/usr/include/time.h" 3 4 >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__)); ># 386 "/usr/include/time.h" 3 4 >extern int getdate_err; ># 395 "/usr/include/time.h" 3 4 >extern struct tm *getdate (const char *__string); ># 409 "/usr/include/time.h" 3 4 >extern int getdate_r (const char *__restrict __string, > struct tm *__restrict __resbufp); > > > ># 35 "readelf.c" 2 ># 1 "/usr/include/unistd.h" 1 3 4 ># 24 "/usr/include/unistd.h" 3 4 >#define _UNISTD_H 1 > > > > > > > > > >#define _POSIX_VERSION 200112L > > > > > >#define _POSIX2_VERSION 200112L > > > >#define _POSIX2_C_BIND 200112L > > > >#define _POSIX2_C_DEV 200112L > > > >#define _POSIX2_SW_DEV 200112L > > > >#define _POSIX2_LOCALEDEF 200112L > > > >#define _XOPEN_VERSION 500 > > > > > >#define _XOPEN_XCU_VERSION 4 > > >#define _XOPEN_XPG2 1 >#define _XOPEN_XPG3 1 >#define _XOPEN_XPG4 1 > > >#define _XOPEN_UNIX 1 > > >#define _XOPEN_CRYPT 1 > > > >#define _XOPEN_ENH_I18N 1 > > >#define _XOPEN_LEGACY 1 ># 171 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/bits/posix_opt.h" 1 3 4 ># 21 "/usr/include/bits/posix_opt.h" 3 4 >#define _POSIX_OPT_H 1 > > >#define _POSIX_JOB_CONTROL 1 > > >#define _POSIX_SAVED_IDS 1 > > >#define _POSIX_PRIORITY_SCHEDULING 200112L > > >#define _POSIX_SYNCHRONIZED_IO 200112L > > >#define _POSIX_FSYNC 200112L > > >#define _POSIX_MAPPED_FILES 200112L > > >#define _POSIX_MEMLOCK 200112L > > >#define _POSIX_MEMLOCK_RANGE 200112L > > >#define _POSIX_MEMORY_PROTECTION 200112L > > >#define _POSIX_CHOWN_RESTRICTED 1 > > > >#define _POSIX_VDISABLE '\0' > > >#define _POSIX_NO_TRUNC 1 > > >#define _XOPEN_REALTIME 1 > > >#define _XOPEN_SHM 1 > > >#define _POSIX_THREADS 200112L > > >#define _POSIX_REENTRANT_FUNCTIONS 1 >#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L > > >#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L > > >#define _POSIX_THREAD_ATTR_STACKSIZE 200112L > > >#define _POSIX_THREAD_ATTR_STACKADDR 200112L > > >#define _POSIX_SEMAPHORES 200112L > > >#define _POSIX_REALTIME_SIGNALS 200112L > > >#define _POSIX_ASYNCHRONOUS_IO 200112L >#define _POSIX_ASYNC_IO 1 > >#define _LFS_ASYNCHRONOUS_IO 1 > >#define _POSIX_PRIORITIZED_IO 200112L > > >#define _LFS64_ASYNCHRONOUS_IO 1 > > >#define _LFS_LARGEFILE 1 >#define _LFS64_LARGEFILE 1 >#define _LFS64_STDIO 1 > > >#define _POSIX_SHARED_MEMORY_OBJECTS 200112L > > >#define _POSIX_CPUTIME 0 > > >#define _POSIX_THREAD_CPUTIME 0 > > >#define _POSIX_REGEXP 1 > > >#define _POSIX_READER_WRITER_LOCKS 200112L > > >#define _POSIX_SHELL 1 > > >#define _POSIX_TIMEOUTS 200112L > > >#define _POSIX_SPIN_LOCKS 200112L > > >#define _POSIX_SPAWN 200112L > > >#define _POSIX_TIMERS 200112L > > >#define _POSIX_BARRIERS 200112L > > >#define _POSIX_MESSAGE_PASSING 200112L > > >#define _POSIX_THREAD_PROCESS_SHARED 200112L > > >#define _POSIX_MONOTONIC_CLOCK 0 > > >#define _POSIX_CLOCK_SELECTION 200112L > > >#define _POSIX_ADVISORY_INFO 200112L > > >#define _POSIX_IPV6 200112L > > >#define _POSIX_RAW_SOCKETS 200112L > > >#define _POSIX2_CHAR_TERM 200112L > > >#define _POSIX_SPORADIC_SERVER -1 >#define _POSIX_THREAD_SPORADIC_SERVER -1 > > >#define _POSIX_TRACE -1 >#define _POSIX_TRACE_EVENT_FILTER -1 >#define _POSIX_TRACE_INHERIT -1 >#define _POSIX_TRACE_LOG -1 > > >#define _POSIX_TYPED_MEMORY_OBJECTS -1 > > >#define _POSIX_THREAD_PRIO_INHERIT -1 >#define _POSIX_THREAD_PRIO_PROTECT -1 ># 172 "/usr/include/unistd.h" 2 3 4 > > > ># 1 "/usr/include/bits/environments.h" 1 3 4 ># 41 "/usr/include/bits/environments.h" 3 4 >#define _POSIX_V6_ILP32_OFF32 1 >#define _POSIX_V6_ILP32_OFFBIG 1 >#define _XBS5_ILP32_OFF32 1 >#define _XBS5_ILP32_OFFBIG 1 ># 57 "/usr/include/bits/environments.h" 3 4 >#define __ILP32_OFF32_CFLAGS "-m32" >#define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" >#define __ILP32_OFF32_LDFLAGS "-m32" >#define __ILP32_OFFBIG_LDFLAGS "-m32" >#define __LP64_OFF64_CFLAGS "-m64" >#define __LP64_OFF64_LDFLAGS "-m64" ># 176 "/usr/include/unistd.h" 2 3 4 > > > >#define STDIN_FILENO 0 >#define STDOUT_FILENO 1 >#define STDERR_FILENO 2 ># 193 "/usr/include/unistd.h" 3 4 >#define __need_size_t >#define __need_NULL ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 235 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef __need_size_t ># 397 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 3 4 >#undef NULL > > > > >#define NULL ((void *)0) > > > > > >#undef __need_NULL > > > > > >#define offsetof(TYPE,MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ># 196 "/usr/include/unistd.h" 2 3 4 ># 243 "/usr/include/unistd.h" 3 4 >typedef __socklen_t socklen_t; >#define __socklen_t_defined > > > > > >#define R_OK 4 >#define W_OK 2 >#define X_OK 1 >#define F_OK 0 > > >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))); ># 275 "/usr/include/unistd.h" 3 4 >#define L_SET SEEK_SET >#define L_INCR SEEK_CUR >#define L_XTND SEEK_END ># 290 "/usr/include/unistd.h" 3 4 >extern __off64_t lseek (int __fd, __off64_t __offset, int __whence) __asm__ ("" "lseek64") __attribute__ ((__nothrow__)); > > > > > > > >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); ># 340 "/usr/include/unistd.h" 3 4 >extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64"); > > >extern ssize_t pwrite (int __fd, const void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pwrite64"); ># 356 "/usr/include/unistd.h" 3 4 >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__)); ># 378 "/usr/include/unistd.h" 3 4 >extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__)); ># 390 "/usr/include/unistd.h" 3 4 >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); ># 414 "/usr/include/unistd.h" 3 4 >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 chdir (const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int fchdir (int __fd) __attribute__ ((__nothrow__)); ># 448 "/usr/include/unistd.h" 3 4 >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))); > > > > >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 "/usr/include/bits/confname.h" 1 3 4 ># 26 "/usr/include/bits/confname.h" 3 4 >enum > { > _PC_LINK_MAX, >#define _PC_LINK_MAX _PC_LINK_MAX > _PC_MAX_CANON, >#define _PC_MAX_CANON _PC_MAX_CANON > _PC_MAX_INPUT, >#define _PC_MAX_INPUT _PC_MAX_INPUT > _PC_NAME_MAX, >#define _PC_NAME_MAX _PC_NAME_MAX > _PC_PATH_MAX, >#define _PC_PATH_MAX _PC_PATH_MAX > _PC_PIPE_BUF, >#define _PC_PIPE_BUF _PC_PIPE_BUF > _PC_CHOWN_RESTRICTED, >#define _PC_CHOWN_RESTRICTED _PC_CHOWN_RESTRICTED > _PC_NO_TRUNC, >#define _PC_NO_TRUNC _PC_NO_TRUNC > _PC_VDISABLE, >#define _PC_VDISABLE _PC_VDISABLE > _PC_SYNC_IO, >#define _PC_SYNC_IO _PC_SYNC_IO > _PC_ASYNC_IO, >#define _PC_ASYNC_IO _PC_ASYNC_IO > _PC_PRIO_IO, >#define _PC_PRIO_IO _PC_PRIO_IO > _PC_SOCK_MAXBUF, >#define _PC_SOCK_MAXBUF _PC_SOCK_MAXBUF > _PC_FILESIZEBITS, >#define _PC_FILESIZEBITS _PC_FILESIZEBITS > _PC_REC_INCR_XFER_SIZE, >#define _PC_REC_INCR_XFER_SIZE _PC_REC_INCR_XFER_SIZE > _PC_REC_MAX_XFER_SIZE, >#define _PC_REC_MAX_XFER_SIZE _PC_REC_MAX_XFER_SIZE > _PC_REC_MIN_XFER_SIZE, >#define _PC_REC_MIN_XFER_SIZE _PC_REC_MIN_XFER_SIZE > _PC_REC_XFER_ALIGN, >#define _PC_REC_XFER_ALIGN _PC_REC_XFER_ALIGN > _PC_ALLOC_SIZE_MIN, >#define _PC_ALLOC_SIZE_MIN _PC_ALLOC_SIZE_MIN > _PC_SYMLINK_MAX, >#define _PC_SYMLINK_MAX _PC_SYMLINK_MAX > _PC_2_SYMLINKS >#define _PC_2_SYMLINKS _PC_2_SYMLINKS > }; > > >enum > { > _SC_ARG_MAX, >#define _SC_ARG_MAX _SC_ARG_MAX > _SC_CHILD_MAX, >#define _SC_CHILD_MAX _SC_CHILD_MAX > _SC_CLK_TCK, >#define _SC_CLK_TCK _SC_CLK_TCK > _SC_NGROUPS_MAX, >#define _SC_NGROUPS_MAX _SC_NGROUPS_MAX > _SC_OPEN_MAX, >#define _SC_OPEN_MAX _SC_OPEN_MAX > _SC_STREAM_MAX, >#define _SC_STREAM_MAX _SC_STREAM_MAX > _SC_TZNAME_MAX, >#define _SC_TZNAME_MAX _SC_TZNAME_MAX > _SC_JOB_CONTROL, >#define _SC_JOB_CONTROL _SC_JOB_CONTROL > _SC_SAVED_IDS, >#define _SC_SAVED_IDS _SC_SAVED_IDS > _SC_REALTIME_SIGNALS, >#define _SC_REALTIME_SIGNALS _SC_REALTIME_SIGNALS > _SC_PRIORITY_SCHEDULING, >#define _SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING > _SC_TIMERS, >#define _SC_TIMERS _SC_TIMERS > _SC_ASYNCHRONOUS_IO, >#define _SC_ASYNCHRONOUS_IO _SC_ASYNCHRONOUS_IO > _SC_PRIORITIZED_IO, >#define _SC_PRIORITIZED_IO _SC_PRIORITIZED_IO > _SC_SYNCHRONIZED_IO, >#define _SC_SYNCHRONIZED_IO _SC_SYNCHRONIZED_IO > _SC_FSYNC, >#define _SC_FSYNC _SC_FSYNC > _SC_MAPPED_FILES, >#define _SC_MAPPED_FILES _SC_MAPPED_FILES > _SC_MEMLOCK, >#define _SC_MEMLOCK _SC_MEMLOCK > _SC_MEMLOCK_RANGE, >#define _SC_MEMLOCK_RANGE _SC_MEMLOCK_RANGE > _SC_MEMORY_PROTECTION, >#define _SC_MEMORY_PROTECTION _SC_MEMORY_PROTECTION > _SC_MESSAGE_PASSING, >#define _SC_MESSAGE_PASSING _SC_MESSAGE_PASSING > _SC_SEMAPHORES, >#define _SC_SEMAPHORES _SC_SEMAPHORES > _SC_SHARED_MEMORY_OBJECTS, >#define _SC_SHARED_MEMORY_OBJECTS _SC_SHARED_MEMORY_OBJECTS > _SC_AIO_LISTIO_MAX, >#define _SC_AIO_LISTIO_MAX _SC_AIO_LISTIO_MAX > _SC_AIO_MAX, >#define _SC_AIO_MAX _SC_AIO_MAX > _SC_AIO_PRIO_DELTA_MAX, >#define _SC_AIO_PRIO_DELTA_MAX _SC_AIO_PRIO_DELTA_MAX > _SC_DELAYTIMER_MAX, >#define _SC_DELAYTIMER_MAX _SC_DELAYTIMER_MAX > _SC_MQ_OPEN_MAX, >#define _SC_MQ_OPEN_MAX _SC_MQ_OPEN_MAX > _SC_MQ_PRIO_MAX, >#define _SC_MQ_PRIO_MAX _SC_MQ_PRIO_MAX > _SC_VERSION, >#define _SC_VERSION _SC_VERSION > _SC_PAGESIZE, >#define _SC_PAGESIZE _SC_PAGESIZE >#define _SC_PAGE_SIZE _SC_PAGESIZE > _SC_RTSIG_MAX, >#define _SC_RTSIG_MAX _SC_RTSIG_MAX > _SC_SEM_NSEMS_MAX, >#define _SC_SEM_NSEMS_MAX _SC_SEM_NSEMS_MAX > _SC_SEM_VALUE_MAX, >#define _SC_SEM_VALUE_MAX _SC_SEM_VALUE_MAX > _SC_SIGQUEUE_MAX, >#define _SC_SIGQUEUE_MAX _SC_SIGQUEUE_MAX > _SC_TIMER_MAX, >#define _SC_TIMER_MAX _SC_TIMER_MAX > > > > _SC_BC_BASE_MAX, >#define _SC_BC_BASE_MAX _SC_BC_BASE_MAX > _SC_BC_DIM_MAX, >#define _SC_BC_DIM_MAX _SC_BC_DIM_MAX > _SC_BC_SCALE_MAX, >#define _SC_BC_SCALE_MAX _SC_BC_SCALE_MAX > _SC_BC_STRING_MAX, >#define _SC_BC_STRING_MAX _SC_BC_STRING_MAX > _SC_COLL_WEIGHTS_MAX, >#define _SC_COLL_WEIGHTS_MAX _SC_COLL_WEIGHTS_MAX > _SC_EQUIV_CLASS_MAX, >#define _SC_EQUIV_CLASS_MAX _SC_EQUIV_CLASS_MAX > _SC_EXPR_NEST_MAX, >#define _SC_EXPR_NEST_MAX _SC_EXPR_NEST_MAX > _SC_LINE_MAX, >#define _SC_LINE_MAX _SC_LINE_MAX > _SC_RE_DUP_MAX, >#define _SC_RE_DUP_MAX _SC_RE_DUP_MAX > _SC_CHARCLASS_NAME_MAX, >#define _SC_CHARCLASS_NAME_MAX _SC_CHARCLASS_NAME_MAX > > _SC_2_VERSION, >#define _SC_2_VERSION _SC_2_VERSION > _SC_2_C_BIND, >#define _SC_2_C_BIND _SC_2_C_BIND > _SC_2_C_DEV, >#define _SC_2_C_DEV _SC_2_C_DEV > _SC_2_FORT_DEV, >#define _SC_2_FORT_DEV _SC_2_FORT_DEV > _SC_2_FORT_RUN, >#define _SC_2_FORT_RUN _SC_2_FORT_RUN > _SC_2_SW_DEV, >#define _SC_2_SW_DEV _SC_2_SW_DEV > _SC_2_LOCALEDEF, >#define _SC_2_LOCALEDEF _SC_2_LOCALEDEF > > _SC_PII, >#define _SC_PII _SC_PII > _SC_PII_XTI, >#define _SC_PII_XTI _SC_PII_XTI > _SC_PII_SOCKET, >#define _SC_PII_SOCKET _SC_PII_SOCKET > _SC_PII_INTERNET, >#define _SC_PII_INTERNET _SC_PII_INTERNET > _SC_PII_OSI, >#define _SC_PII_OSI _SC_PII_OSI > _SC_POLL, >#define _SC_POLL _SC_POLL > _SC_SELECT, >#define _SC_SELECT _SC_SELECT > _SC_UIO_MAXIOV, >#define _SC_UIO_MAXIOV _SC_UIO_MAXIOV > _SC_IOV_MAX = _SC_UIO_MAXIOV, >#define _SC_IOV_MAX _SC_IOV_MAX > _SC_PII_INTERNET_STREAM, >#define _SC_PII_INTERNET_STREAM _SC_PII_INTERNET_STREAM > _SC_PII_INTERNET_DGRAM, >#define _SC_PII_INTERNET_DGRAM _SC_PII_INTERNET_DGRAM > _SC_PII_OSI_COTS, >#define _SC_PII_OSI_COTS _SC_PII_OSI_COTS > _SC_PII_OSI_CLTS, >#define _SC_PII_OSI_CLTS _SC_PII_OSI_CLTS > _SC_PII_OSI_M, >#define _SC_PII_OSI_M _SC_PII_OSI_M > _SC_T_IOV_MAX, >#define _SC_T_IOV_MAX _SC_T_IOV_MAX > > > _SC_THREADS, >#define _SC_THREADS _SC_THREADS > _SC_THREAD_SAFE_FUNCTIONS, >#define _SC_THREAD_SAFE_FUNCTIONS _SC_THREAD_SAFE_FUNCTIONS > _SC_GETGR_R_SIZE_MAX, >#define _SC_GETGR_R_SIZE_MAX _SC_GETGR_R_SIZE_MAX > _SC_GETPW_R_SIZE_MAX, >#define _SC_GETPW_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX > _SC_LOGIN_NAME_MAX, >#define _SC_LOGIN_NAME_MAX _SC_LOGIN_NAME_MAX > _SC_TTY_NAME_MAX, >#define _SC_TTY_NAME_MAX _SC_TTY_NAME_MAX > _SC_THREAD_DESTRUCTOR_ITERATIONS, >#define _SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_DESTRUCTOR_ITERATIONS > _SC_THREAD_KEYS_MAX, >#define _SC_THREAD_KEYS_MAX _SC_THREAD_KEYS_MAX > _SC_THREAD_STACK_MIN, >#define _SC_THREAD_STACK_MIN _SC_THREAD_STACK_MIN > _SC_THREAD_THREADS_MAX, >#define _SC_THREAD_THREADS_MAX _SC_THREAD_THREADS_MAX > _SC_THREAD_ATTR_STACKADDR, >#define _SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKADDR > _SC_THREAD_ATTR_STACKSIZE, >#define _SC_THREAD_ATTR_STACKSIZE _SC_THREAD_ATTR_STACKSIZE > _SC_THREAD_PRIORITY_SCHEDULING, >#define _SC_THREAD_PRIORITY_SCHEDULING _SC_THREAD_PRIORITY_SCHEDULING > _SC_THREAD_PRIO_INHERIT, >#define _SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_INHERIT > _SC_THREAD_PRIO_PROTECT, >#define _SC_THREAD_PRIO_PROTECT _SC_THREAD_PRIO_PROTECT > _SC_THREAD_PROCESS_SHARED, >#define _SC_THREAD_PROCESS_SHARED _SC_THREAD_PROCESS_SHARED > > _SC_NPROCESSORS_CONF, >#define _SC_NPROCESSORS_CONF _SC_NPROCESSORS_CONF > _SC_NPROCESSORS_ONLN, >#define _SC_NPROCESSORS_ONLN _SC_NPROCESSORS_ONLN > _SC_PHYS_PAGES, >#define _SC_PHYS_PAGES _SC_PHYS_PAGES > _SC_AVPHYS_PAGES, >#define _SC_AVPHYS_PAGES _SC_AVPHYS_PAGES > _SC_ATEXIT_MAX, >#define _SC_ATEXIT_MAX _SC_ATEXIT_MAX > _SC_PASS_MAX, >#define _SC_PASS_MAX _SC_PASS_MAX > > _SC_XOPEN_VERSION, >#define _SC_XOPEN_VERSION _SC_XOPEN_VERSION > _SC_XOPEN_XCU_VERSION, >#define _SC_XOPEN_XCU_VERSION _SC_XOPEN_XCU_VERSION > _SC_XOPEN_UNIX, >#define _SC_XOPEN_UNIX _SC_XOPEN_UNIX > _SC_XOPEN_CRYPT, >#define _SC_XOPEN_CRYPT _SC_XOPEN_CRYPT > _SC_XOPEN_ENH_I18N, >#define _SC_XOPEN_ENH_I18N _SC_XOPEN_ENH_I18N > _SC_XOPEN_SHM, >#define _SC_XOPEN_SHM _SC_XOPEN_SHM > > _SC_2_CHAR_TERM, >#define _SC_2_CHAR_TERM _SC_2_CHAR_TERM > _SC_2_C_VERSION, >#define _SC_2_C_VERSION _SC_2_C_VERSION > _SC_2_UPE, >#define _SC_2_UPE _SC_2_UPE > > _SC_XOPEN_XPG2, >#define _SC_XOPEN_XPG2 _SC_XOPEN_XPG2 > _SC_XOPEN_XPG3, >#define _SC_XOPEN_XPG3 _SC_XOPEN_XPG3 > _SC_XOPEN_XPG4, >#define _SC_XOPEN_XPG4 _SC_XOPEN_XPG4 > > _SC_CHAR_BIT, >#define _SC_CHAR_BIT _SC_CHAR_BIT > _SC_CHAR_MAX, >#define _SC_CHAR_MAX _SC_CHAR_MAX > _SC_CHAR_MIN, >#define _SC_CHAR_MIN _SC_CHAR_MIN > _SC_INT_MAX, >#define _SC_INT_MAX _SC_INT_MAX > _SC_INT_MIN, >#define _SC_INT_MIN _SC_INT_MIN > _SC_LONG_BIT, >#define _SC_LONG_BIT _SC_LONG_BIT > _SC_WORD_BIT, >#define _SC_WORD_BIT _SC_WORD_BIT > _SC_MB_LEN_MAX, >#define _SC_MB_LEN_MAX _SC_MB_LEN_MAX > _SC_NZERO, >#define _SC_NZERO _SC_NZERO > _SC_SSIZE_MAX, >#define _SC_SSIZE_MAX _SC_SSIZE_MAX > _SC_SCHAR_MAX, >#define _SC_SCHAR_MAX _SC_SCHAR_MAX > _SC_SCHAR_MIN, >#define _SC_SCHAR_MIN _SC_SCHAR_MIN > _SC_SHRT_MAX, >#define _SC_SHRT_MAX _SC_SHRT_MAX > _SC_SHRT_MIN, >#define _SC_SHRT_MIN _SC_SHRT_MIN > _SC_UCHAR_MAX, >#define _SC_UCHAR_MAX _SC_UCHAR_MAX > _SC_UINT_MAX, >#define _SC_UINT_MAX _SC_UINT_MAX > _SC_ULONG_MAX, >#define _SC_ULONG_MAX _SC_ULONG_MAX > _SC_USHRT_MAX, >#define _SC_USHRT_MAX _SC_USHRT_MAX > > _SC_NL_ARGMAX, >#define _SC_NL_ARGMAX _SC_NL_ARGMAX > _SC_NL_LANGMAX, >#define _SC_NL_LANGMAX _SC_NL_LANGMAX > _SC_NL_MSGMAX, >#define _SC_NL_MSGMAX _SC_NL_MSGMAX > _SC_NL_NMAX, >#define _SC_NL_NMAX _SC_NL_NMAX > _SC_NL_SETMAX, >#define _SC_NL_SETMAX _SC_NL_SETMAX > _SC_NL_TEXTMAX, >#define _SC_NL_TEXTMAX _SC_NL_TEXTMAX > > _SC_XBS5_ILP32_OFF32, >#define _SC_XBS5_ILP32_OFF32 _SC_XBS5_ILP32_OFF32 > _SC_XBS5_ILP32_OFFBIG, >#define _SC_XBS5_ILP32_OFFBIG _SC_XBS5_ILP32_OFFBIG > _SC_XBS5_LP64_OFF64, >#define _SC_XBS5_LP64_OFF64 _SC_XBS5_LP64_OFF64 > _SC_XBS5_LPBIG_OFFBIG, >#define _SC_XBS5_LPBIG_OFFBIG _SC_XBS5_LPBIG_OFFBIG > > _SC_XOPEN_LEGACY, >#define _SC_XOPEN_LEGACY _SC_XOPEN_LEGACY > _SC_XOPEN_REALTIME, >#define _SC_XOPEN_REALTIME _SC_XOPEN_REALTIME > _SC_XOPEN_REALTIME_THREADS, >#define _SC_XOPEN_REALTIME_THREADS _SC_XOPEN_REALTIME_THREADS > > _SC_ADVISORY_INFO, >#define _SC_ADVISORY_INFO _SC_ADVISORY_INFO > _SC_BARRIERS, >#define _SC_BARRIERS _SC_BARRIERS > _SC_BASE, >#define _SC_BASE _SC_BASE > _SC_C_LANG_SUPPORT, >#define _SC_C_LANG_SUPPORT _SC_C_LANG_SUPPORT > _SC_C_LANG_SUPPORT_R, >#define _SC_C_LANG_SUPPORT_R _SC_C_LANG_SUPPORT_R > _SC_CLOCK_SELECTION, >#define _SC_CLOCK_SELECTION _SC_CLOCK_SELECTION > _SC_CPUTIME, >#define _SC_CPUTIME _SC_CPUTIME > _SC_THREAD_CPUTIME, >#define _SC_THREAD_CPUTIME _SC_THREAD_CPUTIME > _SC_DEVICE_IO, >#define _SC_DEVICE_IO _SC_DEVICE_IO > _SC_DEVICE_SPECIFIC, >#define _SC_DEVICE_SPECIFIC _SC_DEVICE_SPECIFIC > _SC_DEVICE_SPECIFIC_R, >#define _SC_DEVICE_SPECIFIC_R _SC_DEVICE_SPECIFIC_R > _SC_FD_MGMT, >#define _SC_FD_MGMT _SC_FD_MGMT > _SC_FIFO, >#define _SC_FIFO _SC_FIFO > _SC_PIPE, >#define _SC_PIPE _SC_PIPE > _SC_FILE_ATTRIBUTES, >#define _SC_FILE_ATTRIBUTES _SC_FILE_ATTRIBUTES > _SC_FILE_LOCKING, >#define _SC_FILE_LOCKING _SC_FILE_LOCKING > _SC_FILE_SYSTEM, >#define _SC_FILE_SYSTEM _SC_FILE_SYSTEM > _SC_MONOTONIC_CLOCK, >#define _SC_MONOTONIC_CLOCK _SC_MONOTONIC_CLOCK > _SC_MULTI_PROCESS, >#define _SC_MULTI_PROCESS _SC_MULTI_PROCESS > _SC_SINGLE_PROCESS, >#define _SC_SINGLE_PROCESS _SC_SINGLE_PROCESS > _SC_NETWORKING, >#define _SC_NETWORKING _SC_NETWORKING > _SC_READER_WRITER_LOCKS, >#define _SC_READER_WRITER_LOCKS _SC_READER_WRITER_LOCKS > _SC_SPIN_LOCKS, >#define _SC_SPIN_LOCKS _SC_SPIN_LOCKS > _SC_REGEXP, >#define _SC_REGEXP _SC_REGEXP > _SC_REGEX_VERSION, >#define _SC_REGEX_VERSION _SC_REGEX_VERSION > _SC_SHELL, >#define _SC_SHELL _SC_SHELL > _SC_SIGNALS, >#define _SC_SIGNALS _SC_SIGNALS > _SC_SPAWN, >#define _SC_SPAWN _SC_SPAWN > _SC_SPORADIC_SERVER, >#define _SC_SPORADIC_SERVER _SC_SPORADIC_SERVER > _SC_THREAD_SPORADIC_SERVER, >#define _SC_THREAD_SPORADIC_SERVER _SC_THREAD_SPORADIC_SERVER > _SC_SYSTEM_DATABASE, >#define _SC_SYSTEM_DATABASE _SC_SYSTEM_DATABASE > _SC_SYSTEM_DATABASE_R, >#define _SC_SYSTEM_DATABASE_R _SC_SYSTEM_DATABASE_R > _SC_TIMEOUTS, >#define _SC_TIMEOUTS _SC_TIMEOUTS > _SC_TYPED_MEMORY_OBJECTS, >#define _SC_TYPED_MEMORY_OBJECTS _SC_TYPED_MEMORY_OBJECTS > _SC_USER_GROUPS, >#define _SC_USER_GROUPS _SC_USER_GROUPS > _SC_USER_GROUPS_R, >#define _SC_USER_GROUPS_R _SC_USER_GROUPS_R > _SC_2_PBS, >#define _SC_2_PBS _SC_2_PBS > _SC_2_PBS_ACCOUNTING, >#define _SC_2_PBS_ACCOUNTING _SC_2_PBS_ACCOUNTING > _SC_2_PBS_LOCATE, >#define _SC_2_PBS_LOCATE _SC_2_PBS_LOCATE > _SC_2_PBS_MESSAGE, >#define _SC_2_PBS_MESSAGE _SC_2_PBS_MESSAGE > _SC_2_PBS_TRACK, >#define _SC_2_PBS_TRACK _SC_2_PBS_TRACK > _SC_SYMLOOP_MAX, >#define _SC_SYMLOOP_MAX _SC_SYMLOOP_MAX > _SC_STREAMS, >#define _SC_STREAMS _SC_STREAMS > _SC_2_PBS_CHECKPOINT, >#define _SC_2_PBS_CHECKPOINT _SC_2_PBS_CHECKPOINT > > _SC_V6_ILP32_OFF32, >#define _SC_V6_ILP32_OFF32 _SC_V6_ILP32_OFF32 > _SC_V6_ILP32_OFFBIG, >#define _SC_V6_ILP32_OFFBIG _SC_V6_ILP32_OFFBIG > _SC_V6_LP64_OFF64, >#define _SC_V6_LP64_OFF64 _SC_V6_LP64_OFF64 > _SC_V6_LPBIG_OFFBIG, >#define _SC_V6_LPBIG_OFFBIG _SC_V6_LPBIG_OFFBIG > > _SC_HOST_NAME_MAX, >#define _SC_HOST_NAME_MAX _SC_HOST_NAME_MAX > _SC_TRACE, >#define _SC_TRACE _SC_TRACE > _SC_TRACE_EVENT_FILTER, >#define _SC_TRACE_EVENT_FILTER _SC_TRACE_EVENT_FILTER > _SC_TRACE_INHERIT, >#define _SC_TRACE_INHERIT _SC_TRACE_INHERIT > _SC_TRACE_LOG, >#define _SC_TRACE_LOG _SC_TRACE_LOG > > _SC_LEVEL1_ICACHE_SIZE, >#define _SC_LEVEL1_ICACHE_SIZE _SC_LEVEL1_ICACHE_SIZE > _SC_LEVEL1_ICACHE_ASSOC, >#define _SC_LEVEL1_ICACHE_ASSOC _SC_LEVEL1_ICACHE_ASSOC > _SC_LEVEL1_ICACHE_LINESIZE, >#define _SC_LEVEL1_ICACHE_LINESIZE _SC_LEVEL1_ICACHE_LINESIZE > _SC_LEVEL1_DCACHE_SIZE, >#define _SC_LEVEL1_DCACHE_SIZE _SC_LEVEL1_DCACHE_SIZE > _SC_LEVEL1_DCACHE_ASSOC, >#define _SC_LEVEL1_DCACHE_ASSOC _SC_LEVEL1_DCACHE_ASSOC > _SC_LEVEL1_DCACHE_LINESIZE, >#define _SC_LEVEL1_DCACHE_LINESIZE _SC_LEVEL1_DCACHE_LINESIZE > _SC_LEVEL2_CACHE_SIZE, >#define _SC_LEVEL2_CACHE_SIZE _SC_LEVEL2_CACHE_SIZE > _SC_LEVEL2_CACHE_ASSOC, >#define _SC_LEVEL2_CACHE_ASSOC _SC_LEVEL2_CACHE_ASSOC > _SC_LEVEL2_CACHE_LINESIZE, >#define _SC_LEVEL2_CACHE_LINESIZE _SC_LEVEL2_CACHE_LINESIZE > _SC_LEVEL3_CACHE_SIZE, >#define _SC_LEVEL3_CACHE_SIZE _SC_LEVEL3_CACHE_SIZE > _SC_LEVEL3_CACHE_ASSOC, >#define _SC_LEVEL3_CACHE_ASSOC _SC_LEVEL3_CACHE_ASSOC > _SC_LEVEL3_CACHE_LINESIZE, >#define _SC_LEVEL3_CACHE_LINESIZE _SC_LEVEL3_CACHE_LINESIZE > _SC_LEVEL4_CACHE_SIZE, >#define _SC_LEVEL4_CACHE_SIZE _SC_LEVEL4_CACHE_SIZE > _SC_LEVEL4_CACHE_ASSOC, >#define _SC_LEVEL4_CACHE_ASSOC _SC_LEVEL4_CACHE_ASSOC > _SC_LEVEL4_CACHE_LINESIZE, >#define _SC_LEVEL4_CACHE_LINESIZE _SC_LEVEL4_CACHE_LINESIZE > > > _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, >#define _SC_IPV6 _SC_IPV6 > _SC_RAW_SOCKETS >#define _SC_RAW_SOCKETS _SC_RAW_SOCKETS > }; > > >enum > { > _CS_PATH, >#define _CS_PATH _CS_PATH > > _CS_V6_WIDTH_RESTRICTED_ENVS, >#define _CS_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS > > _CS_GNU_LIBC_VERSION, >#define _CS_GNU_LIBC_VERSION _CS_GNU_LIBC_VERSION > _CS_GNU_LIBPTHREAD_VERSION, >#define _CS_GNU_LIBPTHREAD_VERSION _CS_GNU_LIBPTHREAD_VERSION > > _CS_LFS_CFLAGS = 1000, >#define _CS_LFS_CFLAGS _CS_LFS_CFLAGS > _CS_LFS_LDFLAGS, >#define _CS_LFS_LDFLAGS _CS_LFS_LDFLAGS > _CS_LFS_LIBS, >#define _CS_LFS_LIBS _CS_LFS_LIBS > _CS_LFS_LINTFLAGS, >#define _CS_LFS_LINTFLAGS _CS_LFS_LINTFLAGS > _CS_LFS64_CFLAGS, >#define _CS_LFS64_CFLAGS _CS_LFS64_CFLAGS > _CS_LFS64_LDFLAGS, >#define _CS_LFS64_LDFLAGS _CS_LFS64_LDFLAGS > _CS_LFS64_LIBS, >#define _CS_LFS64_LIBS _CS_LFS64_LIBS > _CS_LFS64_LINTFLAGS, >#define _CS_LFS64_LINTFLAGS _CS_LFS64_LINTFLAGS > > _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, >#define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS > _CS_XBS5_ILP32_OFF32_LDFLAGS, >#define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS > _CS_XBS5_ILP32_OFF32_LIBS, >#define _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS > _CS_XBS5_ILP32_OFF32_LINTFLAGS, >#define _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS > _CS_XBS5_ILP32_OFFBIG_CFLAGS, >#define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS > _CS_XBS5_ILP32_OFFBIG_LDFLAGS, >#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS > _CS_XBS5_ILP32_OFFBIG_LIBS, >#define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS > _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, >#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS > _CS_XBS5_LP64_OFF64_CFLAGS, >#define _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS > _CS_XBS5_LP64_OFF64_LDFLAGS, >#define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS > _CS_XBS5_LP64_OFF64_LIBS, >#define _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS > _CS_XBS5_LP64_OFF64_LINTFLAGS, >#define _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS > _CS_XBS5_LPBIG_OFFBIG_CFLAGS, >#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS > _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, >#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS > _CS_XBS5_LPBIG_OFFBIG_LIBS, >#define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS > _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, >#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS > > _CS_POSIX_V6_ILP32_OFF32_CFLAGS, >#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS > _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, >#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS > _CS_POSIX_V6_ILP32_OFF32_LIBS, >#define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS > _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, >#define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS > _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, >#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS > _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, >#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS > _CS_POSIX_V6_ILP32_OFFBIG_LIBS, >#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS > _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, >#define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS > _CS_POSIX_V6_LP64_OFF64_CFLAGS, >#define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS > _CS_POSIX_V6_LP64_OFF64_LDFLAGS, >#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS > _CS_POSIX_V6_LP64_OFF64_LIBS, >#define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS > _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, >#define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS > _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, >#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS > _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, >#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS > _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, >#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS > _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS >#define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS > }; ># 531 "/usr/include/unistd.h" 2 3 4 > > >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__)); ># 567 "/usr/include/unistd.h" 3 4 >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__)); ># 593 "/usr/include/unistd.h" 3 4 >extern int setpgrp (void) __attribute__ ((__nothrow__)); ># 610 "/usr/include/unistd.h" 3 4 >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 *__euid, __uid_t *__ruid, __uid_t *__suid); > > > >extern int getresgid (__gid_t *__egid, __gid_t *__rgid, __gid_t *__sgid); > > > >extern int setresuid (__uid_t __euid, __uid_t __ruid, __uid_t __suid); > > > >extern int setresgid (__gid_t __egid, __gid_t __rgid, __gid_t __sgid); > > > > > > >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 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 unlink (const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >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))); > > > > > > > >#define __need_getopt ># 791 "/usr/include/unistd.h" 3 4 >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))); ># 869 "/usr/include/unistd.h" 3 4 >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__)); ># 898 "/usr/include/unistd.h" 3 4 >extern int truncate (const char *__file, __off64_t __length) __asm__ ("" "truncate64") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int truncate64 (const char *__file, __off64_t __length) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 919 "/usr/include/unistd.h" 3 4 >extern int ftruncate (int __fd, __off64_t __length) __asm__ ("" "ftruncate64") __attribute__ ((__nothrow__)); > > > > > > >extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__)); ># 936 "/usr/include/unistd.h" 3 4 >extern int brk (void *__addr) __attribute__ ((__nothrow__)); > > > > > >extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__)); ># 957 "/usr/include/unistd.h" 3 4 >extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__)); ># 1000 "/usr/include/unistd.h" 3 4 >#define TEMP_FAILURE_RETRY(expression) (__extension__ ({ long int __result; do __result = (long int) (expression); while (__result == -1L && errno == EINTR); __result; })) ># 1011 "/usr/include/unistd.h" 3 4 >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__)) __attribute__ ((__nonnull__ (1))); > > > ># 36 "readelf.c" 2 ># 1 "/usr/include/sys/param.h" 1 3 4 ># 20 "/usr/include/sys/param.h" 3 4 >#define _SYS_PARAM_H 1 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 1 3 4 > > > > > > >#define _GCC_LIMITS_H_ > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/syslimits.h" 1 3 4 > > > > > >#define _GCC_NEXT_LIMITS_H ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 1 3 4 ># 122 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 3 4 ># 1 "/usr/include/limits.h" 1 3 4 ># 24 "/usr/include/limits.h" 3 4 >#define _LIBC_LIMITS_H_ 1 > > > > > > > >#define MB_LEN_MAX 16 ># 144 "/usr/include/limits.h" 3 4 ># 1 "/usr/include/bits/posix1_lim.h" 1 3 4 ># 26 "/usr/include/bits/posix1_lim.h" 3 4 >#define _BITS_POSIX1_LIM_H 1 > > > > > >#define _POSIX_AIO_LISTIO_MAX 2 > > >#define _POSIX_AIO_MAX 1 > > >#define _POSIX_ARG_MAX 4096 > > > >#define _POSIX_CHILD_MAX 25 > > > > > >#define _POSIX_DELAYTIMER_MAX 32 > > > >#define _POSIX_HOST_NAME_MAX 255 > > >#define _POSIX_LINK_MAX 8 > > >#define _POSIX_LOGIN_NAME_MAX 9 > > >#define _POSIX_MAX_CANON 255 > > > >#define _POSIX_MAX_INPUT 255 > > >#define _POSIX_MQ_OPEN_MAX 8 > > >#define _POSIX_MQ_PRIO_MAX 32 > > >#define _POSIX_NAME_MAX 14 > > > >#define _POSIX_NGROUPS_MAX 8 > > > > > > >#define _POSIX_OPEN_MAX 20 > > > > > > >#define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX > > >#define _POSIX_PATH_MAX 256 > > >#define _POSIX_PIPE_BUF 512 > > > >#define _POSIX_RE_DUP_MAX 255 > > >#define _POSIX_RTSIG_MAX 8 > > >#define _POSIX_SEM_NSEMS_MAX 256 > > >#define _POSIX_SEM_VALUE_MAX 32767 > > >#define _POSIX_SIGQUEUE_MAX 32 > > >#define _POSIX_SSIZE_MAX 32767 > > >#define _POSIX_STREAM_MAX 8 > > >#define _POSIX_SYMLINK_MAX 255 > > > >#define _POSIX_SYMLOOP_MAX 8 > > >#define _POSIX_TIMER_MAX 32 > > >#define _POSIX_TTY_NAME_MAX 9 > > >#define _POSIX_TZNAME_MAX 6 > > >#define _POSIX_QLIMIT 1 > > > >#define _POSIX_HIWAT _POSIX_PIPE_BUF > > >#define _POSIX_UIO_MAXIOV 16 > > >#define _POSIX_CLOCKRES_MIN 20000000 > > > ># 1 "/usr/include/bits/local_lim.h" 1 3 4 ># 26 "/usr/include/bits/local_lim.h" 3 4 >#define __undef_NR_OPEN > > >#define __undef_LINK_MAX > > >#define __undef_OPEN_MAX > > > ># 1 "/usr/include/linux/limits.h" 1 3 4 > >#define _LINUX_LIMITS_H > >#define NR_OPEN 1024 > >#define NGROUPS_MAX 65536 >#define ARG_MAX 131072 >#define CHILD_MAX 999 >#define OPEN_MAX 256 >#define LINK_MAX 127 >#define MAX_CANON 255 >#define MAX_INPUT 255 >#define NAME_MAX 255 >#define PATH_MAX 4096 >#define PIPE_BUF 4096 >#define XATTR_NAME_MAX 255 >#define XATTR_SIZE_MAX 65536 >#define XATTR_LIST_MAX 65536 > >#define RTSIG_MAX 32 ># 37 "/usr/include/bits/local_lim.h" 2 3 4 > > > >#undef NR_OPEN >#undef __undef_NR_OPEN > > > >#undef LINK_MAX >#undef __undef_LINK_MAX > > > >#undef OPEN_MAX >#undef __undef_OPEN_MAX > > > >#define _POSIX_THREAD_KEYS_MAX 128 > >#define PTHREAD_KEYS_MAX 1024 > > >#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 > >#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS > > >#define _POSIX_THREAD_THREADS_MAX 64 > > > > > >#define AIO_PRIO_DELTA_MAX 20 > > >#define PTHREAD_STACK_MIN 16384 > > >#define DELAYTIMER_MAX 2147483647 > > >#define TTY_NAME_MAX 32 > > >#define LOGIN_NAME_MAX 256 > > >#define HOST_NAME_MAX 64 > > >#define MQ_PRIO_MAX 32768 ># 154 "/usr/include/bits/posix1_lim.h" 2 3 4 > > > >#define SSIZE_MAX LONG_MAX ># 145 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/posix2_lim.h" 1 3 4 ># 24 "/usr/include/bits/posix2_lim.h" 3 4 >#define _BITS_POSIX2_LIM_H 1 > > > >#define _POSIX2_BC_BASE_MAX 99 > > >#define _POSIX2_BC_DIM_MAX 2048 > > >#define _POSIX2_BC_SCALE_MAX 99 > > >#define _POSIX2_BC_STRING_MAX 1000 > > > >#define _POSIX2_COLL_WEIGHTS_MAX 2 > > > >#define _POSIX2_EXPR_NEST_MAX 32 > > >#define _POSIX2_LINE_MAX 2048 > > > >#define _POSIX2_RE_DUP_MAX 255 > > > >#define _POSIX2_CHARCLASS_NAME_MAX 14 > > > > > > > >#define BC_BASE_MAX _POSIX2_BC_BASE_MAX > > >#define BC_DIM_MAX _POSIX2_BC_DIM_MAX > > >#define BC_SCALE_MAX _POSIX2_BC_SCALE_MAX > > >#define BC_STRING_MAX _POSIX2_BC_STRING_MAX > > >#define COLL_WEIGHTS_MAX 255 > > >#define EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX > > >#define LINE_MAX _POSIX2_LINE_MAX > > >#define CHARCLASS_NAME_MAX 2048 > > > >#define RE_DUP_MAX (0x7fff) ># 149 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/xopen_lim.h" 1 3 4 ># 31 "/usr/include/bits/xopen_lim.h" 3 4 >#define _XOPEN_LIM_H 1 > >#define __need_IOV_MAX ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 24 "/usr/include/bits/stdio_lim.h" 3 4 >#define L_tmpnam 20 >#define TMP_MAX 238328 >#define FILENAME_MAX 4096 > > >#define L_ctermid 9 >#define L_cuserid 9 > > > > >#undef FOPEN_MAX >#define FOPEN_MAX 16 > > > >#define IOV_MAX 1024 ># 35 "/usr/include/bits/xopen_lim.h" 2 3 4 ># 66 "/usr/include/bits/xopen_lim.h" 3 4 >#define _XOPEN_IOV_MAX _POSIX_UIO_MAXIOV > > > > >#define NL_ARGMAX _POSIX_ARG_MAX > > >#define NL_LANGMAX _POSIX2_LINE_MAX > > >#define NL_MSGMAX INT_MAX > > > >#define NL_NMAX INT_MAX > > >#define NL_SETMAX INT_MAX > > >#define NL_TEXTMAX INT_MAX > > >#define NZERO 20 ># 110 "/usr/include/bits/xopen_lim.h" 3 4 >#define WORD_BIT 32 ># 130 "/usr/include/bits/xopen_lim.h" 3 4 >#define LONG_BIT 32 ># 153 "/usr/include/limits.h" 2 3 4 ># 123 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 2 3 4 ># 8 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/syslimits.h" 2 3 4 >#undef _GCC_NEXT_LIMITS_H ># 12 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 2 3 4 > > >#define _LIMITS_H___ > > > >#define CHAR_BIT __CHAR_BIT__ ># 27 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 3 4 >#define SCHAR_MIN (-SCHAR_MAX - 1) > >#define SCHAR_MAX __SCHAR_MAX__ > > > > > > >#define UCHAR_MAX (SCHAR_MAX * 2 + 1) ># 51 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 3 4 >#define CHAR_MIN SCHAR_MIN > >#define CHAR_MAX SCHAR_MAX > > > > >#define SHRT_MIN (-SHRT_MAX - 1) > >#define SHRT_MAX __SHRT_MAX__ > > > > > > >#define USHRT_MAX (SHRT_MAX * 2 + 1) > > > > >#define INT_MIN (-INT_MAX - 1) > >#define INT_MAX __INT_MAX__ > > > >#define UINT_MAX (INT_MAX * 2U + 1U) > > > > >#define LONG_MIN (-LONG_MAX - 1L) > >#define LONG_MAX __LONG_MAX__ > > > >#define ULONG_MAX (LONG_MAX * 2UL + 1UL) > > > > >#define LLONG_MIN (-LLONG_MAX - 1LL) > >#define LLONG_MAX __LONG_LONG_MAX__ > > > >#define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) > > > > > >#define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL) > >#define LONG_LONG_MAX __LONG_LONG_MAX__ > > > >#define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL) ># 23 "/usr/include/sys/param.h" 2 3 4 > ># 1 "/usr/include/linux/param.h" 1 3 4 > >#define _LINUX_PARAM_H > ># 1 "/usr/include/asm/param.h" 1 3 4 > >#define _ASMi386_PARAM_H ># 11 "/usr/include/asm/param.h" 3 4 >#define HZ 100 > > > >#define USER_HZ 100 > > >#define EXEC_PAGESIZE 4096 > > >#define NOGROUP (-1) > > >#define MAXHOSTNAMELEN 64 >#define COMMAND_LINE_SIZE 256 ># 5 "/usr/include/linux/param.h" 2 3 4 ># 25 "/usr/include/sys/param.h" 2 3 4 > > > >#define NBBY CHAR_BIT > >#define NGROUPS NGROUPS_MAX > >#define MAXSYMLINKS 20 >#define CANBSIZ MAX_CANON >#define NCARGS ARG_MAX >#define MAXPATHLEN PATH_MAX > > > >#define NOFILE 256 > > > > > >#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY)) >#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) >#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY))) >#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) > > > >#define howmany(x,y) (((x) + ((y) - 1)) / (y)) > > >#define roundup(x,y) (__builtin_constant_p (y) && powerof2 (y) ? (((x) + (y) - 1) & ~((y) - 1)) : ((((x) + ((y) - 1)) / (y)) * (y))) > > > > > >#define powerof2(x) ((((x) - 1) & (x)) == 0) > > >#define MIN(a,b) (((a)<(b))?(a):(b)) >#define MAX(a,b) (((a)>(b))?(a):(b)) > > > >#define DEV_BSIZE 512 ># 37 "readelf.c" 2 > ># 1 "../lib/system.h" 1 ># 17 "../lib/system.h" >#define LIB_SYSTEM_H 1 > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 20 "../lib/system.h" 2 > > >extern void *xmalloc (size_t) __attribute__ ((__malloc__)); >extern void *xcalloc (size_t, size_t) __attribute__ ((__malloc__)); >extern void *xrealloc (void *, size_t) __attribute__ ((__malloc__)); > >extern char *xstrdup (const char *) __attribute__ ((__malloc__)); >extern char *xstrndup (const char *, size_t) __attribute__ ((__malloc__)); > > >extern uint32_t crc32 (uint32_t crc, unsigned char *buf, size_t len); >extern int crc32_file (int fd, uint32_t *resp); > > >#define sgettext(Str) ({ const char *__res = strrchr (gettext (Str), '|'); __res ? __res + 1 : Str; }) > > > >#define gettext_noop(Str) Str > > >#define pwrite_retry(fd,buf,len,off) TEMP_FAILURE_RETRY (pwrite (fd, buf, len, off)) > >#define write_retry(fd,buf,n) TEMP_FAILURE_RETRY (write (fd, buf, n)) > >#define pread_retry(fd,buf,len,off) TEMP_FAILURE_RETRY (pread (fd, buf, len, off)) ># 39 "readelf.c" 2 ># 1 "../libebl/libeblP.h" 1 ># 15 "../libebl/libeblP.h" >#define _LIBEBLP_H 1 > > ># 1 "../libebl/libebl.h" 1 ># 15 "../libebl/libebl.h" >#define _LIBEBL_H 1 > > > > ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 21 "../libebl/libebl.h" 2 > > ># 1 "../libelf/elf-knowledge.h" 1 ># 19 "../libelf/elf-knowledge.h" >#define _ELF_KNOWLEDGE_H 1 > > > > > >#define SECTION_STRIP_P(shdr,name,remove_comment) (((shdr)->sh_flags & SHF_ALLOC) == 0 && (shdr)->sh_type != SHT_NOTE && (((shdr)->sh_type) != SHT_PROGBITS || (strncmp (name, ".gnu.warning.", sizeof ".gnu.warning." - 1) != 0 && (remove_comment || strcmp (name, ".comment") != 0))) && (shdr)->sh_type < SHT_NUM) ># 50 "../libelf/elf-knowledge.h" >#define SH_INFO_LINK_P(Shdr) ((Shdr)->sh_type == SHT_REL || (Shdr)->sh_type == SHT_RELA || ((Shdr)->sh_flags & SHF_INFO_LINK) != 0) ># 65 "../libelf/elf-knowledge.h" >#define SH_FLAGS_COMBINE(Flags1,Flags2) (((Flags1 | Flags2) & (SHF_WRITE | SHF_ALLOC | SHF_EXECINSTR | SHF_LINK_ORDER | SHF_OS_NONCONFORMING | SHF_GROUP)) | (Flags1 & Flags2 & (SHF_MERGE | SHF_STRINGS | SHF_INFO_LINK))) ># 75 "../libelf/elf-knowledge.h" >#define SH_FLAGS_IMPORTANT(Flags) ((Flags) & ~((GElf_Xword) 0 | SHF_LINK_ORDER | SHF_OS_NONCONFORMING)) ># 89 "../libelf/elf-knowledge.h" >#define SH_ENTSIZE_HASH(Ehdr) ((Ehdr)->e_machine == EM_ALPHA || ((Ehdr)->e_machine == EM_S390 && (Ehdr)->e_ident[EI_CLASS] == ELFCLASS64) ? 8 : 4) ># 24 "../libebl/libebl.h" 2 > > > >typedef struct ebl Ebl; > > > >extern Ebl *ebl_openbackend (Elf *elf); > >extern Ebl *ebl_openbackend_machine (GElf_Half machine); > >extern Ebl *ebl_openbackend_emulation (const char *emulation); > > >extern void ebl_closebackend (Ebl *bh); > > > > > >extern int ebl_get_elfmachine (Ebl *ebl) __attribute__ ((__pure__)); > > >extern int ebl_get_elfclass (Ebl *ebl) __attribute__ ((__pure__)); > > >extern int ebl_get_elfdata (Ebl *ebl) __attribute__ ((__pure__)); > > > > > > >extern const char *ebl_backend_name (Ebl *ebl); > > >extern const char *ebl_object_type_name (Ebl *ebl, int object, > char *buf, size_t len); > > >extern const char *ebl_reloc_type_name (Ebl *ebl, int reloc, > char *buf, size_t len); > > >extern _Bool ebl_reloc_type_check (Ebl *ebl, int reloc); > > >extern _Bool ebl_reloc_valid_use (Ebl *ebl, int reloc); > > > >extern Elf_Type ebl_reloc_simple_type (Ebl *ebl, int reloc); > > > >extern _Bool ebl_gotpc_reloc_check (Ebl *ebl, int reloc); > > >extern const char *ebl_segment_type_name (Ebl *ebl, int segment, > char *buf, size_t len); > > >extern const char *ebl_section_type_name (Ebl *ebl, int section, > char *buf, size_t len); > > >extern const char *ebl_section_name (Ebl *ebl, int section, int xsection, > char *buf, size_t len, > const char *scnnames[], size_t shnum); > > >extern const char *ebl_machine_flag_name (Ebl *ebl, GElf_Word flags, > char *buf, size_t len); > > >extern _Bool ebl_machine_flag_check (Ebl *ebl, GElf_Word flags); > > >extern const char *ebl_symbol_type_name (Ebl *ebl, int symbol, > char *buf, size_t len); > > >extern const char *ebl_symbol_binding_name (Ebl *ebl, int binding, > char *buf, size_t len); > > >extern const char *ebl_dynamic_tag_name (Ebl *ebl, int64_t tag, > char *buf, size_t len); > > >extern _Bool ebl_dynamic_tag_check (Ebl *ebl, int64_t tag); > > > >extern _Bool ebl_check_special_symbol (Ebl *ebl, GElf_Ehdr *ehdr, > const GElf_Sym *sym, const char *name, > const GElf_Shdr *destshdr); > > >extern GElf_Word ebl_sh_flags_combine (Ebl *ebl, GElf_Word flags1, > GElf_Word flags2); > > >extern const char *ebl_osabi_name (Ebl *ebl, int osabi, char *buf, size_t len); > > > >extern const char *ebl_core_note_type_name (Ebl *ebl, uint32_t type, char *buf, > size_t len); > > >extern const char *ebl_object_note_type_name (Ebl *ebl, uint32_t type, > char *buf, size_t len); > > >extern void ebl_core_note (Ebl *ebl, const char *name, uint32_t type, > uint32_t descsz, const char *desc); > > >extern void ebl_object_note (Ebl *ebl, const char *name, uint32_t type, > uint32_t descsz, const char *desc); > > >extern _Bool ebl_debugscn_p (Ebl *ebl, const char *name); > > >extern _Bool ebl_copy_reloc_p (Ebl *ebl, int reloc); > > >extern _Bool ebl_section_strip_p (Ebl *ebl, const GElf_Ehdr *ehdr, > const GElf_Shdr *shdr, const char *name, > _Bool remove_comment, _Bool only_remove_debug); > > >extern _Bool ebl_bss_plt_p (Ebl *ebl, GElf_Ehdr *ehdr); ># 169 "../libebl/libebl.h" >extern int ebl_return_value_location (Ebl *ebl, > Dwarf_Die *functypedie, > const Dwarf_Op **locops); ># 183 "../libebl/libebl.h" >extern ssize_t ebl_register_name (Ebl *ebl, > int regno, char *name, size_t namelen, > const char **prefix, const char **setname); > > > >struct Ebl_Strtab; >struct Ebl_Strent; > > >extern struct Ebl_Strtab *ebl_strtabinit (_Bool nullstr); > > >extern void ebl_strtabfree (struct Ebl_Strtab *st); > > >extern struct Ebl_Strent *ebl_strtabadd (struct Ebl_Strtab *st, > const char *str, size_t len); > > > >extern void ebl_strtabfinalize (struct Ebl_Strtab *st, Elf_Data *data); > > >extern size_t ebl_strtaboffset (struct Ebl_Strent *se); > > >extern const char *ebl_string (struct Ebl_Strent *se); > > > >struct Ebl_WStrtab; >struct Ebl_WStrent; > > >extern struct Ebl_WStrtab *ebl_wstrtabinit (_Bool nullstr); > > >extern void ebl_wstrtabfree (struct Ebl_WStrtab *st); > > >extern struct Ebl_WStrent *ebl_wstrtabadd (struct Ebl_WStrtab *st, > const wchar_t *str, size_t len); > > > >extern void ebl_wstrtabfinalize (struct Ebl_WStrtab *st, Elf_Data *data); > > >extern size_t ebl_wstrtaboffset (struct Ebl_WStrent *se); > > > >struct Ebl_GStrtab; >struct Ebl_GStrent; > > >extern struct Ebl_GStrtab *ebl_gstrtabinit (unsigned int width, _Bool nullstr); > > >extern void ebl_gstrtabfree (struct Ebl_GStrtab *st); > > >extern struct Ebl_GStrent *ebl_gstrtabadd (struct Ebl_GStrtab *st, > const char *str, size_t len); > > > >extern void ebl_gstrtabfinalize (struct Ebl_GStrtab *st, Elf_Data *data); > > >extern size_t ebl_gstrtaboffset (struct Ebl_GStrent *se); ># 19 "../libebl/libeblP.h" 2 > > > > >struct ebl >{ > > const char *name; > > > const char *emulation; > > > uint_fast16_t machine; > uint_fast8_t class; > uint_fast8_t data; > > > Elf *elf; > > >#define EBLHOOK(name) (*name) ># 1 "../libebl/ebl-hooks.h" 1 ># 15 "../libebl/ebl-hooks.h" >const char *(*object_type_name) (int, char *, size_t); > > >const char *(*reloc_type_name) (int, char *, size_t); > > >_Bool (*reloc_type_check) (int); > > >Elf_Type (*reloc_simple_type) (Ebl *, int); > > >_Bool (*reloc_valid_use) (Elf *, int); > > >_Bool (*gotpc_reloc_check) (Elf *, int); > > >const char *(*segment_type_name) (int, char *, size_t); > > >const char *(*section_type_name) (int, char *, size_t); > > >const char *(*section_name) (int, int, char *, size_t); > > >const char *(*machine_flag_name) (GElf_Word *); > > >_Bool (*machine_flag_check) (GElf_Word); > > >const char *(*symbol_type_name) (int, char *, size_t); > > >const char *(*symbol_binding_name) (int, char *, size_t); > > >const char *(*dynamic_tag_name) (int64_t, char *, size_t); > > >_Bool (*dynamic_tag_check) (int64_t); > > >GElf_Word (*sh_flags_combine) (GElf_Word, GElf_Word); > > >const char *(*osabi_name) (int, char *, size_t); > > >const char *(*core_note_type_name) (uint32_t, char *, size_t); > > >const char *(*object_note_type_name) (uint32_t, char *, size_t); > > >_Bool (*core_note) (const char *, uint32_t, uint32_t, const char *); > > >_Bool (*object_note) (const char *, uint32_t, uint32_t, const char *); > > >_Bool (*debugscn_p) (const char *); > > >_Bool (*copy_reloc_p) (int); > > >_Bool (*check_special_symbol) (Elf *, GElf_Ehdr *, const GElf_Sym *, > const char *, const GElf_Shdr *); > > >_Bool (*bss_plt_p) (Elf *, GElf_Ehdr *); > > > >int (*return_value_location) (Dwarf_Die *functypedie, > const Dwarf_Op **locp); > > >ssize_t (*register_name) (Ebl *ebl, > int regno, char *name, size_t namelen, > const char **prefix, const char **setname); > > > >void (*destr) (struct ebl *); ># 42 "../libebl/libeblP.h" 2 >#undef EBLHOOK > > > void *dlhandle; >}; > > > >typedef const char *(*ebl_bhinit_t) (Elf *, GElf_Half, Ebl *, size_t); > > > >#define _(Str) dgettext ("elfutils", Str) ># 40 "readelf.c" 2 ># 1 "../libdw/libdwP.h" 1 ># 16 "../libdw/libdwP.h" >#define _LIBDWP_H 1 ># 25 "../libdw/libdwP.h" >#define _(Str) dgettext ("elfutils", Str) > > > >#define DWARF_VERSION 2 > > >#define CIE_VERSION 1 > > > >struct loc_s >{ > void *addr; > Dwarf_Op *loc; > size_t nloc; >}; > > >enum > { > IDX_debug_info = 0, > IDX_debug_abbrev, > IDX_debug_aranges, > IDX_debug_line, > IDX_debug_frame, > IDX_eh_frame, > IDX_debug_loc, > IDX_debug_pubnames, > IDX_debug_str, > IDX_debug_funcnames, > IDX_debug_typenames, > IDX_debug_varnames, > IDX_debug_weaknames, > IDX_debug_macinfo, > IDX_debug_ranges, > IDX_last > }; > > > >enum >{ > DWARF_E_NOERROR = 0, > DWARF_E_UNKNOWN_ERROR, > DWARF_E_INVALID_ACCESS, > DWARF_E_NO_REGFILE, > DWARF_E_IO_ERROR, > DWARF_E_INVALID_ELF, > DWARF_E_NO_DWARF, > DWARF_E_NOELF, > DWARF_E_GETEHDR_ERROR, > DWARF_E_NOMEM, > DWARF_E_UNIMPL, > DWARF_E_INVALID_CMD, > DWARF_E_INVALID_VERSION, > DWARF_E_INVALID_FILE, > DWARF_E_NO_ENTRY, > DWARF_E_INVALID_DWARF, > DWARF_E_NO_STRING, > DWARF_E_NO_ADDR, > DWARF_E_NO_CONSTANT, > DWARF_E_NO_REFERENCE, > DWARF_E_INVALID_REFERENCE, > DWARF_E_NO_DEBUG_LINE, > DWARF_E_INVALID_DEBUG_LINE, > DWARF_E_TOO_BIG, > DWARF_E_VERSION, > DWARF_E_INVALID_DIR_IDX, > DWARF_E_ADDR_OUTOFRANGE, > DWARF_E_NO_LOCLIST, > DWARF_E_NO_BLOCK, > DWARF_E_INVALID_LINE_IDX, > DWARF_E_INVALID_ARANGE_IDX, > DWARF_E_NO_MATCH, > DWARF_E_NO_FLAG, > DWARF_E_INVALID_OFFSET, > DWARF_E_NO_DEBUG_RANGES, >}; > > > >struct Dwarf >{ > > Elf *elf; > > > Elf_Data *sectiondata[IDX_last]; > > > _Bool other_byte_order; > > > _Bool free_elf; > > > > struct pubnames_s > { > Dwarf_Off cu_offset; > Dwarf_Off set_start; > unsigned int cu_header_size; > int address_len; > } *pubnames_sets; > size_t pubnames_nsets; > > > void *cu_tree; > Dwarf_Off next_cu_offset; > > > Dwarf_Aranges *aranges; > > > > > struct libdw_memblock > { > size_t size; > size_t remaining; > struct libdw_memblock *prev; > char mem[0]; > } *mem_tail; > > > size_t mem_default_size; > > > Dwarf_OOM oom_handler; >}; > > > >struct Dwarf_Abbrev >{ > unsigned int code; > unsigned int tag; > int has_children; > unsigned int attrcnt; > unsigned char *attrp; > Dwarf_Off offset; >}; > ># 1 "../libdw/dwarf_abbrev_hash.h" 1 ># 16 "../libdw/dwarf_abbrev_hash.h" >#define _DWARF_ABBREV_HASH_H 1 > >#define NAME Dwarf_Abbrev_Hash >#define TYPE Dwarf_Abbrev * >#define COMPARE(a,b) (0) > ># 1 "../lib/dynamicsizehash.h" 1 ># 14 "../lib/dynamicsizehash.h" ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/stddef.h" 1 3 4 ># 15 "../lib/dynamicsizehash.h" 2 ># 32 "../lib/dynamicsizehash.h" >#define FIRST(name) >#define NEXT(name) > > > > >extern size_t next_prime (size_t seed); > > > >#define _DYNHASHENTTYPE(name) typedef struct name ##_ent { unsigned long int hashval; TYPE data; NEXT (name) } name ##_ent > > > > > > >#define DYNHASHENTTYPE(name) _DYNHASHENTTYPE (name) >typedef struct Dwarf_Abbrev_Hash_ent { unsigned long int hashval; Dwarf_Abbrev * data; } Dwarf_Abbrev_Hash_ent; > > > >#define _DYNHASHTYPE(name) typedef struct { unsigned long int size; unsigned long int filled; name ##_ent *table; FIRST (name) } name > > > > > > > >#define DYNHASHTYPE(name) _DYNHASHTYPE (name) >typedef struct { unsigned long int size; unsigned long int filled; Dwarf_Abbrev_Hash_ent *table; } Dwarf_Abbrev_Hash; > > > >#define _FUNCTIONS(name) extern int name ##_init (name *htab, unsigned long int init_size); extern int name ##_free (name *htab); extern int name ##_insert (name *htab, unsigned long int hval, TYPE data); extern int name ##_overwrite (name *htab, unsigned long int hval, TYPE data); extern TYPE name ##_find (name *htab, unsigned long int hval, TYPE val); ># 82 "../lib/dynamicsizehash.h" >#define FUNCTIONS(name) _FUNCTIONS (name) >extern int Dwarf_Abbrev_Hash_init (Dwarf_Abbrev_Hash *htab, unsigned long int init_size); extern int Dwarf_Abbrev_Hash_free (Dwarf_Abbrev_Hash *htab); extern int Dwarf_Abbrev_Hash_insert (Dwarf_Abbrev_Hash *htab, unsigned long int hval, Dwarf_Abbrev * data); extern int Dwarf_Abbrev_Hash_overwrite (Dwarf_Abbrev_Hash *htab, unsigned long int hval, Dwarf_Abbrev * data); extern Dwarf_Abbrev * Dwarf_Abbrev_Hash_find (Dwarf_Abbrev_Hash *htab, unsigned long int hval, Dwarf_Abbrev * val); ># 95 "../lib/dynamicsizehash.h" >#undef DYNHASHENTTYPE >#undef DYNHASHTYPE >#undef FUNCTIONS >#undef _FUNCTIONS > > >#undef NAME >#undef TYPE > >#undef COMPARE >#undef FIRST >#undef NEXT ># 23 "../libdw/dwarf_abbrev_hash.h" 2 ># 170 "../libdw/libdwP.h" 2 > > > >struct Dwarf_Files_s > { > Dwarf *dbg; > unsigned int nfiles; > struct Dwarf_Fileinfo_s > { > char *name; > Dwarf_Word mtime; > Dwarf_Word length; > } info[0]; > }; >typedef struct Dwarf_Fileinfo_s Dwarf_Fileinfo; > > > >struct Dwarf_Lines_s > { > size_t nlines; > > struct Dwarf_Line_s > { > Dwarf_Addr addr; > unsigned int file; > int line; > unsigned short int column; > unsigned int is_stmt:1; > unsigned int basic_block:1; > unsigned int end_sequence:1; > unsigned int prologue_end:1; > unsigned int epilogue_begin:1; > > Dwarf_Files *files; > } info[0]; > }; > > > >struct Dwarf_Aranges_s >{ > Dwarf *dbg; > size_t naranges; > > struct Dwarf_Arange_s > { > Dwarf_Addr addr; > Dwarf_Word length; > Dwarf_Off offset; > } info[0]; >}; > > > >struct Dwarf_CU >{ > Dwarf *dbg; > Dwarf_Off start; > Dwarf_Off end; > uint8_t address_size; > uint8_t offset_size; > > > Dwarf_Abbrev_Hash abbrev_hash; > > size_t orig_abbrev_offset; > > size_t last_abbrev_offset; > > > Dwarf_Lines *lines; > > > Dwarf_Files *files; > > > void *locs; >}; > >#define CUDIE(fromcu) ((Dwarf_Die) { .cu = (fromcu), .addr = ((char *) (fromcu)->dbg->sectiondata[IDX_debug_info]->d_buf + (fromcu)->start + 3 * (fromcu)->offset_size - 4 + 3), }) ># 260 "../libdw/libdwP.h" >struct Dwarf_Macro_s >{ > unsigned int opcode; > Dwarf_Word param1; > union > { > Dwarf_Word u; > const char *s; > } param2; >}; > > > > ># 1 "../libdw/memory-access.h" 1 ># 16 "../libdw/memory-access.h" >#define _MEMORY_ACCESS_H 1 > ># 1 "/usr/include/byteswap.h" 1 3 4 ># 20 "/usr/include/byteswap.h" 3 4 >#define _BYTESWAP_H 1 > > ># 1 "/usr/include/bits/byteswap.h" 1 3 4 ># 25 "/usr/include/bits/byteswap.h" 3 4 >#define _BITS_BYTESWAP_H 1 > > >#define __bswap_constant_16(x) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) > > > > >#define __bswap_16(x) (__extension__ ({ register unsigned short int __v, __x = (x); if (__builtin_constant_p (__x)) __v = __bswap_constant_16 (__x); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) ># 59 "/usr/include/bits/byteswap.h" 3 4 >#define __bswap_constant_32(x) ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)) ># 69 "/usr/include/bits/byteswap.h" 3 4 >#define __bswap_32(x) (__extension__ ({ register unsigned int __v, __x = (x); if (__builtin_constant_p (__x)) __v = __bswap_constant_32 (__x); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) ># 108 "/usr/include/bits/byteswap.h" 3 4 >#define __bswap_constant_64(x) ((((x) & 0xff00000000000000ull) >> 56) | (((x) & 0x00ff000000000000ull) >> 40) | (((x) & 0x0000ff0000000000ull) >> 24) | (((x) & 0x000000ff00000000ull) >> 8) | (((x) & 0x00000000ff000000ull) << 8) | (((x) & 0x0000000000ff0000ull) << 24) | (((x) & 0x000000000000ff00ull) << 40) | (((x) & 0x00000000000000ffull) << 56)) ># 118 "/usr/include/bits/byteswap.h" 3 4 >#define __bswap_64(x) (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (x)) __r.__ll = __bswap_constant_64 (x); else { __w.__ll = (x); __r.__l[0] = __bswap_32 (__w.__l[1]); __r.__l[1] = __bswap_32 (__w.__l[0]); } __r.__ll; })) ># 24 "/usr/include/byteswap.h" 2 3 4 > > > > > > >#define bswap_16(x) __bswap_16 (x) > > >#define bswap_32(x) __bswap_32 (x) > > > >#define bswap_64(x) __bswap_64 (x) ># 19 "../libdw/memory-access.h" 2 ># 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/include/limits.h" 1 3 4 ># 20 "../libdw/memory-access.h" 2 > > > > > >#define get_uleb128_step(var,addr,nth,break) __b = *(addr)++; var |= (uintmax_t) (__b & 0x7f) << (nth * 7); if (likely ((__b & 0x80) == 0)) break > > > > > >#define get_uleb128(var,addr) do { unsigned char __b; var = 0; get_uleb128_step (var, addr, 0, break); var = __libdw_get_uleb128 (var, 1, &(addr)); } while (0) > > > > > > > >#define get_uleb128_rest_return(var,i,addrp) do { for (; i < 10; ++i) { get_uleb128_step (var, *addrp, i, return var); } return UINT64_MAX; } while (0) ># 52 "../libdw/memory-access.h" >#define get_sleb128_step(var,addr,nth,break) __b = *(addr)++; _v |= (uint64_t) (__b & 0x7f) << (nth * 7); if (likely ((__b & 0x80) == 0)) { var = (_v << (64 - (nth * 7) - 7) >> (64 - (nth * 7) - 7)); break; } else do {} while (0) ># 62 "../libdw/memory-access.h" >#define get_sleb128(var,addr) do { unsigned char __b; int64_t _v = 0; get_sleb128_step (var, addr, 0, break); var = __libdw_get_sleb128 (_v, 1, &(addr)); } while (0) > > > > > > > >#define get_sleb128_rest_return(var,i,addrp) do { for (; i < 9; ++i) { get_sleb128_step (var, *addrp, i, return var); } return INT64_MAX; } while (0) ># 89 "../libdw/memory-access.h" >static uint64_t >__attribute__ ((unused)) >__libdw_get_uleb128 (uint64_t acc, unsigned int i, const unsigned char **addrp) >{ > unsigned char __b; > do { for (; i < 10; ++i) { __b = *(*addrp)++; acc |= (uintmax_t) (__b & 0x7f) << (i * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) return acc; } return (18446744073709551615ULL); } while (0); >} >static int64_t >__attribute__ ((unused)) >__libdw_get_sleb128 (int64_t acc, unsigned int i, const unsigned char **addrp) >{ > unsigned char __b; > int64_t _v = acc; > do { for (; i < 9; ++i) { __b = *(*addrp)++; _v |= (uint64_t) (__b & 0x7f) << (i * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) { acc = (_v << (64 - (i * 7) - 7) >> (64 - (i * 7) - 7)); return acc; } else do {} while (0); } return (9223372036854775807LL); } while (0); >} > > > > > > > >#define read_2ubyte_unaligned(Dbg,Addr) (unlikely ((Dbg)->other_byte_order) ? bswap_16 (*((const uint16_t *) (Addr))) : *((const uint16_t *) (Addr))) > > > >#define read_2sbyte_unaligned(Dbg,Addr) (unlikely ((Dbg)->other_byte_order) ? (int16_t) bswap_16 (*((const int16_t *) (Addr))) : *((const int16_t *) (Addr))) > > > > >#define read_4ubyte_unaligned_noncvt(Addr) *((const uint32_t *) (Addr)) > >#define read_4ubyte_unaligned(Dbg,Addr) (unlikely ((Dbg)->other_byte_order) ? bswap_32 (*((const uint32_t *) (Addr))) : *((const uint32_t *) (Addr))) > > > >#define read_4sbyte_unaligned(Dbg,Addr) (unlikely ((Dbg)->other_byte_order) ? (int32_t) bswap_32 (*((const int32_t *) (Addr))) : *((const int32_t *) (Addr))) > > > > >#define read_8ubyte_unaligned(Dbg,Addr) (unlikely ((Dbg)->other_byte_order) ? bswap_64 (*((const uint64_t *) (Addr))) : *((const uint64_t *) (Addr))) > > > >#define read_8sbyte_unaligned(Dbg,Addr) (unlikely ((Dbg)->other_byte_order) ? (int64_t) bswap_64 (*((const int64_t *) (Addr))) : *((const int64_t *) (Addr))) ># 213 "../libdw/memory-access.h" >#define read_2ubyte_unaligned_inc(Dbg,Addr) ({ uint16_t t_ = read_2ubyte_unaligned (Dbg, Addr); Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 2); t_; }) > > > >#define read_2sbyte_unaligned_inc(Dbg,Addr) ({ int16_t t_ = read_2sbyte_unaligned (Dbg, Addr); Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 2); t_; }) > > > > >#define read_4ubyte_unaligned_inc(Dbg,Addr) ({ uint32_t t_ = read_4ubyte_unaligned (Dbg, Addr); Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 4); t_; }) > > > >#define read_4sbyte_unaligned_inc(Dbg,Addr) ({ int32_t t_ = read_4sbyte_unaligned (Dbg, Addr); Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 4); t_; }) > > > > >#define read_8ubyte_unaligned_inc(Dbg,Addr) ({ uint64_t t_ = read_8ubyte_unaligned (Dbg, Addr); Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 8); t_; }) > > > >#define read_8sbyte_unaligned_inc(Dbg,Addr) ({ int64_t t_ = read_8sbyte_unaligned (Dbg, Addr); Addr = (__typeof (Addr)) (((uintptr_t) (Addr)) + 8); t_; }) ># 275 "../libdw/libdwP.h" 2 > > > >extern void __libdw_seterrno (int value) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("internal"))); > > > >#define libdw_alloc(dbg,type,tsize,cnt) ({ struct libdw_memblock *_tail = (dbg)->mem_tail; size_t _required = (tsize) * (cnt); type *_result = (type *) (_tail->mem + (_tail->size - _tail->remaining)); size_t _padding = ((__alignof (type) - ((uintptr_t) _result & (__alignof (type) - 1))) & (__alignof (type) - 1)); if (unlikely (_tail->remaining < _required + _padding)) { _result = (type *) __libdw_allocate (dbg, _required); _tail = (dbg)->mem_tail; } else { _required += _padding; _result = (type *) ((char *) _result + _padding); } _tail->remaining -= _required; _result; }) ># 302 "../libdw/libdwP.h" >#define libdw_typed_alloc(dbg,type) libdw_alloc (dbg, type, sizeof (type), 1) > > > >extern void *__libdw_allocate (Dwarf *dbg, size_t minsize) > __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); > > >extern void __libdw_oom (void) __attribute ((noreturn, visibility ("hidden"))); > > >extern struct Dwarf_CU *__libdw_findcu (Dwarf *dbg, Dwarf_Off offset) > __attribute__ ((__nonnull__ (1))) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("internal"))); > > >extern Dwarf_Abbrev *__libdw_findabbrev (struct Dwarf_CU *cu, > unsigned int code) > __attribute__ ((__nonnull__ (1))) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("internal"))); > > >extern Dwarf_Abbrev *__libdw_getabbrev (Dwarf *dbg, struct Dwarf_CU *cu, > Dwarf_Off offset, size_t *lengthp, > Dwarf_Abbrev *result) > __attribute__ ((__nonnull__ (1))) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("internal"))); > > >extern size_t __libdw_form_val_len (Dwarf *dbg, struct Dwarf_CU *cu, > unsigned int form, > const unsigned char *valp) > __attribute__ ((__nonnull__ (1, 2, 4))) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("internal"))); > > >extern unsigned char *__libdw_find_attr (Dwarf_Die *die, > unsigned int search_name, > unsigned int *codep, > unsigned int *formp) > __attribute__ ((__nonnull__ (1))) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("internal"))); > > >extern int __libdw_attr_intval (Dwarf_Die *die, int *valp, int attval) > __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("internal"))); > > >struct Dwarf_Die_Chain >{ > Dwarf_Die die; > struct Dwarf_Die_Chain *parent; > _Bool prune; >}; >extern int __libdw_visit_scopes (unsigned int depth, > struct Dwarf_Die_Chain *root, > int (*previsit) (unsigned int depth, > struct Dwarf_Die_Chain *, > void *arg), > int (*postvisit) (unsigned int depth, > struct Dwarf_Die_Chain *, > void *arg), > void *arg) > __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((regparm (3), stdcall)) __attribute__ ((visibility ("internal"))); > > > >extern int __dwarf_errno_internal (void); > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ># 41 "readelf.c" 2 > > > > >static void print_version (FILE *stream, struct argp_state *state); >void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; > > >const char *argp_program_bug_address = "http://bugzilla.redhat.com/bugzilla/"; > > >static const struct argp_option options[] = >{ > { ((void *)0), 0, ((void *)0), 0, "Output selection:", 0 }, > { "all", 'a', ((void *)0), 0, "Equivalent to: -h -l", 0 }, > { "dynamic", 'd', ((void *)0), 0, "Display the dynamic segment", 0 }, > { "file-header", 'h', ((void *)0), 0, "Display the ELF file header", 0 }, > { "histogram", 'I', ((void *)0), 0, > "Display histogram of bucket list lengths", 0 }, > { "program-headers", 'l', ((void *)0), 0, "Display the program headers", 0 }, > { "relocs", 'r', ((void *)0), 0, "Display relocations", 0 }, > { "section-headers", 'S', ((void *)0), 0, "Display the sections' header", 0 }, > { "symbols", 's', ((void *)0), 0, "Display the symbol table", 0 }, > { "version-info", 'V', ((void *)0), 0, "Display versioning information", 0 }, > { "debug-dump", 'w', "SECTION", 0x1, > "Display DWARF section content. SECTION can be one of abbrev, " "aranges, frame, info, loc, line, ranges, pubnames, str, or macinfo.", > > 0 }, > { "notes", 'n', ((void *)0), 0, "Display the core notes", 0 }, > { "arch-specific", 'A', ((void *)0), 0, > "Display architecture specific information (if any)", 0 }, > > { ((void *)0), 0, ((void *)0), 0, "Output control:", 0 }, > > { ((void *)0), 0, ((void *)0), 0, ((void *)0), 0 } >}; > > >static const char doc[] = "Print information from ELF file in human-readable form."; > > > >static const char args_doc[] = "FILE..."; > > >static error_t parse_opt (int key, char *arg, struct argp_state *state); > > >static struct argp argp = >{ > options, parse_opt, args_doc, doc, ((void *)0), ((void *)0), ((void *)0) >}; > > > > > >static _Bool print_dynamic_table; > > >static _Bool print_file_header; > > >static _Bool print_program_header; > > >static _Bool print_relocations; > > >static _Bool print_section_header; > > >static _Bool print_symbol_table; > > >static _Bool print_version_info; > > >static _Bool print_section_groups; > > >static _Bool print_histogram; > > >static _Bool print_arch; > > >static _Bool print_notes; > > >static enum section_e >{ > section_abbrev = 1, > section_aranges = 2, > section_frame = 4, > section_info = 8, > section_line = 16, > section_loc = 32, > section_pubnames = 64, > section_str = 128, > section_macinfo = 256, > section_ranges = 512, > section_all = (section_abbrev | section_aranges | section_frame > | section_info | section_line | section_loc > | section_pubnames | section_str | section_macinfo > | section_ranges) >} print_debug_sections; > > >static size_t shnum; > > > >static void process_file (int fd, Elf *elf, const char *prefix, > const char *fname, _Bool only_one); >static void process_elf_file (Elf *elf, const char *prefix, const char *fname, > _Bool only_one); >static void print_ehdr (Ebl *ebl, GElf_Ehdr *ehdr); >static void print_shdr (Ebl *ebl, GElf_Ehdr *ehdr); >static void print_phdr (Ebl *ebl, GElf_Ehdr *ehdr); >static void print_scngrp (Ebl *ebl); >static void print_dynamic (Ebl *ebl, GElf_Ehdr *ehdr); >static void print_relocs (Ebl *ebl); >static void handle_relocs_rel (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr); >static void handle_relocs_rela (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr); >static void print_symtab (Ebl *ebl, int type); >static void handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr); >static void print_verinfo (Ebl *ebl); >static void handle_verneed (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr); >static void handle_verdef (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr); >static void handle_versym (Ebl *ebl, Elf_Scn *scn, > GElf_Shdr *shdr); >static void print_debug (Ebl *ebl, GElf_Ehdr *ehdr); >static void handle_hash (Ebl *ebl); >static void handle_notes (Ebl *ebl, GElf_Ehdr *ehdr); >static void print_liblist (Ebl *ebl); > > >int >main (int argc, char *argv[]) >{ > > setlocale (__LC_ALL, ""); > > > textdomain ("elfutils"); > > > int remaining; > argp_parse (&argp, argc, argv, 0, &remaining, ((void *)0)); > > > elf_version (1); > > > _Bool only_one = remaining + 1 == argc; > do > { > > int fd = open (argv[remaining], 00); > if (fd == -1) > { > error (0, (*__errno_location ()), dcgettext (((void *)0), "cannot open input file", __LC_MESSAGES)); > continue; > } > > > Elf *elf = elf_begin (fd, ELF_C_READ_MMAP, ((void *)0)); > if (elf == ((void *)0)) > error (0, 0, dcgettext (((void *)0), "cannot generate Elf descriptor: %s\n", __LC_MESSAGES), > elf_errmsg (-1)); > else > { > process_file (fd, elf, ((void *)0), argv[remaining], only_one); > > > if (elf_end (elf) != 0) > error (0, 0, dcgettext (((void *)0), "error while closing Elf descriptor: %s", __LC_MESSAGES), > elf_errmsg (-1)); > } > > close (fd); > } > while (++remaining < argc); > > return error_message_count != 0; >} > > > >static error_t >parse_opt (int key, char *arg, > struct argp_state *state __attribute__ ((unused))) >{ > > static _Bool any_control_option; > > switch (key) > { > case 'a': > print_file_header = 1; > print_program_header = 1; > print_relocations = 1; > print_section_header = 1; > print_symbol_table = 1; > print_version_info = 1; > print_dynamic_table = 1; > print_section_groups = 1; > print_histogram = 1; > print_arch = 1; > print_notes = 1; > any_control_option = 1; > break; > case 'A': > print_arch = 1; > any_control_option = 1; > break; > case 'd': > print_dynamic_table = 1; > any_control_option = 1; > break; > case 'g': > print_section_groups = 1; > any_control_option = 1; > break; > case 'h': > print_file_header = 1; > any_control_option = 1; > break; > case 'I': > print_histogram = 1; > any_control_option = 1; > break; > case 'l': > print_program_header = 1; > any_control_option = 1; > break; > case 'n': > print_notes = 1; > any_control_option = 1; > break; > case 'r': > print_relocations = 1; > any_control_option = 1; > break; > case 'S': > print_section_header = 1; > any_control_option = 1; > break; > case 's': > print_symbol_table = 1; > any_control_option = 1; > break; > case 'V': > print_version_info = 1; > any_control_option = 1; > break; > case 'w': > if (arg == ((void *)0)) > print_debug_sections = section_all; > else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (arg) && __builtin_constant_p ("abbrev") && (__s1_len = strlen (arg), __s2_len = strlen ("abbrev"), (!((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("abbrev") + 1) - (size_t)(const void *)("abbrev") == 1) || __s2_len >= 4)) ? __builtin_strcmp (arg, "abbrev") : (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) && (__s1_len = strlen (arg), __s1_len < 4) ? (__builtin_constant_p ("abbrev") && ((size_t)(const void *)(("abbrev") + 1) - (size_t)(const void *)("abbrev") == 1) ? __builtin_strcmp (arg, "abbrev") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("abbrev"); register int __result = (((const unsigned char *) (const char *) (arg))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arg))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("abbrev") && ((size_t)(const void *)(("abbrev") + 1) - (size_t)(const void *)("abbrev") == 1) && (__s2_len = strlen ("abbrev"), __s2_len < 4) ? (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) ? __builtin_strcmp (arg, "abbrev") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (arg); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("abbrev"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("abbrev"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("abbrev"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("abbrev"))[3]); } } __result; }))) : __builtin_strcmp (arg, "abbrev")))); }) == 0) > print_debug_sections |= section_abbrev; > else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (arg) && __builtin_constant_p ("aranges") && (__s1_len = strlen (arg), __s2_len = strlen ("aranges"), (!((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("aranges") + 1) - (size_t)(const void *)("aranges") == 1) || __s2_len >= 4)) ? __builtin_strcmp (arg, "aranges") : (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) && (__s1_len = strlen (arg), __s1_len < 4) ? (__builtin_constant_p ("aranges") && ((size_t)(const void *)(("aranges") + 1) - (size_t)(const void *)("aranges") == 1) ? __builtin_strcmp (arg, "aranges") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("aranges"); register int __result = (((const unsigned char *) (const char *) (arg))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arg))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("aranges") && ((size_t)(const void *)(("aranges") + 1) - (size_t)(const void *)("aranges") == 1) && (__s2_len = strlen ("aranges"), __s2_len < 4) ? (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) ? __builtin_strcmp (arg, "aranges") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (arg); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("aranges"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("aranges"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("aranges"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("aranges"))[3]); } } __result; }))) : __builtin_strcmp (arg, "aranges")))); }) == 0) > print_debug_sections |= section_aranges; > else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (arg) && __builtin_constant_p ("ranges") && (__s1_len = strlen (arg), __s2_len = strlen ("ranges"), (!((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("ranges") + 1) - (size_t)(const void *)("ranges") == 1) || __s2_len >= 4)) ? __builtin_strcmp (arg, "ranges") : (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) && (__s1_len = strlen (arg), __s1_len < 4) ? (__builtin_constant_p ("ranges") && ((size_t)(const void *)(("ranges") + 1) - (size_t)(const void *)("ranges") == 1) ? __builtin_strcmp (arg, "ranges") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("ranges"); register int __result = (((const unsigned char *) (const char *) (arg))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arg))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("ranges") && ((size_t)(const void *)(("ranges") + 1) - (size_t)(const void *)("ranges") == 1) && (__s2_len = strlen ("ranges"), __s2_len < 4) ? (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) ? __builtin_strcmp (arg, "ranges") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (arg); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("ranges"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("ranges"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("ranges"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("ranges"))[3]); } } __result; }))) : __builtin_strcmp (arg, "ranges")))); }) == 0) > print_debug_sections |= section_ranges; > else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (arg) && __builtin_constant_p ("frame") && (__s1_len = strlen (arg), __s2_len = strlen ("frame"), (!((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("frame") + 1) - (size_t)(const void *)("frame") == 1) || __s2_len >= 4)) ? __builtin_strcmp (arg, "frame") : (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) && (__s1_len = strlen (arg), __s1_len < 4) ? (__builtin_constant_p ("frame") && ((size_t)(const void *)(("frame") + 1) - (size_t)(const void *)("frame") == 1) ? __builtin_strcmp (arg, "frame") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("frame"); register int __result = (((const unsigned char *) (const char *) (arg))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arg))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("frame") && ((size_t)(const void *)(("frame") + 1) - (size_t)(const void *)("frame") == 1) && (__s2_len = strlen ("frame"), __s2_len < 4) ? (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) ? __builtin_strcmp (arg, "frame") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (arg); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("frame"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("frame"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("frame"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("frame"))[3]); } } __result; }))) : __builtin_strcmp (arg, "frame")))); }) == 0) > print_debug_sections |= section_frame; > else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (arg) && __builtin_constant_p ("info") && (__s1_len = strlen (arg), __s2_len = strlen ("info"), (!((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("info") + 1) - (size_t)(const void *)("info") == 1) || __s2_len >= 4)) ? __builtin_strcmp (arg, "info") : (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) && (__s1_len = strlen (arg), __s1_len < 4) ? (__builtin_constant_p ("info") && ((size_t)(const void *)(("info") + 1) - (size_t)(const void *)("info") == 1) ? __builtin_strcmp (arg, "info") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("info"); register int __result = (((const unsigned char *) (const char *) (arg))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arg))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("info") && ((size_t)(const void *)(("info") + 1) - (size_t)(const void *)("info") == 1) && (__s2_len = strlen ("info"), __s2_len < 4) ? (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) ? __builtin_strcmp (arg, "info") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (arg); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("info"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("info"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("info"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("info"))[3]); } } __result; }))) : __builtin_strcmp (arg, "info")))); }) == 0) > print_debug_sections |= section_info; > else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (arg) && __builtin_constant_p ("loc") && (__s1_len = strlen (arg), __s2_len = strlen ("loc"), (!((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("loc") + 1) - (size_t)(const void *)("loc") == 1) || __s2_len >= 4)) ? __builtin_strcmp (arg, "loc") : (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) && (__s1_len = strlen (arg), __s1_len < 4) ? (__builtin_constant_p ("loc") && ((size_t)(const void *)(("loc") + 1) - (size_t)(const void *)("loc") == 1) ? __builtin_strcmp (arg, "loc") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("loc"); register int __result = (((const unsigned char *) (const char *) (arg))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arg))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("loc") && ((size_t)(const void *)(("loc") + 1) - (size_t)(const void *)("loc") == 1) && (__s2_len = strlen ("loc"), __s2_len < 4) ? (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) ? __builtin_strcmp (arg, "loc") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (arg); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("loc"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("loc"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("loc"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("loc"))[3]); } } __result; }))) : __builtin_strcmp (arg, "loc")))); }) == 0) > print_debug_sections |= section_loc; > else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (arg) && __builtin_constant_p ("line") && (__s1_len = strlen (arg), __s2_len = strlen ("line"), (!((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("line") + 1) - (size_t)(const void *)("line") == 1) || __s2_len >= 4)) ? __builtin_strcmp (arg, "line") : (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) && (__s1_len = strlen (arg), __s1_len < 4) ? (__builtin_constant_p ("line") && ((size_t)(const void *)(("line") + 1) - (size_t)(const void *)("line") == 1) ? __builtin_strcmp (arg, "line") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("line"); register int __result = (((const unsigned char *) (const char *) (arg))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arg))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("line") && ((size_t)(const void *)(("line") + 1) - (size_t)(const void *)("line") == 1) && (__s2_len = strlen ("line"), __s2_len < 4) ? (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) ? __builtin_strcmp (arg, "line") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (arg); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("line"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("line"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("line"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("line"))[3]); } } __result; }))) : __builtin_strcmp (arg, "line")))); }) == 0) > print_debug_sections |= section_line; > else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (arg) && __builtin_constant_p ("pubnames") && (__s1_len = strlen (arg), __s2_len = strlen ("pubnames"), (!((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("pubnames") + 1) - (size_t)(const void *)("pubnames") == 1) || __s2_len >= 4)) ? __builtin_strcmp (arg, "pubnames") : (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) && (__s1_len = strlen (arg), __s1_len < 4) ? (__builtin_constant_p ("pubnames") && ((size_t)(const void *)(("pubnames") + 1) - (size_t)(const void *)("pubnames") == 1) ? __builtin_strcmp (arg, "pubnames") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("pubnames"); register int __result = (((const unsigned char *) (const char *) (arg))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arg))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("pubnames") && ((size_t)(const void *)(("pubnames") + 1) - (size_t)(const void *)("pubnames") == 1) && (__s2_len = strlen ("pubnames"), __s2_len < 4) ? (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) ? __builtin_strcmp (arg, "pubnames") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (arg); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("pubnames"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("pubnames"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("pubnames"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("pubnames"))[3]); } } __result; }))) : __builtin_strcmp (arg, "pubnames")))); }) == 0) > print_debug_sections |= section_pubnames; > else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (arg) && __builtin_constant_p ("str") && (__s1_len = strlen (arg), __s2_len = strlen ("str"), (!((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("str") + 1) - (size_t)(const void *)("str") == 1) || __s2_len >= 4)) ? __builtin_strcmp (arg, "str") : (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) && (__s1_len = strlen (arg), __s1_len < 4) ? (__builtin_constant_p ("str") && ((size_t)(const void *)(("str") + 1) - (size_t)(const void *)("str") == 1) ? __builtin_strcmp (arg, "str") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("str"); register int __result = (((const unsigned char *) (const char *) (arg))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arg))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("str") && ((size_t)(const void *)(("str") + 1) - (size_t)(const void *)("str") == 1) && (__s2_len = strlen ("str"), __s2_len < 4) ? (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) ? __builtin_strcmp (arg, "str") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (arg); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("str"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("str"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("str"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("str"))[3]); } } __result; }))) : __builtin_strcmp (arg, "str")))); }) == 0) > print_debug_sections |= section_str; > else if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (arg) && __builtin_constant_p ("macinfo") && (__s1_len = strlen (arg), __s2_len = strlen ("macinfo"), (!((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("macinfo") + 1) - (size_t)(const void *)("macinfo") == 1) || __s2_len >= 4)) ? __builtin_strcmp (arg, "macinfo") : (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) && (__s1_len = strlen (arg), __s1_len < 4) ? (__builtin_constant_p ("macinfo") && ((size_t)(const void *)(("macinfo") + 1) - (size_t)(const void *)("macinfo") == 1) ? __builtin_strcmp (arg, "macinfo") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("macinfo"); register int __result = (((const unsigned char *) (const char *) (arg))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arg))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arg))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("macinfo") && ((size_t)(const void *)(("macinfo") + 1) - (size_t)(const void *)("macinfo") == 1) && (__s2_len = strlen ("macinfo"), __s2_len < 4) ? (__builtin_constant_p (arg) && ((size_t)(const void *)((arg) + 1) - (size_t)(const void *)(arg) == 1) ? __builtin_strcmp (arg, "macinfo") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (arg); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("macinfo"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("macinfo"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("macinfo"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("macinfo"))[3]); } } __result; }))) : __builtin_strcmp (arg, "macinfo")))); }) == 0) > print_debug_sections |= section_macinfo; > else > { > fprintf (stderr, dcgettext (((void *)0), "Unknown DWARF debug section `%s'.\n", __LC_MESSAGES), > arg); > argp_help (&argp, stderr, 0x04, > program_invocation_short_name); > exit (1); > } > any_control_option = 1; > break; > case 0x1000002: > fputs (dcgettext (((void *)0), "Missing file name.\n", __LC_MESSAGES), stderr); > goto do_argp_help; > case 0x1000007: > if (! any_control_option) > { > fputs (dcgettext (((void *)0), "No operation specified.\n", __LC_MESSAGES), stderr); > do_argp_help: > argp_help (&argp, stderr, 0x04 | 0x100, > program_invocation_short_name); > exit (1); > } > break; > default: > return 7; > } > return 0; >} > > > >static void >print_version (FILE *stream, struct argp_state *state __attribute__ ((unused))) >{ > fprintf (stream, "readelf (%s) %s\n", "Red Hat elfutils", "0.118"); > fprintf (stream, dcgettext (((void *)0), "Copyright (C) %s Red Hat, Inc.\nThis is free software; see the source for copying conditions. There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", __LC_MESSAGES), "2005"); > > > > > fprintf (stream, dcgettext (((void *)0), "Written by %s.\n", __LC_MESSAGES), "Ulrich Drepper"); >} > > > >static void >process_file (int fd, Elf *elf, const char *prefix, const char *fname, > _Bool only_one) >{ > > Elf_Kind kind = elf_kind (elf); > struct stat64 st; > > switch (kind) > { > case ELF_K_ELF: > > process_elf_file (elf, prefix, fname, only_one); > break; > > case ELF_K_AR: > { > size_t prefix_len = prefix == ((void *)0) ? 0 : strlen (prefix); > size_t fname_len = strlen (fname) + 1; > char new_prefix[prefix_len + 1 + fname_len]; > char *cp = new_prefix; > > > if (prefix != ((void *)0)) > { > cp = (__extension__ (__builtin_constant_p (prefix) && __builtin_constant_p (prefix_len) && ((size_t)(const void *)((prefix) + 1) - (size_t)(const void *)(prefix) == 1) && prefix_len <= 8 ? __builtin_memcpy (cp, prefix, prefix_len) + (prefix_len) : __mempcpy (cp, prefix, prefix_len))); > *cp++ = ':'; > } > memcpy (cp, fname, fname_len); > > > Elf *subelf; > Elf_Cmd cmd = ELF_C_READ_MMAP; > while ((subelf = elf_begin (fd, cmd, elf)) != ((void *)0)) > { > kind = elf_kind (subelf); > > > if (kind == ELF_K_ELF || kind == ELF_K_AR) > { > Elf_Arhdr *arhdr = elf_getarhdr (subelf); > ((void) ((arhdr != ((void *)0)) ? 0 : (__assert_fail ("arhdr != ((void *)0)", "readelf.c", 407, __PRETTY_FUNCTION__), 0))); > > process_file (fd, subelf, new_prefix, arhdr->ar_name, 0); > } > > > cmd = elf_next (subelf); > if (elf_end (subelf) != 0) > error (0, 0, > dcgettext (((void *)0), " error while freeing sub-ELF descriptor: %s\n", __LC_MESSAGES), > elf_errmsg (-1)); > } > } > break; > > default: > if (fstat64 (fd, &st) != 0) > error (0, (*__errno_location ()), dcgettext (((void *)0), "cannot stat input file", __LC_MESSAGES)); > else if (st.st_size == 0) > error (0, 0, dcgettext (((void *)0), "input file is empty", __LC_MESSAGES)); > else > > error (0, 0, dcgettext (((void *)0), "Not an ELF file - it has the wrong magic bytes at the start", __LC_MESSAGES)); > > break; > } >} > > > >static void >process_elf_file (Elf *elf, const char *prefix, const char *fname, > _Bool only_one) >{ > GElf_Ehdr ehdr_mem; > GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); > > > if (!only_one) > { > if (prefix != ((void *)0)) > printf ("\n%s(%s):\n\n", prefix, fname); > else > printf ("\n%s:\n\n", fname); > } > > if (ehdr == ((void *)0)) > { > error (0, 0, dcgettext (((void *)0), "cannot read ELF header: %s", __LC_MESSAGES), elf_errmsg (-1)); > return; > } > > Ebl *ebl = ebl_openbackend (elf); > if (ebl == ((void *)0)) > { > error (0, (*__errno_location ()), dcgettext (((void *)0), "cannot create EBL handle", __LC_MESSAGES)); > return; > } > > > if (elf_getshnum (ebl->elf, &shnum) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot determine number of sections: %s", __LC_MESSAGES), > elf_errmsg (-1)); > > if (print_file_header) > print_ehdr (ebl, ehdr); > if (print_section_header) > print_shdr (ebl, ehdr); > if (print_program_header) > print_phdr (ebl, ehdr); > if (print_section_groups) > print_scngrp (ebl); > if (print_dynamic_table) > print_dynamic (ebl, ehdr); > if (print_relocations) > print_relocs (ebl); > if (print_histogram) > handle_hash (ebl); > if (print_symbol_table) > print_symtab (ebl, 11); > if (print_version_info) > print_verinfo (ebl); > if (print_symbol_table) > print_symtab (ebl, 2); > if (print_arch) > print_liblist (ebl); > if (print_debug_sections != 0) > print_debug (ebl, ehdr); > if (print_notes) > handle_notes (ebl, ehdr); > > ebl_closebackend (ebl); >} > > > >static void >print_file_type (unsigned short int e_type) >{ > if (e_type <= 4) > { > static const char *knowntypes[] = > { > "NONE (None)", > "REL (Relocatable file)", > "EXEC (Executable file)", > "DYN (Shared object file)", > "CORE (Core file)" > }; > puts (dcgettext (((void *)0), knowntypes[e_type], __LC_MESSAGES)); > } > else if (e_type >= 0xfe00 && e_type <= 0xfeff) > printf (dcgettext (((void *)0), "OS Specific: (%x)\n", __LC_MESSAGES), e_type); > else if (e_type >= 0xff00 ) > printf (dcgettext (((void *)0), "Processor Specific: (%x)\n", __LC_MESSAGES), e_type); > else > puts ("???"); >} > > > >static void >print_ehdr (Ebl *ebl, GElf_Ehdr *ehdr) >{ > fputs_unlocked (dcgettext (((void *)0), "ELF Header:\n Magic: ", __LC_MESSAGES), stdout); > for (size_t cnt = 0; cnt < (16); ++cnt) > printf (" %02hhx", ehdr->e_ident[cnt]); > > printf (dcgettext (((void *)0), "\n Class: %s\n", __LC_MESSAGES), > ehdr->e_ident[4] == 1 ? "ELF32" > : ehdr->e_ident[4] == 2 ? "ELF64" > : "\?\?\?"); > > printf (dcgettext (((void *)0), " Data: %s\n", __LC_MESSAGES), > ehdr->e_ident[5] == 1 > ? "2's complement, little endian" > : ehdr->e_ident[5] == 2 > ? "2's complement, big endian" : "\?\?\?"); > > printf (dcgettext (((void *)0), " Version: %hhd %s\n", __LC_MESSAGES), > ehdr->e_ident[6], > ehdr->e_ident[6] == 1 ? dcgettext (((void *)0), "(current)", __LC_MESSAGES) > : "(\?\?\?)"); > > char buf[512]; > printf (dcgettext (((void *)0), " OS/ABI: %s\n", __LC_MESSAGES), > ebl_osabi_name (ebl, ehdr->e_ident[7], buf, sizeof (buf))); > > printf (dcgettext (((void *)0), " ABI Version: %hhd\n", __LC_MESSAGES), > ehdr->e_ident[8]); > > fputs_unlocked (dcgettext (((void *)0), " Type: ", __LC_MESSAGES), stdout); > print_file_type (ehdr->e_type); > > printf (dcgettext (((void *)0), " Machine: %s\n", __LC_MESSAGES), ebl->name); > > printf (dcgettext (((void *)0), " Version: %d %s\n", __LC_MESSAGES), > ehdr->e_version, > ehdr->e_version == 1 ? dcgettext (((void *)0), "(current)", __LC_MESSAGES) : "(\?\?\?)"); > > printf (dcgettext (((void *)0), " Entry point address: %#" "ll" "x" "\n", __LC_MESSAGES), > ehdr->e_entry); > > printf (dcgettext (((void *)0), " Start of program headers: %" "ll" "d" " %s\n", __LC_MESSAGES), > ehdr->e_phoff, dcgettext (((void *)0), "(bytes into file)", __LC_MESSAGES)); > > printf (dcgettext (((void *)0), " Start of section headers: %" "ll" "d" " %s\n", __LC_MESSAGES), > ehdr->e_shoff, dcgettext (((void *)0), "(bytes into file)", __LC_MESSAGES)); > > printf (dcgettext (((void *)0), " Flags: %s\n", __LC_MESSAGES), > ebl_machine_flag_name (ebl, ehdr->e_flags, buf, sizeof (buf))); > > printf (dcgettext (((void *)0), " Size of this header: %" "d" " %s\n", __LC_MESSAGES), > ehdr->e_ehsize, dcgettext (((void *)0), "(bytes)", __LC_MESSAGES)); > > printf (dcgettext (((void *)0), " Size of program header entries: %" "d" " %s\n", __LC_MESSAGES), > ehdr->e_phentsize, dcgettext (((void *)0), "(bytes)", __LC_MESSAGES)); > > printf (dcgettext (((void *)0), " Number of program headers entries: %" "d" "\n", __LC_MESSAGES), > ehdr->e_phnum); > > printf (dcgettext (((void *)0), " Size of section header entries: %" "d" " %s\n", __LC_MESSAGES), > ehdr->e_shentsize, dcgettext (((void *)0), "(bytes)", __LC_MESSAGES)); > > printf (dcgettext (((void *)0), " Number of section headers entries: %" "d", __LC_MESSAGES), > ehdr->e_shnum); > if (ehdr->e_shnum == 0) > { > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (elf_getscn (ebl->elf, 0), &shdr_mem); > if (shdr != ((void *)0)) > printf (dcgettext (((void *)0), " (%" "u" " in [0].sh_size)", __LC_MESSAGES), > (uint32_t) shdr->sh_size); > else > fputs_unlocked (dcgettext (((void *)0), " ([0] not available)", __LC_MESSAGES), stdout); > } > fputc_unlocked ('\n', stdout); > > if (ehdr->e_shstrndx == 0xffff) > { > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (elf_getscn (ebl->elf, 0), &shdr_mem); > if (shdr != ((void *)0)) > > snprintf (buf, sizeof (buf), dcgettext (((void *)0), " (%" "u" " in [0].sh_link)", __LC_MESSAGES), > (uint32_t) shdr->sh_link); > else > { > __builtin_strncpy (buf, dcgettext (((void *)0), " ([0] not available)", __LC_MESSAGES), sizeof (buf)); > buf[sizeof (buf) - 1] = '\0'; > } > > printf (dcgettext (((void *)0), " Section header string table index: XINDEX%s\n\n", __LC_MESSAGES), > buf); > } > else > printf (dcgettext (((void *)0), " Section header string table index: %" "d" "\n\n", __LC_MESSAGES), > ehdr->e_shstrndx); >} > > >static const char * >get_visibility_type (int value) >{ > switch (value) > { > case 0: > return "DEFAULT"; > case 1: > return "INTERNAL"; > case 2: > return "HIDDEN"; > case 3: > return "PROTECTED"; > default: > return "???"; > } >} > > > >static void >print_shdr (Ebl *ebl, GElf_Ehdr *ehdr) >{ > size_t cnt; > size_t shstrndx; > > if (! print_file_header) > printf (dcgettext (((void *)0), "There are %d section headers, starting at offset %#" "ll" "x" ":\n\n", __LC_MESSAGES), > > > ehdr->e_shnum, ehdr->e_shoff); > > > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > puts (dcgettext (((void *)0), "Section Headers:", __LC_MESSAGES)); > > if (ehdr->e_ident[4] == 1) > puts (dcgettext (((void *)0), "[Nr] Name Type Addr Off Size ES Flags Lk Inf Al", __LC_MESSAGES)); > else > puts (dcgettext (((void *)0), "[Nr] Name Type Addr Off Size ES Flags Lk Inf Al", __LC_MESSAGES)); > > for (cnt = 0; cnt < shnum; ++cnt) > { > Elf_Scn *scn = elf_getscn (ebl->elf, cnt); > > if (scn == ((void *)0)) > error (1, 0, dcgettext (((void *)0), "cannot get section: %s", __LC_MESSAGES), > elf_errmsg (-1)); > > > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > if (shdr == ((void *)0)) > error (1, 0, dcgettext (((void *)0), "cannot get section header: %s", __LC_MESSAGES), > elf_errmsg (-1)); > > char flagbuf[20]; > char *cp = flagbuf; > if (shdr->sh_flags & (1 << 0)) > *cp++ = 'W'; > if (shdr->sh_flags & (1 << 1)) > *cp++ = 'A'; > if (shdr->sh_flags & (1 << 2)) > *cp++ = 'X'; > if (shdr->sh_flags & (1 << 4)) > *cp++ = 'M'; > if (shdr->sh_flags & (1 << 5)) > *cp++ = 'S'; > if (shdr->sh_flags & (1 << 6)) > *cp++ = 'I'; > if (shdr->sh_flags & (1 << 7)) > *cp++ = 'L'; > if (shdr->sh_flags & (1 << 8)) > *cp++ = 'N'; > if (shdr->sh_flags & (1 << 9)) > *cp++ = 'G'; > if (shdr->sh_flags & (1 << 10)) > *cp++ = 'T'; > if (shdr->sh_flags & (1 << 30)) > *cp++ = 'O'; > if (shdr->sh_flags & (1 << 31)) > *cp++ = 'E'; > *cp = '\0'; > > char buf[128]; > printf ("[%2zu] %-20s %-12s %0*" "ll" "x" " %0*" "ll" "x" " %0*" "ll" "x" > " %2" "ll" "d" " %-5s %2" "d" " %3" "d" > " %2" "ll" "d" "\n", > cnt, > elf_strptr (ebl->elf, shstrndx, shdr->sh_name) > ?: "<corrupt>", > ebl_section_type_name (ebl, shdr->sh_type, buf, sizeof (buf)), > ehdr->e_ident[4] == 1 ? 8 : 16, shdr->sh_addr, > ehdr->e_ident[4] == 1 ? 6 : 8, shdr->sh_offset, > ehdr->e_ident[4] == 1 ? 6 : 8, shdr->sh_size, > shdr->sh_entsize, flagbuf, shdr->sh_link, shdr->sh_info, > shdr->sh_addralign); > } > > fputc_unlocked ('\n', stdout); >} > > > >static void >print_phdr (Ebl *ebl, GElf_Ehdr *ehdr) >{ > if (ehdr->e_phnum == 0) > > return; > > puts (dcgettext (((void *)0), "Program Headers:", __LC_MESSAGES)); > if (ehdr->e_ident[4] == 1) > puts (dcgettext (((void *)0), " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align", __LC_MESSAGES)); > > else > puts (dcgettext (((void *)0), " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align", __LC_MESSAGES)); > > > > _Bool has_relro = 0; > GElf_Addr relro_from = 0; > GElf_Addr relro_to = 0; > for (size_t cnt = 0; cnt < ehdr->e_phnum; ++cnt) > { > char buf[128]; > GElf_Phdr mem; > GElf_Phdr *phdr = gelf_getphdr (ebl->elf, cnt, &mem); > > > if (phdr == ((void *)0)) > { > puts (" ???"); > continue; > } > > printf (" %-14s 0x%06" "ll" "x" " 0x%0*" "ll" "x" " 0x%0*" "ll" "x" > " 0x%06" "ll" "x" " 0x%06" "ll" "x" " %c%c%c 0x%" "ll" "x" "\n", > ebl_segment_type_name (ebl, phdr->p_type, buf, sizeof (buf)), > phdr->p_offset, > ehdr->e_ident[4] == 1 ? 8 : 16, phdr->p_vaddr, > ehdr->e_ident[4] == 1 ? 8 : 16, phdr->p_paddr, > phdr->p_filesz, > phdr->p_memsz, > phdr->p_flags & (1 << 2) ? 'R' : ' ', > phdr->p_flags & (1 << 1) ? 'W' : ' ', > phdr->p_flags & (1 << 0) ? 'E' : ' ', > phdr->p_align); > > if (phdr->p_type == 3) > { > > size_t maxsize; > char *filedata = elf_rawfile (ebl->elf, &maxsize); > > if (filedata != ((void *)0) && phdr->p_offset < maxsize) > printf (dcgettext (((void *)0), "\t[Requesting program interpreter: %s]\n", __LC_MESSAGES), > filedata + phdr->p_offset); > } > else if (phdr->p_type == 0x6474e552) > { > has_relro = 1; > relro_from = phdr->p_vaddr; > relro_to = relro_from + phdr->p_memsz; > } > } > > > size_t shstrndx; > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > puts (dcgettext (((void *)0), "\n Section to Segment mapping:\n Segment Sections...", __LC_MESSAGES)); > > for (size_t cnt = 0; cnt < ehdr->e_phnum; ++cnt) > { > > printf (" %2.2zu ", cnt); > > GElf_Phdr phdr_mem; > GElf_Phdr *phdr = gelf_getphdr (ebl->elf, cnt, &phdr_mem); > > if (phdr == ((void *)0)) > error (1, 0, dcgettext (((void *)0), "cannot get program header: %s", __LC_MESSAGES), > elf_errmsg (-1)); > > > _Bool in_relro = 0; > _Bool in_ro = 0; > for (size_t inner = 1; inner < shnum; ++inner) > { > Elf_Scn *scn = elf_getscn (ebl->elf, inner); > > if (scn == ((void *)0)) > error (1, 0, dcgettext (((void *)0), "cannot get section: %s", __LC_MESSAGES), > elf_errmsg (-1)); > > > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > if (shdr == ((void *)0)) > error (1, 0, > dcgettext (((void *)0), "cannot get section header: %s", __LC_MESSAGES), > elf_errmsg (-1)); > > if (shdr->sh_size > 0 > > > && (shdr->sh_flags & (1 << 1) > ? (shdr->sh_addr >= phdr->p_vaddr > && (shdr->sh_addr + shdr->sh_size > <= phdr->p_vaddr + phdr->p_memsz)) > : (shdr->sh_offset >= phdr->p_offset > && (shdr->sh_offset + shdr->sh_size > <= phdr->p_offset + phdr->p_filesz)))) > { > if (has_relro && !in_relro > && shdr->sh_addr >= relro_from > && shdr->sh_addr + shdr->sh_size <= relro_to) > { > fputs_unlocked (" [RELRO:", stdout); > in_relro = 1; > } > else if (has_relro && in_relro && shdr->sh_addr >= relro_to) > { > fputs_unlocked ("]", stdout); > in_relro = 0; > } > else if (has_relro && in_relro > && shdr->sh_addr + shdr->sh_size > relro_to) > fputs_unlocked ("] <RELRO:", stdout); > else if (phdr->p_type == 1 && (phdr->p_flags & (1 << 1)) == 0) > { > if (!in_ro) > { > fputs_unlocked (" [RO:", stdout); > in_ro = 1; > } > } > else > { > > size_t cnt2; > GElf_Phdr *phdr2 = ((void *)0); > for (cnt2 = 0; cnt2 < ehdr->e_phnum; ++cnt2) > { > GElf_Phdr phdr2_mem; > phdr2 = gelf_getphdr (ebl->elf, cnt2, &phdr2_mem); > > if (phdr2 != ((void *)0) && phdr2->p_type == 1 > && shdr->sh_addr >= phdr2->p_vaddr > && (shdr->sh_addr + shdr->sh_size > <= phdr2->p_vaddr + phdr2->p_memsz)) > break; > } > > if (cnt2 < ehdr->e_phnum) > { > if ((phdr2->p_flags & (1 << 1)) == 0 && !in_ro) > { > fputs_unlocked (" [RO:", stdout); > in_ro = 1; > } > else if ((phdr2->p_flags & (1 << 1)) != 0 && in_ro) > { > fputs_unlocked ("]", stdout); > in_ro = 0; > } > } > } > > printf (" %s", > elf_strptr (ebl->elf, shstrndx, shdr->sh_name)); > > > if (has_relro && in_relro > && shdr->sh_addr + shdr->sh_size > relro_to) > { > fputs_unlocked (">", stdout); > in_relro = 0; > } > } > } > if (in_relro || in_ro) > fputs_unlocked ("]", stdout); > > > fputc_unlocked ('\n', stdout); > } >} > > >static void >handle_scngrp (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) >{ > > Elf_Data *data = elf_getdata (scn, ((void *)0)); > > Elf_Scn *symscn = elf_getscn (ebl->elf, shdr->sh_link); > GElf_Shdr symshdr_mem; > GElf_Shdr *symshdr = gelf_getshdr (symscn, &symshdr_mem); > Elf_Data *symdata = elf_getdata (symscn, ((void *)0)); > > if (data == ((void *)0) || data->d_size < sizeof (Elf32_Word) || symshdr == ((void *)0) > || symdata == ((void *)0)) > return; > > > size_t shstrndx; > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > Elf32_Word *grpref = (Elf32_Word *) data->d_buf; > > GElf_Sym sym_mem; > GElf_Sym *sym = gelf_getsym (symdata, shdr->sh_info, &sym_mem); > > printf ((grpref[0] & 0x1) > ? dcngettext (((void *)0), "\nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n", "\nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entries:\n", data->d_size / sizeof (Elf32_Word) - 1, __LC_MESSAGES) > > > > > : dcngettext (((void *)0), "\nSection group [%2zu] '%s' with signature '%s' contains %zu entry:\n", "\nSection group [%2zu] '%s' with signature '%s' contains %zu entries:\n", data->d_size / sizeof (Elf32_Word) - 1, __LC_MESSAGES), > > > > elf_ndxscn (scn), > elf_strptr (ebl->elf, shstrndx, shdr->sh_name), > (sym == ((void *)0) ? ((void *)0) > : elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name)) > ?: dcgettext (((void *)0), "<INVALID SYMBOL>", __LC_MESSAGES), > data->d_size / sizeof (Elf32_Word) - 1); > > for (size_t cnt = 1; cnt < data->d_size / sizeof (Elf32_Word); ++cnt) > { > GElf_Shdr grpshdr_mem; > GElf_Shdr *grpshdr = gelf_getshdr (elf_getscn (ebl->elf, grpref[cnt]), > &grpshdr_mem); > > const char *str; > printf (" [%2u] %s\n", > grpref[cnt], > grpshdr != ((void *)0) > && (str = elf_strptr (ebl->elf, shstrndx, grpshdr->sh_name)) > ? str : dcgettext (((void *)0), "<INVALID SECTION>", __LC_MESSAGES)); > } >} > > >static void >print_scngrp (Ebl *ebl) >{ > > Elf_Scn *scn = ((void *)0); > > while ((scn = elf_nextscn (ebl->elf, scn)) != ((void *)0)) > { > > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > > if (shdr != ((void *)0) && shdr->sh_type == 17) > handle_scngrp (ebl, scn, shdr); > } >} > > >static const struct flags >{ > int mask; > const char *str; >} dt_flags[] = > { > { 0x00000001, "ORIGIN" }, > { 0x00000002, "SYMBOLIC" }, > { 0x00000004, "TEXTREL" }, > { 0x00000008, "BIND_NOW" }, > { 0x00000010, "STATIC_TLS" } > }; >static const int ndt_flags = sizeof (dt_flags) / sizeof (dt_flags[0]); > >static const struct flags dt_flags_1[] = > { > { 0x00000001, "NOW" }, > { 0x00000002, "GLOBAL" }, > { 0x00000004, "GROUP" }, > { 0x00000008, "NODELETE" }, > { 0x00000010, "LOADFLTR" }, > { 0x00000020, "INITFIRST" }, > { 0x00000040, "NOOPEN" }, > { 0x00000080, "ORIGIN" }, > { 0x00000100, "DIRECT" }, > { 0x00000200, "TRANS" }, > { 0x00000400, "INTERPOSE" }, > { 0x00000800, "NODEFLIB" }, > { 0x00001000, "NODUMP" }, > { 0x00002000, "CONFALT" }, > { 0x00004000, "ENDFILTEE" }, > { 0x00008000, "DISPRELDNE" }, > { 0x00010000, "DISPRELPND" }, > }; >static const int ndt_flags_1 = sizeof (dt_flags_1) / sizeof (dt_flags_1[0]); > >static const struct flags dt_feature_1[] = > { > { 0x00000001, "PARINIT" }, > { 0x00000002, "CONFEXP" } > }; >static const int ndt_feature_1 = (sizeof (dt_feature_1) > / sizeof (dt_feature_1[0])); > >static const struct flags dt_posflag_1[] = > { > { 0x00000001, "LAZYLOAD" }, > { 0x00000002, "GROUPPERM" } > }; >static const int ndt_posflag_1 = (sizeof (dt_posflag_1) > / sizeof (dt_posflag_1[0])); > > >static void >print_flags (int class, GElf_Xword d_val, const struct flags *flags, > int nflags) >{ > _Bool first = 1; > int cnt; > > for (cnt = 0; cnt < nflags; ++cnt) > if (d_val & flags[cnt].mask) > { > if (!first) > putchar_unlocked (' '); > fputs_unlocked (flags[cnt].str, stdout); > d_val &= ~flags[cnt].mask; > first = 0; > } > > if (d_val != 0) > { > if (!first) > putchar_unlocked (' '); > printf ("%#0*" "ll" "x", class == 1 ? 10 : 18, d_val); > } > > putchar_unlocked ('\n'); >} > > >static void >print_dt_flags (int class, GElf_Xword d_val) >{ > print_flags (class, d_val, dt_flags, ndt_flags); >} > > >static void >print_dt_flags_1 (int class, GElf_Xword d_val) >{ > print_flags (class, d_val, dt_flags_1, ndt_flags_1); >} > > >static void >print_dt_feature_1 (int class, GElf_Xword d_val) >{ > print_flags (class, d_val, dt_feature_1, ndt_feature_1); >} > > >static void >print_dt_posflag_1 (int class, GElf_Xword d_val) >{ > print_flags (class, d_val, dt_posflag_1, ndt_posflag_1); >} > > >static void >handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) >{ > int class = gelf_getclass (ebl->elf); > GElf_Shdr glink_mem; > GElf_Shdr *glink; > Elf_Data *data; > size_t cnt; > size_t shstrndx; > > > data = elf_getdata (scn, ((void *)0)); > if (data == ((void *)0)) > return; > > > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem); > if (glink == ((void *)0)) > error (1, 0, dcgettext (((void *)0), "invalid sh_link value in section %Zu", __LC_MESSAGES), > elf_ndxscn (scn)); > > printf (dcngettext (((void *)0), "\nDynamic segment contains %lu entry:\n Addr: %#0*" "ll" "x" " Offset: %#08" "ll" "x" " Link to section: [%2u] '%s'\n", "\nDynamic segment contains %lu entries:\n Addr: %#0*" "ll" "x" " Offset: %#08" "ll" "x" " Link to section: [%2u] '%s'\n", shdr->sh_size / shdr->sh_entsize, __LC_MESSAGES), > > > > > (unsigned long int) (shdr->sh_size / shdr->sh_entsize), > class == 1 ? 10 : 18, shdr->sh_addr, > shdr->sh_offset, > (int) shdr->sh_link, > elf_strptr (ebl->elf, shstrndx, glink->sh_name)); > fputs_unlocked (dcgettext (((void *)0), " Type Value\n", __LC_MESSAGES), stdout); > > for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) > { > GElf_Dyn dynmem; > GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dynmem); > if (dyn == ((void *)0)) > break; > > char buf[64]; > printf (" %-17s ", > ebl_dynamic_tag_name (ebl, dyn->d_tag, buf, sizeof (buf))); > > switch (dyn->d_tag) > { > case 0: > case 21: > case 24: > case 22: > > fputc_unlocked ('\n', stdout); > break; > > case 1: > printf (dcgettext (((void *)0), "Shared library: [%s]\n", __LC_MESSAGES), > elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val)); > break; > > case 14: > printf (dcgettext (((void *)0), "Library soname: [%s]\n", __LC_MESSAGES), > elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val)); > break; > > case 15: > printf (dcgettext (((void *)0), "Library rpath: [%s]\n", __LC_MESSAGES), > elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val)); > break; > > case 29: > printf (dcgettext (((void *)0), "Library runpath: [%s]\n", __LC_MESSAGES), > elf_strptr (ebl->elf, shdr->sh_link, dyn->d_un.d_val)); > break; > > case 2: > case 8: > case 10: > case 18: > case 9: > case 11: > case 19: > case 0x6ffffdf9: > case 0x6ffffdfa: > case 0x6ffffdfb: > case 27: > case 28: > case 0x6ffffdfe: > case 0x6ffffdff: > case 0x6ffffdf6: > case 0x6ffffdf7: > printf (dcgettext (((void *)0), "%" "ll" "d" " (bytes)\n", __LC_MESSAGES), dyn->d_un.d_val); > break; > > case 0x6ffffffd: > case 0x6fffffff: > case 0x6ffffff9: > case 0x6ffffffa: > printf ("%" "ll" "d" "\n", dyn->d_un.d_val); > break; > > case 20: > puts (ebl_dynamic_tag_name (ebl, dyn->d_un.d_val, ((void *)0), 0)); > break; > > case 30: > print_dt_flags (class, dyn->d_un.d_val); > break; > > case 0x6ffffffb: > print_dt_flags_1 (class, dyn->d_un.d_val); > break; > > case 0x6ffffdfc: > print_dt_feature_1 (class, dyn->d_un.d_val); > break; > > case 0x6ffffdfd: > print_dt_posflag_1 (class, dyn->d_un.d_val); > break; > > default: > printf ("%#0*" "ll" "x" "\n", > class == 1 ? 10 : 18, dyn->d_un.d_val); > break; > } > } >} > > > >static void >print_dynamic (Ebl *ebl, GElf_Ehdr *ehdr) >{ > for (int i = 0; i < ehdr->e_phnum; ++i) > { > GElf_Phdr phdr_mem; > GElf_Phdr *phdr = gelf_getphdr (ebl->elf, i, &phdr_mem); > > if (phdr != ((void *)0) && phdr->p_type == 2) > { > Elf_Scn *scn = gelf_offscn (ebl->elf, phdr->p_offset); > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > if (shdr != ((void *)0) && shdr->sh_type == 6) > handle_dynamic (ebl, scn, shdr); > break; > } > } >} > > > >static void >print_relocs (Ebl *ebl) >{ > > Elf_Scn *scn = ((void *)0); > > while ((scn = elf_nextscn (ebl->elf, scn)) != ((void *)0)) > { > > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > > if (shdr != ((void *)0)) > { > if (shdr->sh_type == 9) > handle_relocs_rel (ebl, scn, shdr); > else if (shdr->sh_type == 4) > handle_relocs_rela (ebl, scn, shdr); > } > } >} > > > >static void >handle_relocs_rel (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) >{ > int class = gelf_getclass (ebl->elf); > int nentries = shdr->sh_size / shdr->sh_entsize; > > > Elf_Data *data = elf_getdata (scn, ((void *)0)); > if (data == ((void *)0)) > return; > > > Elf_Scn *symscn = elf_getscn (ebl->elf, shdr->sh_link); > GElf_Shdr symshdr_mem; > GElf_Shdr *symshdr = gelf_getshdr (symscn, &symshdr_mem); > Elf_Data *symdata = elf_getdata (symscn, ((void *)0)); > > > GElf_Shdr destshdr_mem; > GElf_Shdr *destshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_info), > &destshdr_mem); > > if (symshdr == ((void *)0) || symdata == ((void *)0) || destshdr == ((void *)0)) > { > printf (dcgettext (((void *)0), "\nInvalid symbol table at offset %#0" "ll" "x" "\n", __LC_MESSAGES), > shdr->sh_offset); > return; > } > > > Elf_Scn *xndxscn = ((void *)0); > Elf_Data *xndxdata = ((void *)0); > while ((xndxscn = elf_nextscn (ebl->elf, xndxscn)) != ((void *)0)) > { > GElf_Shdr xndxshdr_mem; > GElf_Shdr *xndxshdr = gelf_getshdr (xndxscn, &xndxshdr_mem); > if (xndxshdr != ((void *)0) && xndxshdr->sh_type == 18 > && xndxshdr->sh_link == elf_ndxscn (symscn)) > { > > xndxdata = elf_getdata (xndxscn, ((void *)0)); > break; > } > } > > > size_t shstrndx; > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > if (shdr->sh_info != 0) > printf (dcngettext (((void *)0), "\nRelocation section [%2u] '%s' for section [%2u] '%s' at offset %#0" "ll" "x" " contains %d entry:\n", "\nRelocation section [%2u] '%s' for section [%2u] '%s' at offset %#0" "ll" "x" " contains %d entries:\n", nentries, __LC_MESSAGES), > > > > > (unsigned int) elf_ndxscn (scn), > elf_strptr (ebl->elf, shstrndx, shdr->sh_name), > (unsigned int) shdr->sh_info, > elf_strptr (ebl->elf, shstrndx, destshdr->sh_name), > shdr->sh_offset, > nentries); > else > > > > printf (dcngettext (((void *)0), "\nRelocation section [%2u] '%s' at offset %#0" "ll" "x" " contains %d entry:\n", "\nRelocation section [%2u] '%s' at offset %#0" "ll" "x" " contains %d entries:\n", nentries, __LC_MESSAGES), > > > > > (unsigned int) elf_ndxscn (scn), > elf_strptr (ebl->elf, shstrndx, shdr->sh_name), > shdr->sh_offset, > nentries); > fputs_unlocked (class == 1 > ? dcgettext (((void *)0), " Offset Type Value Name\n", __LC_MESSAGES) > > : dcgettext (((void *)0), " Offset Type Value Name\n", __LC_MESSAGES), > > stdout); > > for (int cnt = 0; cnt < nentries; ++cnt) > { > GElf_Rel relmem; > GElf_Rel *rel = gelf_getrel (data, cnt, &relmem); > if (rel != ((void *)0)) > { > char buf[128]; > GElf_Sym symmem; > Elf32_Word xndx; > GElf_Sym *sym = gelf_getsymshndx (symdata, xndxdata, > ((rel->r_info) >> 32), > &symmem, &xndx); > if (sym == ((void *)0)) > printf (" %#0*" "ll" "x" " %-20s <%s %ld>\n", > class == 1 ? 10 : 18, rel->r_offset, > ebl_reloc_type_check (ebl, ((rel->r_info) & 0xffffffff)) > > > ? ebl_reloc_type_name (ebl, ((rel->r_info) & 0xffffffff), > buf, sizeof (buf)) + 2 > : dcgettext (((void *)0), "<INVALID RELOC>", __LC_MESSAGES), > dcgettext (((void *)0), "INVALID SYMBOL", __LC_MESSAGES), > (long int) ((rel->r_info) >> 32)); > else if (((sym->st_info) & 0xf) != 3) > printf (" %#0*" "ll" "x" " %-20s %#0*" "ll" "x" " %s\n", > class == 1 ? 10 : 18, rel->r_offset, > ebl_reloc_type_check (ebl, ((rel->r_info) & 0xffffffff)) > > > ? ebl_reloc_type_name (ebl, ((rel->r_info) & 0xffffffff), > buf, sizeof (buf)) + 2 > : dcgettext (((void *)0), "<INVALID RELOC>", __LC_MESSAGES), > class == 1 ? 10 : 18, sym->st_value, > elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name)); > else > { > destshdr = gelf_getshdr (elf_getscn (ebl->elf, > sym->st_shndx == 0xffff > ? xndx : sym->st_shndx), > &destshdr_mem); > > if (shdr == ((void *)0)) > printf (" %#0*" "ll" "x" " %-20s <%s %ld>\n", > class == 1 ? 10 : 18, rel->r_offset, > ebl_reloc_type_check (ebl, ((rel->r_info) & 0xffffffff)) > > > ? ebl_reloc_type_name (ebl, ((rel->r_info) & 0xffffffff), > buf, sizeof (buf)) + 2 > : dcgettext (((void *)0), "<INVALID RELOC>", __LC_MESSAGES), > dcgettext (((void *)0), "INVALID SECTION", __LC_MESSAGES), > (long int) (sym->st_shndx == 0xffff > ? xndx : sym->st_shndx)); > else > printf (" %#0*" "ll" "x" " %-20s %#0*" "ll" "x" " %s\n", > class == 1 ? 10 : 18, rel->r_offset, > ebl_reloc_type_check (ebl, ((rel->r_info) & 0xffffffff)) > > > ? ebl_reloc_type_name (ebl, ((rel->r_info) & 0xffffffff), > buf, sizeof (buf)) + 2 > : dcgettext (((void *)0), "<INVALID RELOC>", __LC_MESSAGES), > class == 1 ? 10 : 18, sym->st_value, > elf_strptr (ebl->elf, shstrndx, destshdr->sh_name)); > } > } > } >} > > > >static void >handle_relocs_rela (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) >{ > int class = gelf_getclass (ebl->elf); > int nentries = shdr->sh_size / shdr->sh_entsize; > > > Elf_Data *data = elf_getdata (scn, ((void *)0)); > if (data == ((void *)0)) > return; > > > Elf_Scn *symscn = elf_getscn (ebl->elf, shdr->sh_link); > GElf_Shdr symshdr_mem; > GElf_Shdr *symshdr = gelf_getshdr (symscn, &symshdr_mem); > Elf_Data *symdata = elf_getdata (symscn, ((void *)0)); > > > GElf_Shdr destshdr_mem; > GElf_Shdr *destshdr = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_info), > &destshdr_mem); > > if (symshdr == ((void *)0) || symdata == ((void *)0) || destshdr == ((void *)0)) > { > printf (dcgettext (((void *)0), "\nInvalid symbol table at offset %#0" "ll" "x" "\n", __LC_MESSAGES), > shdr->sh_offset); > return; > } > > > Elf_Data *xndxdata = ((void *)0); > Elf_Scn *xndxscn = ((void *)0); > while ((xndxscn = elf_nextscn (ebl->elf, xndxscn)) != ((void *)0)) > { > GElf_Shdr xndxshdr_mem; > GElf_Shdr *xndxshdr = gelf_getshdr (xndxscn, &xndxshdr_mem); > if (xndxshdr != ((void *)0) && xndxshdr->sh_type == 18 > && xndxshdr->sh_link == elf_ndxscn (symscn)) > { > > xndxdata = elf_getdata (xndxscn, ((void *)0)); > break; > } > } > > > size_t shstrndx; > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > printf (dcngettext (((void *)0), "\nRelocation section [%2zu] '%s' for section [%2u] '%s' at offset %#0" "ll" "x" " contains %d entry:\n", "\nRelocation section [%2zu] '%s' for section [%2u] '%s' at offset %#0" "ll" "x" " contains %d entries:\n", nentries, __LC_MESSAGES), > > > > > elf_ndxscn (scn), > elf_strptr (ebl->elf, shstrndx, shdr->sh_name), > (unsigned int) shdr->sh_info, > elf_strptr (ebl->elf, shstrndx, destshdr->sh_name), > shdr->sh_offset, > nentries); > fputs_unlocked (class == 1 > ? dcgettext (((void *)0), " Offset Type Value Addend Name\n", __LC_MESSAGES) > > : dcgettext (((void *)0), " Offset Type Value Addend Name\n", __LC_MESSAGES), > > stdout); > > for (int cnt = 0; cnt < nentries; ++cnt) > { > GElf_Rela relmem; > GElf_Rela *rel = gelf_getrela (data, cnt, &relmem); > if (rel != ((void *)0)) > { > char buf[64]; > GElf_Sym symmem; > Elf32_Word xndx; > GElf_Sym *sym = gelf_getsymshndx (symdata, xndxdata, > ((rel->r_info) >> 32), > &symmem, &xndx); > > if (sym == ((void *)0)) > printf (" %#0*" "ll" "x" " %-15s <%s %ld>\n", > class == 1 ? 10 : 18, rel->r_offset, > ebl_reloc_type_check (ebl, ((rel->r_info) & 0xffffffff)) > > > ? ebl_reloc_type_name (ebl, ((rel->r_info) & 0xffffffff), > buf, sizeof (buf)) + 2 > : dcgettext (((void *)0), "<INVALID RELOC>", __LC_MESSAGES), > dcgettext (((void *)0), "INVALID SYMBOL", __LC_MESSAGES), > (long int) ((rel->r_info) >> 32)); > else if (((sym->st_info) & 0xf) != 3) > printf (" %#0*" "ll" "x" " %-15s %#0*" "ll" "x" " +%5" "ll" "d" " %s\n", > > class == 1 ? 10 : 18, rel->r_offset, > ebl_reloc_type_check (ebl, ((rel->r_info) & 0xffffffff)) > > > ? ebl_reloc_type_name (ebl, ((rel->r_info) & 0xffffffff), > buf, sizeof (buf)) + 2 > : dcgettext (((void *)0), "<INVALID RELOC>", __LC_MESSAGES), > class == 1 ? 10 : 18, sym->st_value, > rel->r_addend, > elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name)); > else > { > destshdr = gelf_getshdr (elf_getscn (ebl->elf, > sym->st_shndx == 0xffff > ? xndx : sym->st_shndx), > &destshdr_mem); > > if (shdr == ((void *)0)) > printf (" %#0*" "ll" "x" " %-15s <%s %ld>\n", > class == 1 ? 10 : 18, rel->r_offset, > ebl_reloc_type_check (ebl, ((rel->r_info) & 0xffffffff)) > > > ? ebl_reloc_type_name (ebl, ((rel->r_info) & 0xffffffff), > buf, sizeof (buf)) + 2 > : dcgettext (((void *)0), "<INVALID RELOC>", __LC_MESSAGES), > dcgettext (((void *)0), "INVALID SECTION", __LC_MESSAGES), > (long int) (sym->st_shndx == 0xffff > ? xndx : sym->st_shndx)); > else > printf (" %#0*" "ll" "x" " %-15s %#0*" "ll" "x" " +%5" "ll" "d" " %s\n", > > class == 1 ? 10 : 18, rel->r_offset, > ebl_reloc_type_check (ebl, ((rel->r_info) & 0xffffffff)) > > > ? ebl_reloc_type_name (ebl, ((rel->r_info) & 0xffffffff), > buf, sizeof (buf)) + 2 > : dcgettext (((void *)0), "<INVALID RELOC>", __LC_MESSAGES), > class == 1 ? 10 : 18, sym->st_value, > rel->r_addend, > elf_strptr (ebl->elf, shstrndx, destshdr->sh_name)); > } > } > } >} > > > >static void >print_symtab (Ebl *ebl, int type) >{ > > > Elf_Scn *scn = ((void *)0); > > while ((scn = elf_nextscn (ebl->elf, scn)) != ((void *)0)) > { > > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > > if (shdr != ((void *)0) && shdr->sh_type == (GElf_Word) type) > handle_symtab (ebl, scn, shdr); > } >} > > >static void >handle_symtab (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) >{ > Elf_Data *versym_data = ((void *)0); > Elf_Data *verneed_data = ((void *)0); > Elf_Data *verdef_data = ((void *)0); > Elf_Data *xndx_data = ((void *)0); > int class = gelf_getclass (ebl->elf); > Elf32_Word verneed_stridx = 0; > Elf32_Word verdef_stridx = 0; > > > Elf_Data *data = elf_getdata (scn, ((void *)0)); > if (data == ((void *)0)) > return; > > > Elf_Scn *runscn = ((void *)0); > while ((runscn = elf_nextscn (ebl->elf, runscn)) != ((void *)0)) > { > GElf_Shdr runshdr_mem; > GElf_Shdr *runshdr = gelf_getshdr (runscn, &runshdr_mem); > > if (runshdr != ((void *)0)) > { > if (runshdr->sh_type == 0x6fffffff > && runshdr->sh_link == elf_ndxscn (scn)) > > versym_data = elf_getdata (runscn, ((void *)0)); > else if (runshdr->sh_type == 0x6ffffffe) > { > > verneed_data = elf_getdata (runscn, ((void *)0)); > verneed_stridx = runshdr->sh_link; > } > else if (runshdr->sh_type == 0x6ffffffd) > { > > verdef_data = elf_getdata (runscn, ((void *)0)); > verdef_stridx = runshdr->sh_link; > } > else if (runshdr->sh_type == 18 > && runshdr->sh_link == elf_ndxscn (scn)) > > xndx_data = elf_getdata (runscn, ((void *)0)); > } > } > > > size_t shstrndx; > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > GElf_Shdr glink_mem; > GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), > &glink_mem); > if (glink == ((void *)0)) > error (1, 0, dcgettext (((void *)0), "invalid sh_link value in section %Zu", __LC_MESSAGES), > elf_ndxscn (scn)); > > > unsigned int nsyms = data->d_size / (class == 1 > ? sizeof (Elf32_Sym) > : sizeof (Elf64_Sym)); > > printf (dcngettext (((void *)0), "\nSymbol table [%2u] '%s' contains %u entry:\n", "\nSymbol table [%2u] '%s' contains %u entries:\n", nsyms, __LC_MESSAGES), > > > (unsigned int) elf_ndxscn (scn), > elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms); > printf (dcngettext (((void *)0), " %lu local symbol String table: [%2u] '%s'\n", " %lu local symbols String table: [%2u] '%s'\n", shdr->sh_info, __LC_MESSAGES), > > > (unsigned long int) shdr->sh_info, > (unsigned int) shdr->sh_link, > elf_strptr (ebl->elf, shstrndx, glink->sh_name)); > > fputs_unlocked (class == 1 > ? dcgettext (((void *)0), " Num: Value Size Type Bind Vis Ndx Name\n", __LC_MESSAGES) > > : dcgettext (((void *)0), " Num: Value Size Type Bind Vis Ndx Name\n", __LC_MESSAGES), > > stdout); > > for (unsigned int cnt = 0; cnt < nsyms; ++cnt) > { > char typebuf[64]; > char bindbuf[64]; > char scnbuf[64]; > Elf32_Word xndx; > GElf_Sym sym_mem; > GElf_Sym *sym = gelf_getsymshndx (data, xndx_data, cnt, &sym_mem, &xndx); > > if (sym == ((void *)0)) > continue; > > > if (sym->st_shndx != 0xffff) > xndx = sym->st_shndx; > > printf (dcgettext (((void *)0), "%5u: %0*" "ll" "x" " %6" "ll" "d" " %-7s %-6s %-9s %6s %s", __LC_MESSAGES), > > cnt, > class == 1 ? 8 : 16, > sym->st_value, > sym->st_size, > ebl_symbol_type_name (ebl, ((sym->st_info) & 0xf), > typebuf, sizeof (typebuf)), > ebl_symbol_binding_name (ebl, (((unsigned char) (sym->st_info)) >> 4), > bindbuf, sizeof (bindbuf)), > get_visibility_type (((sym->st_other) & 0x03)), > ebl_section_name (ebl, sym->st_shndx, xndx, scnbuf, > sizeof (scnbuf), ((void *)0), shnum), > elf_strptr (ebl->elf, shdr->sh_link, sym->st_name)); > > if (versym_data != ((void *)0)) > { > > GElf_Versym versym_mem; > GElf_Versym *versym = gelf_getversym (versym_data, cnt, &versym_mem); > > if (versym != ((void *)0) && ((*versym & 0x8000) != 0 || *versym > 1)) > { > _Bool is_nobits = 0; > _Bool check_def = xndx != 0; > > if (xndx < 0xff00 || sym->st_shndx == 0xffff) > { > GElf_Shdr symshdr_mem; > GElf_Shdr *symshdr = > gelf_getshdr (elf_getscn (ebl->elf, xndx), &symshdr_mem); > > is_nobits = (symshdr != ((void *)0) > && symshdr->sh_type == 8); > } > > if (is_nobits || ! check_def) > { > > GElf_Vernaux vernaux_mem; > GElf_Vernaux *vernaux = ((void *)0); > size_t vn_offset = 0; > > GElf_Verneed verneed_mem; > GElf_Verneed *verneed = gelf_getverneed (verneed_data, 0, > &verneed_mem); > while (verneed != ((void *)0)) > { > size_t vna_offset = vn_offset; > > vernaux = gelf_getvernaux (verneed_data, > vna_offset += verneed->vn_aux, > &vernaux_mem); > while (vernaux != ((void *)0) > && vernaux->vna_other != *versym > && vernaux->vna_next != 0) > { > > vna_offset += vernaux->vna_next; > > vernaux = (vernaux->vna_next == 0 > ? ((void *)0) > : gelf_getvernaux (verneed_data, > vna_offset, > &vernaux_mem)); > } > > > if (vernaux != ((void *)0) && vernaux->vna_other == *versym) > > break; > > vn_offset += verneed->vn_next; > verneed = (verneed->vn_next == 0 > ? ((void *)0) > : gelf_getverneed (verneed_data, vn_offset, > &verneed_mem)); > } > > if (vernaux != ((void *)0) && vernaux->vna_other == *versym) > { > printf ("@%s (%u)", > elf_strptr (ebl->elf, verneed_stridx, > vernaux->vna_name), > (unsigned int) vernaux->vna_other); > check_def = 0; > } > else if (! is_nobits) > error (0, 0, dcgettext (((void *)0), "bad dynamic symbol", __LC_MESSAGES)); > else > check_def = 1; > } > > if (check_def && *versym != 0x8001) > { > > size_t vd_offset = 0; > > GElf_Verdef verdef_mem; > GElf_Verdef *verdef = gelf_getverdef (verdef_data, 0, > &verdef_mem); > while (verdef != ((void *)0)) > { > if (verdef->vd_ndx == (*versym & 0x7fff)) > > break; > > vd_offset += verdef->vd_next; > verdef = (verdef->vd_next == 0 > ? ((void *)0) > : gelf_getverdef (verdef_data, vd_offset, > &verdef_mem)); > } > > if (verdef != ((void *)0)) > { > GElf_Verdaux verdaux_mem; > GElf_Verdaux *verdaux > = gelf_getverdaux (verdef_data, > vd_offset + verdef->vd_aux, > &verdaux_mem); > > if (verdaux != ((void *)0)) > printf ((*versym & 0x8000) ? "@%s" : "@@%s", > elf_strptr (ebl->elf, verdef_stridx, > verdaux->vda_name)); > } > } > } > } > > putchar_unlocked ('\n'); > } >} > > > >static void >print_verinfo (Ebl *ebl) >{ > > > Elf_Scn *scn = ((void *)0); > > while ((scn = elf_nextscn (ebl->elf, scn)) != ((void *)0)) > { > > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > > if (shdr != ((void *)0)) > { > if (shdr->sh_type == 0x6ffffffe) > handle_verneed (ebl, scn, shdr); > else if (shdr->sh_type == 0x6ffffffd) > handle_verdef (ebl, scn, shdr); > else if (shdr->sh_type == 0x6fffffff) > handle_versym (ebl, scn, shdr); > } > } >} > > >static const char * >get_ver_flags (unsigned int flags) >{ > static char buf[32]; > char *endp; > > if (flags == 0) > return dcgettext (((void *)0), "none", __LC_MESSAGES); > > if (flags & 0x1) > endp = (__extension__ (__builtin_constant_p ("BASE ") ? (((size_t)(const void *)(("BASE ") + 1) - (size_t)(const void *)("BASE ") == 1) && strlen ("BASE ") + 1 <= 8 ? __builtin_strcpy (buf, "BASE ") + strlen ("BASE ") : ((char *) (__mempcpy) (buf, "BASE ", strlen ("BASE ") + 1) - 1)) : __stpcpy (buf, "BASE "))); > else > endp = buf; > > if (flags & 0x2) > { > if (endp != buf) > endp = (__extension__ (__builtin_constant_p ("| ") ? (((size_t)(const void *)(("| ") + 1) - (size_t)(const void *)("| ") == 1) && strlen ("| ") + 1 <= 8 ? __builtin_strcpy (endp, "| ") + strlen ("| ") : ((char *) (__mempcpy) (endp, "| ", strlen ("| ") + 1) - 1)) : __stpcpy (endp, "| "))); > > endp = (__extension__ (__builtin_constant_p ("WEAK ") ? (((size_t)(const void *)(("WEAK ") + 1) - (size_t)(const void *)("WEAK ") == 1) && strlen ("WEAK ") + 1 <= 8 ? __builtin_strcpy (endp, "WEAK ") + strlen ("WEAK ") : ((char *) (__mempcpy) (endp, "WEAK ", strlen ("WEAK ") + 1) - 1)) : __stpcpy (endp, "WEAK "))); > } > > if (flags & ~(0x1 | 0x2)) > { > __builtin_strncpy (endp, dcgettext (((void *)0), "| <unknown>", __LC_MESSAGES), buf + sizeof (buf) - endp); > buf[sizeof (buf) - 1] = '\0'; > } > > return buf; >} > > >static void >handle_verneed (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) >{ > int class = gelf_getclass (ebl->elf); > > > Elf_Data *data = elf_getdata (scn, ((void *)0)); > if (data == ((void *)0)) > return; > > > size_t shstrndx; > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > GElf_Shdr glink_mem; > GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), > &glink_mem); > if (glink == ((void *)0)) > error (1, 0, dcgettext (((void *)0), "invalid sh_link value in section %Zu", __LC_MESSAGES), > elf_ndxscn (scn)); > > printf (dcngettext (((void *)0), "\nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" "ll" "x" " Offset: %#08" "ll" "x" " Link to section: [%2u] '%s'\n", "\nVersion needs section [%2u] '%s' contains %d entries:\n Addr: %#0*" "ll" "x" " Offset: %#08" "ll" "x" " Link to section: [%2u] '%s'\n", shdr->sh_info, __LC_MESSAGES), > > > > > (unsigned int) elf_ndxscn (scn), > elf_strptr (ebl->elf, shstrndx, shdr->sh_name), shdr->sh_info, > class == 1 ? 10 : 18, shdr->sh_addr, > shdr->sh_offset, > (unsigned int) shdr->sh_link, > elf_strptr (ebl->elf, shstrndx, glink->sh_name)); > > unsigned int offset = 0; > for (int cnt = shdr->sh_info; --cnt >= 0; ) > { > > GElf_Verneed needmem; > GElf_Verneed *need = gelf_getverneed (data, offset, &needmem); > if (need == ((void *)0)) > break; > > printf (dcgettext (((void *)0), " %#06x: Version: %hu File: %s Cnt: %hu\n", __LC_MESSAGES), > offset, (unsigned short int) need->vn_version, > elf_strptr (ebl->elf, shdr->sh_link, need->vn_file), > (unsigned short int) need->vn_cnt); > > unsigned int auxoffset = offset + need->vn_aux; > for (int cnt2 = need->vn_cnt; --cnt2 >= 0; ) > { > GElf_Vernaux auxmem; > GElf_Vernaux *aux = gelf_getvernaux (data, auxoffset, &auxmem); > if (aux == ((void *)0)) > break; > > printf (dcgettext (((void *)0), " %#06x: Name: %s Flags: %s Version: %hu\n", __LC_MESSAGES), > auxoffset, > elf_strptr (ebl->elf, shdr->sh_link, aux->vna_name), > get_ver_flags (aux->vna_flags), > (unsigned short int) aux->vna_other); > > auxoffset += aux->vna_next; > } > > > offset += need->vn_next; > } >} > > >static void >handle_verdef (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) >{ > > Elf_Data *data = elf_getdata (scn, ((void *)0)); > if (data == ((void *)0)) > return; > > > size_t shstrndx; > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > GElf_Shdr glink_mem; > GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), > &glink_mem); > if (glink == ((void *)0)) > error (1, 0, dcgettext (((void *)0), "invalid sh_link value in section %Zu", __LC_MESSAGES), > elf_ndxscn (scn)); > > int class = gelf_getclass (ebl->elf); > printf (dcngettext (((void *)0), "\nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" "ll" "x" " Offset: %#08" "ll" "x" " Link to section: [%2u] '%s'\n", "\nVersion definition section [%2u] '%s' contains %d entries:\n Addr: %#0*" "ll" "x" " Offset: %#08" "ll" "x" " Link to section: [%2u] '%s'\n", shdr->sh_info, __LC_MESSAGES), > > > > > (unsigned int) elf_ndxscn (scn), > elf_strptr (ebl->elf, shstrndx, shdr->sh_name), > shdr->sh_info, > class == 1 ? 10 : 18, shdr->sh_addr, > shdr->sh_offset, > (unsigned int) shdr->sh_link, > elf_strptr (ebl->elf, shstrndx, glink->sh_name)); > > unsigned int offset = 0; > for (int cnt = shdr->sh_info; --cnt >= 0; ) > { > > GElf_Verdef defmem; > GElf_Verdef *def = gelf_getverdef (data, offset, &defmem); > if (def == ((void *)0)) > break; > > unsigned int auxoffset = offset + def->vd_aux; > GElf_Verdaux auxmem; > GElf_Verdaux *aux = gelf_getverdaux (data, auxoffset, &auxmem); > if (aux == ((void *)0)) > break; > > printf (dcgettext (((void *)0), " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n", __LC_MESSAGES), > > offset, def->vd_version, > get_ver_flags (def->vd_flags), > def->vd_ndx, > def->vd_cnt, > elf_strptr (ebl->elf, shdr->sh_link, aux->vda_name)); > > auxoffset += aux->vda_next; > for (int cnt2 = 1; cnt2 < def->vd_cnt; ++cnt2) > { > aux = gelf_getverdaux (data, auxoffset, &auxmem); > if (aux == ((void *)0)) > break; > > printf (dcgettext (((void *)0), " %#06x: Parent %d: %s\n", __LC_MESSAGES), > auxoffset, cnt2, > elf_strptr (ebl->elf, shdr->sh_link, aux->vda_name)); > > auxoffset += aux->vda_next; > } > > > offset += def->vd_next; > } >} > > >static void >handle_versym (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) >{ > int class = gelf_getclass (ebl->elf); > const char **vername; > const char **filename; > > > Elf_Data *data = elf_getdata (scn, ((void *)0)); > if (data == ((void *)0)) > return; > > > size_t shstrndx; > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > > > Elf_Scn *defscn = ((void *)0); > Elf_Scn *needscn = ((void *)0); > > Elf_Scn *verscn = ((void *)0); > while ((verscn = elf_nextscn (ebl->elf, verscn)) != ((void *)0)) > { > GElf_Shdr vershdr_mem; > GElf_Shdr *vershdr = gelf_getshdr (verscn, &vershdr_mem); > > if (vershdr != ((void *)0)) > { > if (vershdr->sh_type == 0x6ffffffd) > defscn = verscn; > else if (vershdr->sh_type == 0x6ffffffe) > needscn = verscn; > } > } > > size_t nvername; > if (defscn != ((void *)0) || needscn != ((void *)0)) > { > > > nvername = 0; > if (defscn != ((void *)0)) > { > > > unsigned int offset = 0; > Elf_Data *defdata; > GElf_Shdr defshdrmem; > GElf_Shdr *defshdr; > > defdata = elf_getdata (defscn, ((void *)0)); > if (defdata == ((void *)0)) > return; > > defshdr = gelf_getshdr (defscn, &defshdrmem); > if (defshdr == ((void *)0)) > return; > > for (unsigned int cnt = 0; cnt < defshdr->sh_info; ++cnt) > { > GElf_Verdef defmem; > GElf_Verdef *def; > > > def = gelf_getverdef (defdata, offset, &defmem); > if (def == ((void *)0)) > break; > > nvername = (((nvername)>((size_t) (def->vd_ndx & 0x7fff)))?(nvername):((size_t) (def->vd_ndx & 0x7fff))); > > offset += def->vd_next; > } > } > if (needscn != ((void *)0)) > { > unsigned int offset = 0; > Elf_Data *needdata; > GElf_Shdr needshdrmem; > GElf_Shdr *needshdr; > > needdata = elf_getdata (needscn, ((void *)0)); > if (needdata == ((void *)0)) > return; > > needshdr = gelf_getshdr (needscn, &needshdrmem); > if (needshdr == ((void *)0)) > return; > > for (unsigned int cnt = 0; cnt < needshdr->sh_info; ++cnt) > { > GElf_Verneed needmem; > GElf_Verneed *need; > unsigned int auxoffset; > int cnt2; > > > need = gelf_getverneed (needdata, offset, &needmem); > if (need == ((void *)0)) > break; > > > auxoffset = offset + need->vn_aux; > for (cnt2 = need->vn_cnt; --cnt2 >= 0; ) > { > GElf_Vernaux auxmem; > GElf_Vernaux *aux; > > aux = gelf_getvernaux (needdata, auxoffset, &auxmem); > if (aux == ((void *)0)) > break; > > nvername = (((nvername)>((size_t) (aux->vna_other & 0x7fff)))?(nvername):((size_t) (aux->vna_other & 0x7fff))); > > > auxoffset += aux->vna_next; > } > > offset += need->vn_next; > } > } > > > ++nvername; > > > vername = (const char **) __builtin_alloca (nvername * sizeof (const char *)); > filename = (const char **) __builtin_alloca (nvername * sizeof (const char *)); > > > if (defscn != ((void *)0)) > { > > > unsigned int offset = 0; > Elf_Data *defdata; > GElf_Shdr defshdrmem; > GElf_Shdr *defshdr; > > defdata = elf_getdata (defscn, ((void *)0)); > if (defdata == ((void *)0)) > return; > > defshdr = gelf_getshdr (defscn, &defshdrmem); > if (defshdr == ((void *)0)) > return; > > for (unsigned int cnt = 0; cnt < defshdr->sh_info; ++cnt) > { > > > GElf_Verdef defmem; > GElf_Verdef *def = gelf_getverdef (defdata, offset, &defmem); > GElf_Verdaux auxmem; > GElf_Verdaux *aux = gelf_getverdaux (defdata, > offset + def->vd_aux, > &auxmem); > if (def == ((void *)0) || aux == ((void *)0)) > break; > > vername[def->vd_ndx & 0x7fff] > = elf_strptr (ebl->elf, defshdr->sh_link, aux->vda_name); > filename[def->vd_ndx & 0x7fff] = ((void *)0); > > offset += def->vd_next; > } > } > if (needscn != ((void *)0)) > { > unsigned int offset = 0; > > Elf_Data *needdata = elf_getdata (needscn, ((void *)0)); > GElf_Shdr needshdrmem; > GElf_Shdr *needshdr = gelf_getshdr (needscn, &needshdrmem); > if (needdata == ((void *)0) || needshdr == ((void *)0)) > return; > > for (unsigned int cnt = 0; cnt < needshdr->sh_info; ++cnt) > { > > GElf_Verneed needmem; > GElf_Verneed *need = gelf_getverneed (needdata, offset, > &needmem); > if (need == ((void *)0)) > break; > > > unsigned int auxoffset = offset + need->vn_aux; > for (int cnt2 = need->vn_cnt; --cnt2 >= 0; ) > { > GElf_Vernaux auxmem; > GElf_Vernaux *aux = gelf_getvernaux (needdata, auxoffset, > &auxmem); > if (aux == ((void *)0)) > break; > > vername[aux->vna_other & 0x7fff] > = elf_strptr (ebl->elf, needshdr->sh_link, aux->vna_name); > filename[aux->vna_other & 0x7fff] > = elf_strptr (ebl->elf, needshdr->sh_link, need->vn_file); > > auxoffset += aux->vna_next; > } > > offset += need->vn_next; > } > } > } > else > { > vername = ((void *)0); > nvername = 1; > filename = ((void *)0); > } > > GElf_Shdr glink_mem; > GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), > &glink_mem); > if (glink == ((void *)0)) > error (1, 0, dcgettext (((void *)0), "invalid sh_link value in section %Zu", __LC_MESSAGES), > elf_ndxscn (scn)); > > > printf (dcngettext (((void *)0), "\nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" "ll" "x" " Offset: %#08" "ll" "x" " Link to section: [%2u] '%s'", "\nVersion symbols section [%2u] '%s' contains %d entries:\n Addr: %#0*" "ll" "x" " Offset: %#08" "ll" "x" " Link to section: [%2u] '%s'", shdr->sh_size / shdr->sh_entsize, __LC_MESSAGES), > > > > > (unsigned int) elf_ndxscn (scn), > elf_strptr (ebl->elf, shstrndx, shdr->sh_name), > (int) (shdr->sh_size / shdr->sh_entsize), > class == 1 ? 10 : 18, shdr->sh_addr, > shdr->sh_offset, > (unsigned int) shdr->sh_link, > elf_strptr (ebl->elf, shstrndx, glink->sh_name)); > > > for (unsigned int cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) > { > if (cnt % 2 == 0) > printf ("\n %4d:", cnt); > > GElf_Versym symmem; > GElf_Versym *sym = gelf_getversym (data, cnt, &symmem); > if (sym == ((void *)0)) > break; > > switch (*sym) > { > ssize_t n; > case 0: > fputs_unlocked (dcgettext (((void *)0), " 0 *local* ", __LC_MESSAGES), > stdout); > break; > > case 1: > fputs_unlocked (dcgettext (((void *)0), " 1 *global* ", __LC_MESSAGES), > stdout); > break; > > default: > n = printf ("%4d%c%s", > *sym & 0x7fff, *sym & 0x8000 ? 'h' : ' ', > (unsigned int) (*sym & 0x7fff) < nvername > ? vername[*sym & 0x7fff] : "???"); > if ((unsigned int) (*sym & 0x7fff) < nvername > && filename[*sym & 0x7fff] != ((void *)0)) > n += printf ("(%s)", filename[*sym & 0x7fff]); > printf ("%*s", (((0)>(33 - (int) n))?(0):(33 - (int) n)), " "); > break; > } > } > putchar_unlocked ('\n'); >} > > > > >static void >handle_hash (Ebl *ebl) >{ > > size_t shstrndx; > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > Elf_Scn *scn = ((void *)0); > while ((scn = elf_nextscn (ebl->elf, scn)) != ((void *)0)) > { > > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > > if (shdr != ((void *)0) && shdr->sh_type == 5) > { > Elf_Data *data = elf_getdata (scn, ((void *)0)); > if (data == ((void *)0)) > { > error (0, 0, dcgettext (((void *)0), "cannot get data for section %d: %s", __LC_MESSAGES), > (int) elf_ndxscn (scn), elf_errmsg (-1)); > continue; > } > > Elf32_Word nbucket = ((Elf32_Word *) data->d_buf)[0]; > Elf32_Word nchain = ((Elf32_Word *) data->d_buf)[1]; > Elf32_Word *bucket = &((Elf32_Word *) data->d_buf)[2]; > Elf32_Word *chain = &((Elf32_Word *) data->d_buf)[2 + nbucket]; > > GElf_Shdr glink_mem; > GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, > shdr->sh_link), > &glink_mem); > if (glink == ((void *)0)) > { > error (0, 0, dcgettext (((void *)0), "invalid sh_link value in section %Zu", __LC_MESSAGES), > elf_ndxscn (scn)); > continue; > } > > printf (dcngettext (((void *)0), "\nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" "ll" "x" " Offset: %#08" "ll" "x" " Link to section: [%2u] '%s'\n", "\nHistogram for bucket list length in section [%2u] '%s' (total of %d buckets):\n Addr: %#0*" "ll" "x" " Offset: %#08" "ll" "x" " Link to section: [%2u] '%s'\n", nbucket, __LC_MESSAGES), > > > > > (unsigned int) elf_ndxscn (scn), > elf_strptr (ebl->elf, shstrndx, shdr->sh_name), > (int) nbucket, > gelf_getclass (ebl->elf) == 1 ? 10 : 18, > shdr->sh_addr, > shdr->sh_offset, > (unsigned int) shdr->sh_link, > elf_strptr (ebl->elf, shstrndx, glink->sh_name)); > > uint32_t *lengths = (uint32_t *) xcalloc (nbucket, > sizeof (uint32_t)); > > Elf32_Word maxlength = 0; > Elf32_Word nsyms = 0; > for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt) > if (bucket[cnt] != 0) > { > Elf32_Word inner = bucket[cnt]; > while (inner > 0 && inner < nchain) > { > ++nsyms; > if (maxlength < ++lengths[cnt]) > ++maxlength; > > inner = chain[inner]; > } > } > > uint32_t *counts = (uint32_t *) xcalloc (maxlength + 1, > sizeof (uint32_t)); > > for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt) > ++counts[lengths[cnt]]; > > if (nbucket > 0) > { > uint64_t success = 0; > > fputs_unlocked (dcgettext (((void *)0), " Length Number % of total Coverage\n", __LC_MESSAGES), stdout); > > printf (dcgettext (((void *)0), " 0 %6" "u" " %5.1f%%\n", __LC_MESSAGES), > counts[0], (counts[0] * 100.0) / nbucket); > > uint64_t nzero_counts = 0; > for (Elf32_Word cnt = 1; cnt <= maxlength; ++cnt) > { > nzero_counts += counts[cnt] * cnt; > printf (dcgettext (((void *)0), "%7d %6" "u" " %5.1f%% %5.1f%%\n", __LC_MESSAGES), > > (int) cnt, > counts[cnt], (counts[cnt] * 100.0) / nbucket, > (nzero_counts * 100.0) / nsyms); > } > > Elf32_Word acc = 0; > for (Elf32_Word cnt = 1; cnt <= maxlength; ++cnt) > { > acc += cnt; > success += counts[cnt] * acc; > } > > printf (dcgettext (((void *)0), " Average number of tests: successful lookup: %f\n unsuccessful lookup: %f\n", __LC_MESSAGES), > > > (double) success / (double) nzero_counts, > (double) nzero_counts / (double) nbucket); > } > > free (counts); > free (lengths); > } > } >} > > >static void >print_liblist (Ebl *ebl) >{ > > > Elf_Scn *scn = ((void *)0); > > > size_t shstrndx; > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > while ((scn = elf_nextscn (ebl->elf, scn)) != ((void *)0)) > { > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > > if (shdr != ((void *)0) && shdr->sh_type == 0x6ffffff7) > { > int nentries = shdr->sh_size / shdr->sh_entsize; > printf (dcngettext (((void *)0), "\nLibrary list section [%2zu] '%s' at offset %#0" "ll" "x" " contains %d entry:\n", "\nLibrary list section [%2zu] '%s' at offset %#0" "ll" "x" " contains %d entries:\n", nentries, __LC_MESSAGES), > > > > > elf_ndxscn (scn), > elf_strptr (ebl->elf, shstrndx, shdr->sh_name), > shdr->sh_offset, > nentries); > > Elf_Data *data = elf_getdata (scn, ((void *)0)); > if (data == ((void *)0)) > return; > > puts (dcgettext (((void *)0), " Library Time Stamp Checksum Version Flags", __LC_MESSAGES)); > > > for (int cnt = 0; cnt < nentries; ++cnt) > { > GElf_Lib lib_mem; > GElf_Lib *lib = gelf_getlib (data, cnt, &lib_mem); > if (lib == ((void *)0)) > continue; > > time_t t = (time_t) lib->l_time_stamp; > struct tm *tm = gmtime (&t); > if (tm == ((void *)0)) > continue; > > printf (" [%2d] %-29s %04u-%02u-%02uT%02u:%02u:%02u %08x %-7u %u\n", > cnt, elf_strptr (ebl->elf, shdr->sh_link, lib->l_name), > tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, > tm->tm_hour, tm->tm_min, tm->tm_sec, > (unsigned int) lib->l_checksum, > (unsigned int) lib->l_version, > (unsigned int) lib->l_flags); > } > } > } >} > > >static const char * >dwarf_tag_string (unsigned int tag) >{ > static const char *known_tags[] = > { > [DW_TAG_array_type] = "array_type", > [DW_TAG_class_type] = "class_type", > [DW_TAG_entry_point] = "entry_point", > [DW_TAG_enumeration_type] = "enumeration_type", > [DW_TAG_formal_parameter] = "formal_parameter", > [DW_TAG_imported_declaration] = "imported_declaration", > [DW_TAG_label] = "label", > [DW_TAG_lexical_block] = "lexical_block", > [DW_TAG_member] = "member", > [DW_TAG_pointer_type] = "pointer_type", > [DW_TAG_reference_type] = "reference_type", > [DW_TAG_compile_unit] = "compile_unit", > [DW_TAG_string_type] = "string_type", > [DW_TAG_structure_type] = "structure_type", > [DW_TAG_subroutine_type] = "subroutine_type", > [DW_TAG_typedef] = "typedef", > [DW_TAG_union_type] = "union_type", > [DW_TAG_unspecified_parameters] = "unspecified_parameters", > [DW_TAG_variant] = "variant", > [DW_TAG_common_block] = "common_block", > [DW_TAG_common_inclusion] = "common_inclusion", > [DW_TAG_inheritance] = "inheritance", > [DW_TAG_inlined_subroutine] = "inlined_subroutine", > [DW_TAG_module] = "module", > [DW_TAG_ptr_to_member_type] = "ptr_to_member_type", > [DW_TAG_set_type] = "set_type", > [DW_TAG_subrange_type] = "subrange_type", > [DW_TAG_with_stmt] = "with_stmt", > [DW_TAG_access_declaration] = "access_declaration", > [DW_TAG_base_type] = "base_type", > [DW_TAG_catch_block] = "catch_block", > [DW_TAG_const_type] = "const_type", > [DW_TAG_constant] = "constant", > [DW_TAG_enumerator] = "enumerator", > [DW_TAG_file_type] = "file_type", > [DW_TAG_friend] = "friend", > [DW_TAG_namelist] = "namelist", > [DW_TAG_namelist_item] = "namelist_item", > [DW_TAG_packed_type] = "packed_type", > [DW_TAG_subprogram] = "subprogram", > [DW_TAG_template_type_param] = "template_type_param", > [DW_TAG_template_value_param] = "template_value_param", > [DW_TAG_thrown_type] = "thrown_type", > [DW_TAG_try_block] = "try_block", > [DW_TAG_variant_part] = "variant_part", > [DW_TAG_variable] = "variable", > [DW_TAG_volatile_type] = "volatile_type", > [DW_TAG_dwarf_procedure] = "dwarf_procedure", > [DW_TAG_restrict_type] = "restrict_type", > [DW_TAG_interface_type] = "interface_type", > [DW_TAG_namespace] = "namespace", > [DW_TAG_imported_module] = "imported_module", > [DW_TAG_unspecified_type] = "unspecified_type", > [DW_TAG_partial_unit] = "partial_unit", > [DW_TAG_imported_unit] = "imported_unit", > [DW_TAG_unspecified_type] = "unspecified_type", > [DW_TAG_partial_unit] = "partial_unit", > [DW_TAG_imported_unit] = "imported_unit", > [DW_TAG_mutable_type] = "mutable_type", > }; > const unsigned int nknown_tags = (sizeof (known_tags) > / sizeof (known_tags[0])); > static char buf[40]; > const char *result = ((void *)0); > > if (tag < nknown_tags) > result = known_tags[tag]; > > if (result == ((void *)0)) > > switch (tag) > { > case DW_TAG_MIPS_loop: > result = "MIPS_loop"; > break; > > case DW_TAG_format_label: > result = "format_label"; > break; > > case DW_TAG_function_template: > result = "function_template"; > break; > > case DW_TAG_class_template: > result = "class_template"; > break; > > default: > if (tag < DW_TAG_lo_user) > snprintf (buf, sizeof buf, dcgettext (((void *)0), "unknown tag %hx", __LC_MESSAGES), tag); > else > snprintf (buf, sizeof buf, dcgettext (((void *)0), "unknown user tag %hx", __LC_MESSAGES), tag); > result = buf; > break; > } > > return result; >} > > >static const char * >dwarf_attr_string (unsigned int attrnum) >{ > static const char *known_attrs[] = > { > [DW_AT_sibling] = "sibling", > [DW_AT_location] = "location", > [DW_AT_name] = "name", > [DW_AT_ordering] = "ordering", > [DW_AT_subscr_data] = "subscr_data", > [DW_AT_byte_size] = "byte_size", > [DW_AT_bit_offset] = "bit_offset", > [DW_AT_bit_size] = "bit_size", > [DW_AT_element_list] = "element_list", > [DW_AT_stmt_list] = "stmt_list", > [DW_AT_low_pc] = "low_pc", > [DW_AT_high_pc] = "high_pc", > [DW_AT_language] = "language", > [DW_AT_member] = "member", > [DW_AT_discr] = "discr", > [DW_AT_discr_value] = "discr_value", > [DW_AT_visibility] = "visibility", > [DW_AT_import] = "import", > [DW_AT_string_length] = "string_length", > [DW_AT_common_reference] = "common_reference", > [DW_AT_comp_dir] = "comp_dir", > [DW_AT_const_value] = "const_value", > [DW_AT_containing_type] = "containing_type", > [DW_AT_default_value] = "default_value", > [DW_AT_inline] = "inline", > [DW_AT_is_optional] = "is_optional", > [DW_AT_lower_bound] = "lower_bound", > [DW_AT_producer] = "producer", > [DW_AT_prototyped] = "prototyped", > [DW_AT_return_addr] = "return_addr", > [DW_AT_start_scope] = "start_scope", > [DW_AT_stride_size] = "stride_size", > [DW_AT_upper_bound] = "upper_bound", > [DW_AT_abstract_origin] = "abstract_origin", > [DW_AT_accessibility] = "accessibility", > [DW_AT_address_class] = "address_class", > [DW_AT_artificial] = "artificial", > [DW_AT_base_types] = "base_types", > [DW_AT_calling_convention] = "calling_convention", > [DW_AT_count] = "count", > [DW_AT_data_member_location] = "data_member_location", > [DW_AT_decl_column] = "decl_column", > [DW_AT_decl_file] = "decl_file", > [DW_AT_decl_line] = "decl_line", > [DW_AT_declaration] = "declaration", > [DW_AT_discr_list] = "discr_list", > [DW_AT_encoding] = "encoding", > [DW_AT_external] = "external", > [DW_AT_frame_base] = "frame_base", > [DW_AT_friend] = "friend", > [DW_AT_identifier_case] = "identifier_case", > [DW_AT_macro_info] = "macro_info", > [DW_AT_namelist_items] = "namelist_items", > [DW_AT_priority] = "priority", > [DW_AT_segment] = "segment", > [DW_AT_specification] = "specification", > [DW_AT_static_link] = "static_link", > [DW_AT_type] = "type", > [DW_AT_use_location] = "use_location", > [DW_AT_variable_parameter] = "variable_parameter", > [DW_AT_virtuality] = "virtuality", > [DW_AT_vtable_elem_location] = "vtable_elem_location", > [DW_AT_allocated] = "allocated", > [DW_AT_associated] = "associated", > [DW_AT_data_location] = "data_location", > [DW_AT_stride] = "stride", > [DW_AT_entry_pc] = "entry_pc", > [DW_AT_use_UTF8] = "use_UTF8", > [DW_AT_extension] = "extension", > [DW_AT_ranges] = "ranges", > [DW_AT_trampoline] = "trampoline", > [DW_AT_call_column] = "call_column", > [DW_AT_call_file] = "call_file", > [DW_AT_call_line] = "call_line", > [DW_AT_description] = "description" > }; > const unsigned int nknown_attrs = (sizeof (known_attrs) > / sizeof (known_attrs[0])); > static char buf[40]; > const char *result = ((void *)0); > > if (attrnum < nknown_attrs) > result = known_attrs[attrnum]; > > if (result == ((void *)0)) > > switch (attrnum) > { > case DW_AT_MIPS_fde: > result = "MIPS_fde"; > break; > > case DW_AT_MIPS_loop_begin: > result = "MIPS_loop_begin"; > break; > > case DW_AT_MIPS_tail_loop_begin: > result = "MIPS_tail_loop_begin"; > break; > > case DW_AT_MIPS_epilog_begin: > result = "MIPS_epilog_begin"; > break; > > case DW_AT_MIPS_loop_unroll_factor: > result = "MIPS_loop_unroll_factor"; > break; > > case DW_AT_MIPS_software_pipeline_depth: > result = "MIPS_software_pipeline_depth"; > break; > > case DW_AT_MIPS_linkage_name: > result = "MIPS_linkage_name"; > break; > > case DW_AT_MIPS_stride: > result = "MIPS_stride"; > break; > > case DW_AT_MIPS_abstract_name: > result = "MIPS_abstract_name"; > break; > > case DW_AT_MIPS_clone_origin: > result = "MIPS_clone_origin"; > break; > > case DW_AT_MIPS_has_inlines: > result = "MIPS_has_inlines"; > break; > > case DW_AT_MIPS_stride_byte: > result = "MIPS_stride_byte"; > break; > > case DW_AT_MIPS_stride_elem: > result = "MIPS_stride_elem"; > break; > > case DW_AT_MIPS_ptr_dopetype: > result = "MIPS_ptr_dopetype"; > break; > > case DW_AT_MIPS_allocatable_dopetype: > result = "MIPS_allocatable_dopetype"; > break; > > case DW_AT_MIPS_assumed_shape_dopetype: > result = "MIPS_assumed_shape_dopetype"; > break; > > case DW_AT_MIPS_assumed_size: > result = "MIPS_assumed_size"; > break; > > case DW_AT_sf_names: > result = "sf_names"; > break; > > case DW_AT_src_info: > result = "src_info"; > break; > > case DW_AT_mac_info: > result = "mac_info"; > break; > > case DW_AT_src_coords: > result = "src_coords"; > break; > > case DW_AT_body_begin: > result = "body_begin"; > break; > > case DW_AT_body_end: > result = "body_end"; > break; > > default: > if (attrnum < DW_AT_lo_user) > snprintf (buf, sizeof buf, dcgettext (((void *)0), "unknown attribute %hx", __LC_MESSAGES), > attrnum); > else > snprintf (buf, sizeof buf, dcgettext (((void *)0), "unknown user attribute %hx", __LC_MESSAGES), > attrnum); > result = buf; > break; > } > > return result; >} > > >static const char * >dwarf_form_string (unsigned int form) >{ > static const char *known_forms[] = > { > [DW_FORM_addr] = "addr", > [DW_FORM_block2] = "block2", > [DW_FORM_block4] = "block4", > [DW_FORM_data2] = "data2", > [DW_FORM_data4] = "data4", > [DW_FORM_data8] = "data8", > [DW_FORM_string] = "string", > [DW_FORM_block] = "block", > [DW_FORM_block1] = "block1", > [DW_FORM_data1] = "data1", > [DW_FORM_flag] = "flag", > [DW_FORM_sdata] = "sdata", > [DW_FORM_strp] = "strp", > [DW_FORM_udata] = "udata", > [DW_FORM_ref_addr] = "ref_addr", > [DW_FORM_ref1] = "ref1", > [DW_FORM_ref2] = "ref2", > [DW_FORM_ref4] = "ref4", > [DW_FORM_ref8] = "ref8", > [DW_FORM_ref_udata] = "ref_udata", > [DW_FORM_indirect] = "indirect" > }; > const unsigned int nknown_forms = (sizeof (known_forms) > / sizeof (known_forms[0])); > static char buf[40]; > const char *result = ((void *)0); > > if (form < nknown_forms) > result = known_forms[form]; > > if (result == ((void *)0)) > snprintf (buf, sizeof buf, dcgettext (((void *)0), "unknown form %" "ll" "x", __LC_MESSAGES), > (uint64_t) form); > > return result; >} > > >static const char * >dwarf_lang_string (unsigned int lang) >{ > static const char *known[] = > { > [DW_LANG_C89] = "ISO C89", > [DW_LANG_C] = "C", > [DW_LANG_Ada83] = "Ada83", > [DW_LANG_C_plus_plus ] = "C++", > [DW_LANG_Cobol74] = "Cobol74", > [DW_LANG_Cobol85] = "Cobol85", > [DW_LANG_Fortran77] = "Fortran77", > [DW_LANG_Fortran90] = "Fortran90", > [DW_LANG_Pascal83] = "Pascal83", > [DW_LANG_Modula2] = "Modula2", > [DW_LANG_Java] = "Java", > [DW_LANG_C99] = "ISO C99", > [DW_LANG_Ada95] = "Ada95", > [DW_LANG_Fortran95] = "Fortran95", > [DW_LANG_PL1] = "PL1" > }; > > if (lang < sizeof (known) / sizeof (known[0])) > return known[lang]; > else if (lang == DW_LANG_Mips_Assembler) > > return "Assembler"; > > if (lang >= DW_LANG_lo_user && lang <= DW_LANG_hi_user) > { > static char buf[30]; > snprintf (buf, sizeof (buf), "lo_user+%u", lang - DW_LANG_lo_user); > return buf; > } > > return "???"; >} > > >static const char * >dwarf_inline_string (unsigned int code) >{ > static const char *known[] = > { > [DW_INL_not_inlined] = "not_inlined", > [DW_INL_inlined] = "inlined", > [DW_INL_declared_not_inlined] = "declared_not_inlined", > [DW_INL_declared_inlined] = "declared_inlined" > }; > > if (code < sizeof (known) / sizeof (known[0])) > return known[code]; > > return "???"; >} > > >static const char * >dwarf_encoding_string (unsigned int code) >{ > static const char *known[] = > { > [DW_ATE_void] = "void", > [DW_ATE_address] = "address", > [DW_ATE_boolean] = "boolean", > [DW_ATE_complex_float] = "complex_float", > [DW_ATE_float] = "float", > [DW_ATE_signed] = "signed", > [DW_ATE_signed_char] = "signed_char", > [DW_ATE_unsigned] = "unsigned", > [DW_ATE_unsigned_char] = "unsigned_char", > [DW_ATE_imaginary_float] = "imaginary_float" > }; > > if (code < sizeof (known) / sizeof (known[0])) > return known[code]; > > if (code >= DW_ATE_lo_user && code <= DW_ATE_hi_user) > { > static char buf[30]; > snprintf (buf, sizeof (buf), "lo_user+%u", code - DW_ATE_lo_user); > return buf; > } > > return "???"; >} > > >static const char * >dwarf_access_string (unsigned int code) >{ > static const char *known[] = > { > [DW_ACCESS_public] = "public", > [DW_ACCESS_protected] = "protected", > [DW_ACCESS_private] = "private" > }; > > if (code < sizeof (known) / sizeof (known[0])) > return known[code]; > > return "???"; >} > > >static const char * >dwarf_visibility_string (unsigned int code) >{ > static const char *known[] = > { > [DW_VIS_local] = "local", > [DW_VIS_exported] = "exported", > [DW_VIS_qualified] = "qualified" > }; > > if (code < sizeof (known) / sizeof (known[0])) > return known[code]; > > return "???"; >} > > >static const char * >dwarf_virtuality_string (unsigned int code) >{ > static const char *known[] = > { > [DW_VIRTUALITY_none] = "none", > [DW_VIRTUALITY_virtual] = "virtual", > [DW_VIRTUALITY_pure_virtual] = "pure_virtual" > }; > > if (code < sizeof (known) / sizeof (known[0])) > return known[code]; > > return "???"; >} > > >static const char * >dwarf_identifier_case_string (unsigned int code) >{ > static const char *known[] = > { > [DW_ID_case_sensitive] = "sensitive", > [DW_ID_up_case] = "up_case", > [DW_ID_down_case] = "down_case", > [DW_ID_case_insensitive] = "insensitive" > }; > > if (code < sizeof (known) / sizeof (known[0])) > return known[code]; > > return "???"; >} > > >static const char * >dwarf_calling_convention_string (unsigned int code) >{ > static const char *known[] = > { > [DW_CC_normal] = "normal", > [DW_CC_program] = "program", > [DW_CC_nocall] = "nocall", > }; > > if (code < sizeof (known) / sizeof (known[0])) > return known[code]; > > if (code >= DW_CC_lo_user && code <= DW_CC_hi_user) > { > static char buf[30]; > snprintf (buf, sizeof (buf), "lo_user+%u", code - DW_CC_lo_user); > return buf; > } > > return "???"; >} > > >static const char * >dwarf_ordering_string (unsigned int code) >{ > static const char *known[] = > { > [DW_ORD_row_major] = "row_major", > [DW_ORD_col_major] = "col_major" > }; > > if (code < sizeof (known) / sizeof (known[0])) > return known[code]; > > return "???"; >} > > >static const char * >dwarf_discr_list_string (unsigned int code) >{ > static const char *known[] = > { > [DW_DSC_label] = "label", > [DW_DSC_range] = "range" > }; > > if (code < sizeof (known) / sizeof (known[0])) > return known[code]; > > return "???"; >} > > >static void >print_ops (Dwarf *dbg, int indent, int indentrest, > unsigned int addrsize, Dwarf_Word len, const unsigned char *data) >{ > static const char *known[] = > { > [DW_OP_addr] = "addr", > [DW_OP_deref] = "deref", > [DW_OP_const1u] = "const1u", > [DW_OP_const1s] = "const1s", > [DW_OP_const2u] = "const2u", > [DW_OP_const2s] = "const2s", > [DW_OP_const4u] = "const4u", > [DW_OP_const4s] = "const4s", > [DW_OP_const8u] = "const8u", > [DW_OP_const8s] = "const8s", > [DW_OP_constu] = "constu", > [DW_OP_consts] = "consts", > [DW_OP_dup] = "dup", > [DW_OP_drop] = "drop", > [DW_OP_over] = "over", > [DW_OP_pick] = "pick", > [DW_OP_swap] = "swap", > [DW_OP_rot] = "rot", > [DW_OP_xderef] = "xderef", > [DW_OP_abs] = "abs", > [DW_OP_and] = "and", > [DW_OP_div] = "div", > [DW_OP_minus] = "minus", > [DW_OP_mod] = "mod", > [DW_OP_mul] = "mul", > [DW_OP_neg] = "neg", > [DW_OP_not] = "not", > [DW_OP_or] = "or", > [DW_OP_plus] = "plus", > [DW_OP_plus_uconst] = "plus_uconst", > [DW_OP_shl] = "shl", > [DW_OP_shr] = "shr", > [DW_OP_shra] = "shra", > [DW_OP_xor] = "xor", > [DW_OP_bra] = "bra", > [DW_OP_eq] = "eq", > [DW_OP_ge] = "ge", > [DW_OP_gt] = "gt", > [DW_OP_le] = "le", > [DW_OP_lt] = "lt", > [DW_OP_ne] = "ne", > [DW_OP_skip] = "skip", > [DW_OP_lit0] = "lit0", > [DW_OP_lit1] = "lit1", > [DW_OP_lit2] = "lit2", > [DW_OP_lit3] = "lit3", > [DW_OP_lit4] = "lit4", > [DW_OP_lit5] = "lit5", > [DW_OP_lit6] = "lit6", > [DW_OP_lit7] = "lit7", > [DW_OP_lit8] = "lit8", > [DW_OP_lit9] = "lit9", > [DW_OP_lit10] = "lit10", > [DW_OP_lit11] = "lit11", > [DW_OP_lit12] = "lit12", > [DW_OP_lit13] = "lit13", > [DW_OP_lit14] = "lit14", > [DW_OP_lit15] = "lit15", > [DW_OP_lit16] = "lit16", > [DW_OP_lit17] = "lit17", > [DW_OP_lit18] = "lit18", > [DW_OP_lit19] = "lit19", > [DW_OP_lit20] = "lit20", > [DW_OP_lit21] = "lit21", > [DW_OP_lit22] = "lit22", > [DW_OP_lit23] = "lit23", > [DW_OP_lit24] = "lit24", > [DW_OP_lit25] = "lit25", > [DW_OP_lit26] = "lit26", > [DW_OP_lit27] = "lit27", > [DW_OP_lit28] = "lit28", > [DW_OP_lit29] = "lit29", > [DW_OP_lit30] = "lit30", > [DW_OP_lit31] = "lit31", > [DW_OP_reg0] = "reg0", > [DW_OP_reg1] = "reg1", > [DW_OP_reg2] = "reg2", > [DW_OP_reg3] = "reg3", > [DW_OP_reg4] = "reg4", > [DW_OP_reg5] = "reg5", > [DW_OP_reg6] = "reg6", > [DW_OP_reg7] = "reg7", > [DW_OP_reg8] = "reg8", > [DW_OP_reg9] = "reg9", > [DW_OP_reg10] = "reg10", > [DW_OP_reg11] = "reg11", > [DW_OP_reg12] = "reg12", > [DW_OP_reg13] = "reg13", > [DW_OP_reg14] = "reg14", > [DW_OP_reg15] = "reg15", > [DW_OP_reg16] = "reg16", > [DW_OP_reg17] = "reg17", > [DW_OP_reg18] = "reg18", > [DW_OP_reg19] = "reg19", > [DW_OP_reg20] = "reg20", > [DW_OP_reg21] = "reg21", > [DW_OP_reg22] = "reg22", > [DW_OP_reg23] = "reg23", > [DW_OP_reg24] = "reg24", > [DW_OP_reg25] = "reg25", > [DW_OP_reg26] = "reg26", > [DW_OP_reg27] = "reg27", > [DW_OP_reg28] = "reg28", > [DW_OP_reg29] = "reg29", > [DW_OP_reg30] = "reg30", > [DW_OP_reg31] = "reg31", > [DW_OP_breg0] = "breg0", > [DW_OP_breg1] = "breg1", > [DW_OP_breg2] = "breg2", > [DW_OP_breg3] = "breg3", > [DW_OP_breg4] = "breg4", > [DW_OP_breg5] = "breg5", > [DW_OP_breg6] = "breg6", > [DW_OP_breg7] = "breg7", > [DW_OP_breg8] = "breg8", > [DW_OP_breg9] = "breg9", > [DW_OP_breg10] = "breg10", > [DW_OP_breg11] = "breg11", > [DW_OP_breg12] = "breg12", > [DW_OP_breg13] = "breg13", > [DW_OP_breg14] = "breg14", > [DW_OP_breg15] = "breg15", > [DW_OP_breg16] = "breg16", > [DW_OP_breg17] = "breg17", > [DW_OP_breg18] = "breg18", > [DW_OP_breg19] = "breg19", > [DW_OP_breg20] = "breg20", > [DW_OP_breg21] = "breg21", > [DW_OP_breg22] = "breg22", > [DW_OP_breg23] = "breg23", > [DW_OP_breg24] = "breg24", > [DW_OP_breg25] = "breg25", > [DW_OP_breg26] = "breg26", > [DW_OP_breg27] = "breg27", > [DW_OP_breg28] = "breg28", > [DW_OP_breg29] = "breg29", > [DW_OP_breg30] = "breg30", > [DW_OP_breg31] = "breg31", > [DW_OP_regx] = "regx", > [DW_OP_fbreg] = "fbreg", > [DW_OP_bregx] = "bregx", > [DW_OP_piece] = "piece", > [DW_OP_deref_size] = "deref_size", > [DW_OP_xderef_size] = "xderef_size", > [DW_OP_nop] = "nop", > [DW_OP_push_object_address] = "push_object_address", > [DW_OP_call2] = "call2", > [DW_OP_call4] = "call4", > [DW_OP_call_ref] = "call_ref", > }; > > Dwarf_Word offset = 0; > while (len-- > 0) > { > size_t op = *data++; > > switch (op) > { > case DW_OP_call_ref: > case DW_OP_addr:; > > Dwarf_Word addr; > if (addrsize == 4) > addr = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned int __v, __x = (*((const uint32_t *) (data))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint32_t *) (data))); > else > { > ((void) ((addrsize == 8) ? 0 : (__assert_fail ("addrsize == 8", "readelf.c", 3254, __PRETTY_FUNCTION__), 0))); > addr = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (*((const uint64_t *) (data)))) __r.__ll = ((((*((const uint64_t *) (data))) & 0xff00000000000000ull) >> 56) | (((*((const uint64_t *) (data))) & 0x00ff000000000000ull) >> 40) | (((*((const uint64_t *) (data))) & 0x0000ff0000000000ull) >> 24) | (((*((const uint64_t *) (data))) & 0x000000ff00000000ull) >> 8) | (((*((const uint64_t *) (data))) & 0x00000000ff000000ull) << 8) | (((*((const uint64_t *) (data))) & 0x0000000000ff0000ull) << 24) | (((*((const uint64_t *) (data))) & 0x000000000000ff00ull) << 40) | (((*((const uint64_t *) (data))) & 0x00000000000000ffull) << 56)); else { __w.__ll = (*((const uint64_t *) (data))); __r.__l[0] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[1]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __r.__l[1] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[0]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); } __r.__ll; })) : *((const uint64_t *) (data))); > } > data += addrsize; > len -= addrsize; > > printf ("%*s[%4" "ll" "u" "] %s %" "ll" "u" "\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", (uintmax_t) addr); > offset += 1 + addrsize; > break; > > case DW_OP_deref_size: > case DW_OP_xderef_size: > case DW_OP_pick: > case DW_OP_const1u: > printf ("%*s[%4" "ll" "u" "] %s %" "u" "\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", *((uint8_t *) data)); > ++data; > --len; > offset += 2; > break; > > case DW_OP_const2u: > printf ("%*s[%4" "ll" "u" "] %s %" "u" "\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned short int __v, __x = (*((const uint16_t *) (data))); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint16_t *) (data)))); > len -= 2; > data += 2; > offset += 3; > break; > > case DW_OP_const4u: > printf ("%*s[%4" "ll" "u" "] %s %" "u" "\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned int __v, __x = (*((const uint32_t *) (data))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint32_t *) (data)))); > len -= 4; > data += 4; > offset += 5; > break; > > case DW_OP_const8u: > printf ("%*s[%4" "ll" "u" "] %s %" "ll" "u" "\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (*((const uint64_t *) (data)))) __r.__ll = ((((*((const uint64_t *) (data))) & 0xff00000000000000ull) >> 56) | (((*((const uint64_t *) (data))) & 0x00ff000000000000ull) >> 40) | (((*((const uint64_t *) (data))) & 0x0000ff0000000000ull) >> 24) | (((*((const uint64_t *) (data))) & 0x000000ff00000000ull) >> 8) | (((*((const uint64_t *) (data))) & 0x00000000ff000000ull) << 8) | (((*((const uint64_t *) (data))) & 0x0000000000ff0000ull) << 24) | (((*((const uint64_t *) (data))) & 0x000000000000ff00ull) << 40) | (((*((const uint64_t *) (data))) & 0x00000000000000ffull) << 56)); else { __w.__ll = (*((const uint64_t *) (data))); __r.__l[0] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[1]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __r.__l[1] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[0]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); } __r.__ll; })) : *((const uint64_t *) (data)))); > len -= 8; > data += 8; > offset += 9; > break; > > case DW_OP_const1s: > printf ("%*s[%4" "ll" "u" "] %s %" "d" "\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", *((int8_t *) data)); > ++data; > --len; > offset += 2; > break; > > case DW_OP_const2s: > printf ("%*s[%4" "ll" "u" "] %s %" "d" "\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", (__builtin_expect ((dbg)->other_byte_order, 0) ? (int16_t) (__extension__ ({ register unsigned short int __v, __x = (*((const int16_t *) (data))); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const int16_t *) (data)))); > len -= 2; > data += 2; > offset += 3; > break; > > case DW_OP_const4s: > printf ("%*s[%4" "ll" "u" "] %s %" "d" "\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", (__builtin_expect ((dbg)->other_byte_order, 0) ? (int32_t) (__extension__ ({ register unsigned int __v, __x = (*((const int32_t *) (data))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const int32_t *) (data)))); > len -= 4; > data += 4; > offset += 5; > break; > > case DW_OP_const8s: > printf ("%*s[%4" "ll" "u" "] %s %" "ll" "d" "\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", (__builtin_expect ((dbg)->other_byte_order, 0) ? (int64_t) (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (*((const int64_t *) (data)))) __r.__ll = ((((*((const int64_t *) (data))) & 0xff00000000000000ull) >> 56) | (((*((const int64_t *) (data))) & 0x00ff000000000000ull) >> 40) | (((*((const int64_t *) (data))) & 0x0000ff0000000000ull) >> 24) | (((*((const int64_t *) (data))) & 0x000000ff00000000ull) >> 8) | (((*((const int64_t *) (data))) & 0x00000000ff000000ull) << 8) | (((*((const int64_t *) (data))) & 0x0000000000ff0000ull) << 24) | (((*((const int64_t *) (data))) & 0x000000000000ff00ull) << 40) | (((*((const int64_t *) (data))) & 0x00000000000000ffull) << 56)); else { __w.__ll = (*((const int64_t *) (data))); __r.__l[0] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[1]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __r.__l[1] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[0]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); } __r.__ll; })) : *((const int64_t *) (data)))); > len -= 8; > data += 8; > offset += 9; > break; > > case DW_OP_piece: > case DW_OP_regx: > case DW_OP_plus_uconst: > case DW_OP_constu:; > const unsigned char *start = data; > unsigned int uleb; > do { unsigned char __b; uleb = 0; __b = *(data)++; uleb |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; uleb = __libdw_get_uleb128 (uleb, 1, &(data)); } while (0); > printf ("%*s[%4" "ll" "u" "] %s %u\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", uleb); > len -= data - start; > offset += 1 + (data - start); > break; > > case DW_OP_fbreg: > case DW_OP_breg0 ... DW_OP_breg31: > case DW_OP_consts: > start = data; > unsigned int sleb; > do { unsigned char __b; int64_t _v = 0; __b = *(data)++; _v |= (uint64_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) { sleb = (_v << (64 - (0 * 7) - 7) >> (64 - (0 * 7) - 7)); break; } else do {} while (0); sleb = __libdw_get_sleb128 (_v, 1, &(data)); } while (0); > printf ("%*s[%4" "ll" "u" "] %s %d\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", sleb); > len -= data - start; > offset += 1 + (data - start); > break; > > case DW_OP_bregx: > start = data; > do { unsigned char __b; uleb = 0; __b = *(data)++; uleb |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; uleb = __libdw_get_uleb128 (uleb, 1, &(data)); } while (0); > do { unsigned char __b; int64_t _v = 0; __b = *(data)++; _v |= (uint64_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) { sleb = (_v << (64 - (0 * 7) - 7) >> (64 - (0 * 7) - 7)); break; } else do {} while (0); sleb = __libdw_get_sleb128 (_v, 1, &(data)); } while (0); > printf ("%*s[%4" "ll" "u" "] %s %u %d\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", uleb, sleb); > len -= data - start; > offset += 1 + (data - start); > break; > > case DW_OP_call2: > case DW_OP_call4: > case DW_OP_skip: > case DW_OP_bra: > printf ("%*s[%4" "ll" "u" "] %s %" "ll" "u" "\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???", > (uintmax_t) (offset + (__builtin_expect ((dbg)->other_byte_order, 0) ? (int16_t) (__extension__ ({ register unsigned short int __v, __x = (*((const int16_t *) (data))); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const int16_t *) (data))))); > len -= 2; > data += 2; > offset += 3; > break; > > default: > > printf ("%*s[%4" "ll" "u" "] %s\n", > indent, "", (uintmax_t) offset, > known[op] ?: "???"); > ++offset; > break; > } > > indent = indentrest; > } >} > > >static void >print_debug_abbrev_section (Ebl *ebl __attribute__ ((unused)), > GElf_Ehdr *ehdr __attribute__ ((unused)), > Elf_Scn *scn __attribute__ ((unused)), > GElf_Shdr *shdr, Dwarf *dbg) >{ > printf (dcgettext (((void *)0), "\nDWARF section '%s' at offset %#" "ll" "x" ":\n" " [ Code]\n", __LC_MESSAGES), > > ".debug_abbrev", (uint64_t) shdr->sh_offset); > > Dwarf_Off offset = 0; > while (offset < shdr->sh_size) > { > printf (dcgettext (((void *)0), "\nAbbreviation section at offset %" "ll" "u" ":\n", __LC_MESSAGES), > offset); > > while (1) > { > size_t length; > Dwarf_Abbrev abbrev; > > int res = dwarf_offabbrev (dbg, offset, &length, &abbrev); > if (res != 0) > { > if (res < 0) > { > printf (dcgettext (((void *)0), " *** error while reading abbreviation: %s\n", __LC_MESSAGES), > > dwarf_errmsg (-1)); > return; > } > > > ++offset; > break; > } > > > unsigned int code = dwarf_getabbrevcode (&abbrev); > unsigned int tag = dwarf_getabbrevtag (&abbrev); > int has_children = dwarf_abbrevhaschildren (&abbrev); > > printf (dcgettext (((void *)0), " [%5u] offset: %" "ll" "d" ", children: %s, tag: %s\n", __LC_MESSAGES), > > code, (int64_t) offset, > has_children ? dcgettext (((void *)0), "yes", __LC_MESSAGES) : dcgettext (((void *)0), "no", __LC_MESSAGES), > dwarf_tag_string (tag)); > > size_t cnt = 0; > unsigned int name; > unsigned int form; > Dwarf_Off enoffset; > while (dwarf_getabbrevattr (&abbrev, cnt, > &name, &form, &enoffset) == 0) > { > printf (" attr: %s, form: %s, offset: %#" "ll" "x" "\n", > dwarf_attr_string (name), dwarf_form_string (form), > (uint64_t) enoffset); > > ++cnt; > } > > offset += length; > } > } >} > > > > > >static void >print_debug_aranges_section (Ebl *ebl __attribute__ ((unused)), > GElf_Ehdr *ehdr __attribute__ ((unused)), > Elf_Scn *scn __attribute__ ((unused)), > GElf_Shdr *shdr, Dwarf *dbg) >{ > Dwarf_Aranges *aranges; > size_t cnt; > if (dwarf_getaranges (dbg, &aranges, &cnt) != 0) > { > error (0, 0, dcgettext (((void *)0), "cannot get .debug_aranges content: %s", __LC_MESSAGES), > dwarf_errmsg (-1)); > return; > } > > GElf_Shdr glink_mem; > GElf_Shdr *glink; > glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem); > if (glink == ((void *)0)) > { > error (0, 0, dcgettext (((void *)0), "invalid sh_link value in section %Zu", __LC_MESSAGES), > elf_ndxscn (scn)); > return; > } > > printf (dcngettext (((void *)0), "\nDWARF section '%s' at offset %#" "ll" "x" " contains %zu entry:\n", "\nDWARF section '%s' at offset %#" "ll" "x" " contains %zu entries:\n", cnt, __LC_MESSAGES), > > > > > ".debug_aranges", (uint64_t) shdr->sh_offset, cnt); > > > size_t tmp = cnt; > int digits = 1; > while (tmp >= 16) > { > ++digits; > tmp >>= 4; > } > > for (size_t n = 0; n < cnt; ++n) > { > Dwarf_Arange *runp = dwarf_onearange (aranges, n); > if (runp == ((void *)0)) > { > printf ("cannot get arange %zu: %s\n", n, dwarf_errmsg (-1)); > return; > } > > Dwarf_Addr start; > Dwarf_Word length; > Dwarf_Off offset; > > if (dwarf_getarangeinfo (runp, &start, &length, &offset) != 0) > printf (dcgettext (((void *)0), " [%*zu] ???\n", __LC_MESSAGES), digits, n); > else > printf (dcgettext (((void *)0), " [%*zu] start: %0#*" "ll" "x" ", length: %5" "ll" "u" ", CU DIE offset: %6" "ll" "d" "\n", __LC_MESSAGES), > > > digits, n, ehdr->e_ident[4] == 1 ? 10 : 18, > (uint64_t) start, (uint64_t) length, (int64_t) offset); > } >} > > >static void >print_debug_ranges_section (Ebl *ebl __attribute__ ((unused)), > GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr, > Dwarf *dbg) >{ > Elf_Data *data = elf_rawdata (scn, ((void *)0)); > > if (data == ((void *)0)) > { > error (0, 0, dcgettext (((void *)0), "cannot get .debug_ranges content: %s", __LC_MESSAGES), > elf_errmsg (-1)); > return; > } > > printf (dcgettext (((void *)0), "\nDWARF section '%s' at offset %#" "ll" "x" ":\n", __LC_MESSAGES), > > ".debug_ranges", (uint64_t) shdr->sh_offset); > > size_t address_size = ehdr->e_ident[4] == 1 ? 4 : 8; > > _Bool first = 1; > unsigned char *readp = data->d_buf; > while (readp < (unsigned char *) data->d_buf + data->d_size) > { > ptrdiff_t offset = readp - (unsigned char *) data->d_buf; > > if (data->d_size - offset < address_size * 2) > { > printf (" [%6tx] <INVALID DATA>\n", offset); > break; > } > > Dwarf_Addr begin; > Dwarf_Addr end; > if (address_size == 8) > { > begin = ({ uint64_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (*((const uint64_t *) (readp)))) __r.__ll = ((((*((const uint64_t *) (readp))) & 0xff00000000000000ull) >> 56) | (((*((const uint64_t *) (readp))) & 0x00ff000000000000ull) >> 40) | (((*((const uint64_t *) (readp))) & 0x0000ff0000000000ull) >> 24) | (((*((const uint64_t *) (readp))) & 0x000000ff00000000ull) >> 8) | (((*((const uint64_t *) (readp))) & 0x00000000ff000000ull) << 8) | (((*((const uint64_t *) (readp))) & 0x0000000000ff0000ull) << 24) | (((*((const uint64_t *) (readp))) & 0x000000000000ff00ull) << 40) | (((*((const uint64_t *) (readp))) & 0x00000000000000ffull) << 56)); else { __w.__ll = (*((const uint64_t *) (readp))); __r.__l[0] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[1]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __r.__l[1] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[0]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); } __r.__ll; })) : *((const uint64_t *) (readp))); readp = (__typeof (readp)) (((uintptr_t) (readp)) + 8); t_; }); > end = ({ uint64_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (*((const uint64_t *) (readp)))) __r.__ll = ((((*((const uint64_t *) (readp))) & 0xff00000000000000ull) >> 56) | (((*((const uint64_t *) (readp))) & 0x00ff000000000000ull) >> 40) | (((*((const uint64_t *) (readp))) & 0x0000ff0000000000ull) >> 24) | (((*((const uint64_t *) (readp))) & 0x000000ff00000000ull) >> 8) | (((*((const uint64_t *) (readp))) & 0x00000000ff000000ull) << 8) | (((*((const uint64_t *) (readp))) & 0x0000000000ff0000ull) << 24) | (((*((const uint64_t *) (readp))) & 0x000000000000ff00ull) << 40) | (((*((const uint64_t *) (readp))) & 0x00000000000000ffull) << 56)); else { __w.__ll = (*((const uint64_t *) (readp))); __r.__l[0] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[1]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __r.__l[1] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[0]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); } __r.__ll; })) : *((const uint64_t *) (readp))); readp = (__typeof (readp)) (((uintptr_t) (readp)) + 8); t_; }); > } > else > { > begin = ({ uint32_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned int __v, __x = (*((const uint32_t *) (readp))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint32_t *) (readp))); readp = (__typeof (readp)) (((uintptr_t) (readp)) + 4); t_; }); > end = ({ uint32_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned int __v, __x = (*((const uint32_t *) (readp))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint32_t *) (readp))); readp = (__typeof (readp)) (((uintptr_t) (readp)) + 4); t_; }); > if (begin == (Dwarf_Addr) (uint32_t) -1) > begin = (Dwarf_Addr) -1l; > } > > if (begin == (Dwarf_Addr) -1l) > printf (" [%6tx] base address %#0*" "ll" "x" "\n", offset, > 2 + (int) (address_size * 2), (uintmax_t) end); > else if (begin == 0 && end == 0) > first = 1; > else > { > > if (first) > printf (" [%6tx] %#0*" "ll" "x" "..%#0*" "ll" "x" "\n", offset, > 2 + (int) (address_size * 2), (uintmax_t) begin, > 2 + (int) (address_size * 2), (uintmax_t) end); > else > printf (" %#0*" "ll" "x" "..%#0*" "ll" "x" "\n", > 2 + (int) (address_size * 2), (uintmax_t) begin, > 2 + (int) (address_size * 2), (uintmax_t) end); > > first = 0; > } > } >} > > >static void >print_debug_frame_section (Ebl *ebl __attribute__ ((unused)), > GElf_Ehdr *ehdr __attribute__ ((unused)), > Elf_Scn *scn __attribute__ ((unused)), > GElf_Shdr *shdr __attribute__ ((unused)), > Dwarf *dbg __attribute__ ((unused))) >{ >} > > >struct attrcb_args >{ > Dwarf *dbg; > int level; > unsigned int addrsize; > Dwarf_Off cu_offset; >}; > > >static int >attr_callback (Dwarf_Attribute *attrp, void *arg) >{ > struct attrcb_args *cbargs = (struct attrcb_args *) arg; > const int level = cbargs->level; > > unsigned int attr = dwarf_whatattr (attrp); > if (__builtin_expect (attr == 0, 0)) > { > error (0, 0, dcgettext (((void *)0), "cannot get attribute code: %s", __LC_MESSAGES), > dwarf_errmsg (-1)); > return DWARF_CB_ABORT; > } > > unsigned int form = dwarf_whatform (attrp); > if (__builtin_expect (form == 0, 0)) > { > error (0, 0, dcgettext (((void *)0), "cannot get attribute form: %s", __LC_MESSAGES), > dwarf_errmsg (-1)); > return DWARF_CB_ABORT; > } > > switch (form) > { > case DW_FORM_addr:; > Dwarf_Addr addr; > if (__builtin_expect (dwarf_formaddr (attrp, &addr) != 0, 0)) > { > attrval_out: > error (0, 0, dcgettext (((void *)0), "cannot get attribute value: %s", __LC_MESSAGES), > dwarf_errmsg (-1)); > return DWARF_CB_ABORT; > } > printf (" %*s%-20s %#0*" "ll" "x" "\n", > (int) (level * 2), "", dwarf_attr_string (attr), > 2 + (int) (cbargs->addrsize * 2), (uintmax_t) addr); > break; > > case DW_FORM_indirect: > case DW_FORM_strp: > case DW_FORM_string:; > const char *str = dwarf_formstring (attrp); > if (__builtin_expect (str == ((void *)0), 0)) > goto attrval_out; > printf (" %*s%-20s \"%s\"\n", > (int) (level * 2), "", dwarf_attr_string (attr), str); > break; > > case DW_FORM_ref_addr: > case DW_FORM_ref_udata: > case DW_FORM_ref8: > case DW_FORM_ref4: > case DW_FORM_ref2: > case DW_FORM_ref1:; > Dwarf_Off ref; > if (__builtin_expect (dwarf_formref (attrp, &ref) != 0, 0)) > goto attrval_out; > > printf (" %*s%-20s [%6" "ll" "x" "]\n", > (int) (level * 2), "", dwarf_attr_string (attr), > (uintmax_t) (ref + cbargs->cu_offset)); > break; > > case DW_FORM_udata: > case DW_FORM_sdata: > case DW_FORM_data8: > case DW_FORM_data4: > case DW_FORM_data2: > case DW_FORM_data1:; > Dwarf_Word num; > if (__builtin_expect (dwarf_formudata (attrp, &num) != 0, 0)) > goto attrval_out; > > const char *valuestr = ((void *)0); > switch (attr) > { > case DW_AT_location: > case DW_AT_data_member_location: > case DW_AT_vtable_elem_location: > case DW_AT_string_length: > case DW_AT_use_location: > case DW_AT_frame_base: > case DW_AT_return_addr: > case DW_AT_static_link: > printf (" %*s%-20s location list [%6" "ll" "x" "]\n", > (int) (level * 2), "", dwarf_attr_string (attr), > (uintmax_t) num); > return DWARF_CB_OK; > > case DW_AT_ranges: > printf (" %*s%-20s range list [%6" "ll" "x" "]\n", > (int) (level * 2), "", dwarf_attr_string (attr), > (uintmax_t) num); > return DWARF_CB_OK; > > case DW_AT_language: > valuestr = dwarf_lang_string (num); > break; > case DW_AT_encoding: > valuestr = dwarf_encoding_string (num); > break; > case DW_AT_accessibility: > valuestr = dwarf_access_string (num); > break; > case DW_AT_visibility: > valuestr = dwarf_visibility_string (num); > break; > case DW_AT_virtuality: > valuestr = dwarf_virtuality_string (num); > break; > case DW_AT_identifier_case: > valuestr = dwarf_identifier_case_string (num); > break; > case DW_AT_calling_convention: > valuestr = dwarf_calling_convention_string (num); > break; > case DW_AT_inline: > valuestr = dwarf_inline_string (num); > break; > case DW_AT_ordering: > valuestr = dwarf_ordering_string (num); > break; > case DW_AT_discr_list: > valuestr = dwarf_discr_list_string (num); > break; > default: > > break; > } > > if (valuestr == ((void *)0)) > printf (" %*s%-20s %" "ll" "u" "\n", > (int) (level * 2), "", dwarf_attr_string (attr), > (uintmax_t) num); > else > printf (" %*s%-20s %s (%" "ll" "u" ")\n", > (int) (level * 2), "", dwarf_attr_string (attr), > valuestr, (uintmax_t) num); > break; > > case DW_FORM_flag:; > _Bool flag; > if (__builtin_expect (dwarf_formflag (attrp, &flag) != 0, 0)) > goto attrval_out; > > printf (" %*s%-20s %s\n", > (int) (level * 2), "", dwarf_attr_string (attr), > nl_langinfo (flag ? __YESSTR : __NOSTR)); > break; > > case DW_FORM_block4: > case DW_FORM_block2: > case DW_FORM_block1: > case DW_FORM_block:; > Dwarf_Block block; > if (__builtin_expect (dwarf_formblock (attrp, &block) != 0, 0)) > goto attrval_out; > > printf (" %*s%-20s %" "ll" "x" " byte block\n", > (int) (level * 2), "", dwarf_attr_string (attr), > (uintmax_t) block.length); > > switch (attr) > { > case DW_AT_location: > case DW_AT_data_member_location: > case DW_AT_vtable_elem_location: > case DW_AT_string_length: > case DW_AT_use_location: > case DW_AT_frame_base: > case DW_AT_return_addr: > case DW_AT_static_link: > print_ops (cbargs->dbg, 12 + level * 2, 12 + level * 2, > cbargs->addrsize, block.length, block.data); > break; > } > break; > > default: > printf (" %*s%-20s [form: %d] ???\n", > (int) (level * 2), "", dwarf_attr_string (attr), > (int) form); > break; > } > > return DWARF_CB_OK; >} > > >static void >print_debug_info_section (Ebl *ebl __attribute__ ((unused)), > GElf_Ehdr *ehdr __attribute__ ((unused)), > Elf_Scn *scn __attribute__ ((unused)), > GElf_Shdr *shdr, Dwarf *dbg) >{ > printf (dcgettext (((void *)0), "\nDWARF section '%s' at offset %#" "ll" "x" ":\n [Offset]\n", __LC_MESSAGES), > > ".debug_info", (uint64_t) shdr->sh_offset); > > > if (shdr->sh_size == 0) > return; > > int maxdies = 20; > Dwarf_Die *dies = (Dwarf_Die *) xmalloc (maxdies * sizeof (Dwarf_Die)); > > Dwarf_Off offset = 0; > > > size_t cuhl; > > Dwarf_Off abbroffset; > uint8_t addrsize; > uint8_t offsize; > Dwarf_Off nextcu; > next_cu: > if (dwarf_nextcu (dbg, offset, &nextcu, &cuhl, &abbroffset, &addrsize, > &offsize) != 0) > goto do_return; > > printf (dcgettext (((void *)0), " Compilation unit at offset %" "ll" "u" ":\n" " Version: %" "u" ", Abbreviation section offset: %" "ll" "u" ", Address size: %" "u" ", Offset size: %" "u" "\n", __LC_MESSAGES), > > > (uint64_t) offset, 2, abbroffset, addrsize, offsize); > > > struct attrcb_args args; > args.dbg = dbg; > args.addrsize = addrsize; > args.cu_offset = offset; > > offset += cuhl; > > int level = 0; > > if (__builtin_expect (dwarf_offdie (dbg, offset, &dies[level]) == ((void *)0), 0)) > { > error (0, 0, dcgettext (((void *)0), "cannot get DIE at offset %" "ll" "u" " in section '%s': %s", __LC_MESSAGES), > > (uint64_t) offset, ".debug_info", dwarf_errmsg (-1)); > goto do_return; > } > > do > { > offset = dwarf_dieoffset (&dies[level]); > if (offset == ~0ul) > { > error (0, 0, dcgettext (((void *)0), "cannot get DIE offset: %s", __LC_MESSAGES), > dwarf_errmsg (-1)); > goto do_return; > } > > int tag = dwarf_tag (&dies[level]); > if (tag == DW_TAG_invalid) > { > error (0, 0, dcgettext (((void *)0), "cannot get tag of DIE at offset %" "ll" "u" " in section '%s': %s", __LC_MESSAGES), > > (uint64_t) offset, ".debug_info", dwarf_errmsg (-1)); > goto do_return; > } > > > const char *tagstr = dwarf_tag_string (tag); ># 3983 "readelf.c" > printf (" [%6" "ll" "x" "] %*s%s\n", > (uint64_t) offset, (int) (level * 2), "", tagstr); > > > args.level = level; > (void) dwarf_getattrs (&dies[level], attr_callback, &args, 0); > > > if (level + 1 == maxdies) > dies = (Dwarf_Die *) xrealloc (dies, > (maxdies += 10) > * sizeof (Dwarf_Die)); > > int res = dwarf_child (&dies[level], &dies[level + 1]); > if (res > 0) > { > while ((res = dwarf_siblingof (&dies[level], &dies[level])) == 1) > if (level-- == 0) > break; > > if (res == -1) > { > error (0, 0, dcgettext (((void *)0), "cannot get next DIE: %s\n", __LC_MESSAGES), > dwarf_errmsg (-1)); > goto do_return; > } > } > else if (__builtin_expect (res < 0, 0)) > { > error (0, 0, dcgettext (((void *)0), "cannot get next DIE: %s", __LC_MESSAGES), > dwarf_errmsg (-1)); > goto do_return; > } > else > ++level; > } > while (level >= 0); > > offset = nextcu; > if (offset != 0) > goto next_cu; > > do_return: > free (dies); >} > > >static void >print_debug_line_section (Ebl *ebl, GElf_Ehdr *ehdr __attribute__ ((unused)), > Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) >{ > printf (dcgettext (((void *)0), "\nDWARF section '%s' at offset %#" "ll" "x" ":\n", __LC_MESSAGES), > > ".debug_line", (uint64_t) shdr->sh_offset); > > if (shdr->sh_size == 0) > return; > > > > Elf_Data *data = elf_getdata (scn, ((void *)0)); > if (data == ((void *)0) || data->d_buf == ((void *)0)) > { > error (0, 0, dcgettext (((void *)0), "cannot get line data section data: %s", __LC_MESSAGES), > elf_errmsg (-1)); > return; > } > > const unsigned char *linep = (const unsigned char *) data->d_buf; > const unsigned char *lineendp; > > while (linep > < (lineendp = (const unsigned char *) data->d_buf + data->d_size)) > { > size_t start_offset = linep - (const unsigned char *) data->d_buf; > > printf (dcgettext (((void *)0), "\nTable at offset %Zu:\n", __LC_MESSAGES), start_offset); > > Dwarf_Word unit_length = ({ uint32_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned int __v, __x = (*((const uint32_t *) (linep))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint32_t *) (linep))); linep = (__typeof (linep)) (((uintptr_t) (linep)) + 4); t_; }); > unsigned int length = 4; > if (__builtin_expect (unit_length == 0xffffffff, 0)) > { > if (__builtin_expect (linep + 8 > lineendp, 0)) > { > invalid_data: > error (0, 0, dcgettext (((void *)0), "invalid data in section [%zu] '%s'", __LC_MESSAGES), > elf_ndxscn (scn), ".debug_line"); > return; > } > unit_length = ({ uint64_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (*((const uint64_t *) (linep)))) __r.__ll = ((((*((const uint64_t *) (linep))) & 0xff00000000000000ull) >> 56) | (((*((const uint64_t *) (linep))) & 0x00ff000000000000ull) >> 40) | (((*((const uint64_t *) (linep))) & 0x0000ff0000000000ull) >> 24) | (((*((const uint64_t *) (linep))) & 0x000000ff00000000ull) >> 8) | (((*((const uint64_t *) (linep))) & 0x00000000ff000000ull) << 8) | (((*((const uint64_t *) (linep))) & 0x0000000000ff0000ull) << 24) | (((*((const uint64_t *) (linep))) & 0x000000000000ff00ull) << 40) | (((*((const uint64_t *) (linep))) & 0x00000000000000ffull) << 56)); else { __w.__ll = (*((const uint64_t *) (linep))); __r.__l[0] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[1]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __r.__l[1] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[0]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); } __r.__ll; })) : *((const uint64_t *) (linep))); linep = (__typeof (linep)) (((uintptr_t) (linep)) + 8); t_; }); > length = 8; > } > > > if (unit_length < 2 + length + 5 * 1 > || __builtin_expect (linep + unit_length > lineendp, 0)) > goto invalid_data; > lineendp = linep + unit_length; > > > uint_fast16_t version = ({ uint16_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned short int __v, __x = (*((const uint16_t *) (linep))); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint16_t *) (linep))); linep = (__typeof (linep)) (((uintptr_t) (linep)) + 2); t_; }); > > > Dwarf_Word header_length; > if (length == 4) > header_length = ({ uint32_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned int __v, __x = (*((const uint32_t *) (linep))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint32_t *) (linep))); linep = (__typeof (linep)) (((uintptr_t) (linep)) + 4); t_; }); > else > header_length = ({ uint64_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (*((const uint64_t *) (linep)))) __r.__ll = ((((*((const uint64_t *) (linep))) & 0xff00000000000000ull) >> 56) | (((*((const uint64_t *) (linep))) & 0x00ff000000000000ull) >> 40) | (((*((const uint64_t *) (linep))) & 0x0000ff0000000000ull) >> 24) | (((*((const uint64_t *) (linep))) & 0x000000ff00000000ull) >> 8) | (((*((const uint64_t *) (linep))) & 0x00000000ff000000ull) << 8) | (((*((const uint64_t *) (linep))) & 0x0000000000ff0000ull) << 24) | (((*((const uint64_t *) (linep))) & 0x000000000000ff00ull) << 40) | (((*((const uint64_t *) (linep))) & 0x00000000000000ffull) << 56)); else { __w.__ll = (*((const uint64_t *) (linep))); __r.__l[0] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[1]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __r.__l[1] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[0]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); } __r.__ll; })) : *((const uint64_t *) (linep))); linep = (__typeof (linep)) (((uintptr_t) (linep)) + 8); t_; }); > > > > uint_fast8_t minimum_instr_len = *linep++; > > > > uint_fast8_t default_is_stmt = *linep++; > > > int_fast8_t line_base = *((const int_fast8_t *) linep); > ++linep; > > > uint_fast8_t line_range = *linep++; > > > uint_fast8_t opcode_base = *linep++; > > > printf (dcgettext (((void *)0), "\n" " Length: %" "ll" "u" "\n" " DWARF version: %" "u" "\n" " Prologue length: %" "ll" "u" "\n" " Minimum instruction length: %" "u" "\n" " Initial value if '%s': %" "u" "\n" " Line base: %" "d" "\n" " Line range: %" "u" "\n" " Opcode base: %" "u" "\n" "\n" "Opcodes:\n", __LC_MESSAGES), ># 4122 "readelf.c" > (uint64_t) unit_length, version, (uint64_t) header_length, > minimum_instr_len, "is_stmt", default_is_stmt, line_base, > line_range, opcode_base); > > if (__builtin_expect (linep + opcode_base - 1 >= lineendp, 0)) > goto invalid_data; > int opcode_base_l10 = 1; > unsigned int tmp = opcode_base; > while (tmp > 10) > { > tmp /= 10; > ++opcode_base_l10; > } > const uint8_t *standard_opcode_lengths = linep - 1; > for (uint_fast8_t cnt = 1; cnt < opcode_base; ++cnt) > printf (dcngettext (((void *)0), " [%*" "u" "] %hhu argument\n", " [%*" "u" "] %hhu arguments\n", (int) linep[cnt - 1], __LC_MESSAGES), > > > opcode_base_l10, cnt, linep[cnt - 1]); > linep += opcode_base - 1; > if (__builtin_expect (linep >= lineendp, 0)) > goto invalid_data; > > puts (dcgettext (((void *)0), "\nDirectory table:", __LC_MESSAGES)); > while (*linep != 0) > { > unsigned char *endp = memchr (linep, '\0', lineendp - linep); > if (endp == ((void *)0)) > goto invalid_data; > > printf (" %s\n", (char *) linep); > > linep = endp + 1; > } > > ++linep; > > if (__builtin_expect (linep >= lineendp, 0)) > goto invalid_data; > puts (dcgettext (((void *)0), "\nFile name table:\n" " Entry Dir Time Size Name", __LC_MESSAGES)); > > for (unsigned int cnt = 1; *linep != 0; ++cnt) > { > > char *fname = (char *) linep; > unsigned char *endp = memchr (fname, '\0', lineendp - linep); > if (endp == ((void *)0)) > goto invalid_data; > linep = endp + 1; > > > unsigned int diridx; > do { unsigned char __b; diridx = 0; __b = *(linep)++; diridx |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; diridx = __libdw_get_uleb128 (diridx, 1, &(linep)); } while (0); > > > unsigned int mtime; > do { unsigned char __b; mtime = 0; __b = *(linep)++; mtime |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; mtime = __libdw_get_uleb128 (mtime, 1, &(linep)); } while (0); > > > unsigned int fsize; > do { unsigned char __b; fsize = 0; __b = *(linep)++; fsize |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; fsize = __libdw_get_uleb128 (fsize, 1, &(linep)); } while (0); > > printf (" %-5u %-5u %-9u %-9u %s\n", > cnt, diridx, mtime, fsize, fname); > } > > ++linep; > > puts (dcgettext (((void *)0), "\nLine number statements:", __LC_MESSAGES)); > Dwarf_Word address = 0; > size_t line = 1; > uint_fast8_t is_stmt = default_is_stmt; > > > size_t address_size > = elf_getident (ebl->elf, ((void *)0))[4] == 1 ? 4 : 8; > > > Dwarf_Off cuoffset; > Dwarf_Off ncuoffset = 0; > size_t hsize; > while (dwarf_nextcu (dbg, cuoffset = ncuoffset, &ncuoffset, &hsize, > ((void *)0), ((void *)0), ((void *)0)) == 0) > { > Dwarf_Die cudie; > if (dwarf_offdie (dbg, cuoffset + hsize, &cudie) == ((void *)0)) > continue; > Dwarf_Attribute stmt_list; > if (dwarf_attr (&cudie, DW_AT_stmt_list, &stmt_list) == ((void *)0)) > continue; > Dwarf_Word lineoff; > if (dwarf_formudata (&stmt_list, &lineoff) != 0) > continue; > if (lineoff == start_offset) > { > > address_size = cudie.cu->address_size; > break; > } > } > > while (linep < lineendp) > { > unsigned int u128; > int s128; > > > unsigned int opcode = *linep++; > > > if (__builtin_expect (opcode >= opcode_base, 1)) > { > > > > > > > int line_increment = (line_base > + (opcode - opcode_base) % line_range); > unsigned int address_increment = (minimum_instr_len > * ((opcode - opcode_base) > / line_range)); > > > line += line_increment; > address += address_increment; > > printf (dcgettext (((void *)0), " special opcode %u: address+%u = %#" "ll" "x" ", line%+d = %zu\n", __LC_MESSAGES), > > opcode, address_increment, (uint64_t) address, > line_increment, line); > } > else if (opcode == 0) > { > > if (__builtin_expect (linep + 2 > lineendp, 0)) > goto invalid_data; > > > unsigned int len = *linep++; > > if (__builtin_expect (linep + len > lineendp, 0)) > goto invalid_data; > > > opcode = *linep++; > > printf (dcgettext (((void *)0), " extended opcode %u: ", __LC_MESSAGES), opcode); > > switch (opcode) > { > case DW_LNE_end_sequence: > puts (dcgettext (((void *)0), "end of sequence", __LC_MESSAGES)); > > > address = 0; > line = 1; > is_stmt = default_is_stmt; > break; > > case DW_LNE_set_address: > if (address_size == 4) > address = ({ uint32_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned int __v, __x = (*((const uint32_t *) (linep))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint32_t *) (linep))); linep = (__typeof (linep)) (((uintptr_t) (linep)) + 4); t_; }); > else > address = ({ uint64_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (*((const uint64_t *) (linep)))) __r.__ll = ((((*((const uint64_t *) (linep))) & 0xff00000000000000ull) >> 56) | (((*((const uint64_t *) (linep))) & 0x00ff000000000000ull) >> 40) | (((*((const uint64_t *) (linep))) & 0x0000ff0000000000ull) >> 24) | (((*((const uint64_t *) (linep))) & 0x000000ff00000000ull) >> 8) | (((*((const uint64_t *) (linep))) & 0x00000000ff000000ull) << 8) | (((*((const uint64_t *) (linep))) & 0x0000000000ff0000ull) << 24) | (((*((const uint64_t *) (linep))) & 0x000000000000ff00ull) << 40) | (((*((const uint64_t *) (linep))) & 0x00000000000000ffull) << 56)); else { __w.__ll = (*((const uint64_t *) (linep))); __r.__l[0] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[1]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __r.__l[1] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[0]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); } __r.__ll; })) : *((const uint64_t *) (linep))); linep = (__typeof (linep)) (((uintptr_t) (linep)) + 8); t_; }); > printf (dcgettext (((void *)0), "set address to %#" "ll" "x" "\n", __LC_MESSAGES), > (uint64_t) address); > break; > > case DW_LNE_define_file: > { > char *fname = (char *) linep; > unsigned char *endp = memchr (linep, '\0', > lineendp - linep); > if (endp == ((void *)0)) > goto invalid_data; > linep = endp + 1; > > unsigned int diridx; > do { unsigned char __b; diridx = 0; __b = *(linep)++; diridx |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; diridx = __libdw_get_uleb128 (diridx, 1, &(linep)); } while (0); > Dwarf_Word mtime; > do { unsigned char __b; mtime = 0; __b = *(linep)++; mtime |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; mtime = __libdw_get_uleb128 (mtime, 1, &(linep)); } while (0); > Dwarf_Word filelength; > do { unsigned char __b; filelength = 0; __b = *(linep)++; filelength |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; filelength = __libdw_get_uleb128 (filelength, 1, &(linep)); } while (0); > > printf (dcgettext (((void *)0), "define new file: dir=%u, mtime=%" "ll" "u" ", length=%" "ll" "u" ", name=%s\n", __LC_MESSAGES), > > diridx, (uint64_t) mtime, (uint64_t) filelength, > fname); > } > break; > > default: > > puts (dcgettext (((void *)0), "unknown opcode", __LC_MESSAGES)); > linep += len - 1; > break; > } > } > else if (opcode <= DW_LNS_set_epilogue_begin) > { > > switch (opcode) > { > case DW_LNS_copy: > > puts (dcgettext (((void *)0), " copy", __LC_MESSAGES)); > break; > > case DW_LNS_advance_pc: > > > do { unsigned char __b; u128 = 0; __b = *(linep)++; u128 |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; u128 = __libdw_get_uleb128 (u128, 1, &(linep)); } while (0); > address += minimum_instr_len * u128; > printf (dcgettext (((void *)0), " advance address by %u to %#" "ll" "x" "\n", __LC_MESSAGES), > > u128, (uint64_t) address); > break; > > case DW_LNS_advance_line: > > > do { unsigned char __b; int64_t _v = 0; __b = *(linep)++; _v |= (uint64_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) { s128 = (_v << (64 - (0 * 7) - 7) >> (64 - (0 * 7) - 7)); break; } else do {} while (0); s128 = __libdw_get_sleb128 (_v, 1, &(linep)); } while (0); > line += s128; > printf (dcgettext (((void *)0), " advance line by constant %d to %" "ll" "d" "\n", __LC_MESSAGES), > > s128, (int64_t) line); > break; > > case DW_LNS_set_file: > > do { unsigned char __b; u128 = 0; __b = *(linep)++; u128 |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; u128 = __libdw_get_uleb128 (u128, 1, &(linep)); } while (0); > printf (dcgettext (((void *)0), " set file to %" "ll" "u" "\n", __LC_MESSAGES), > (uint64_t) u128); > break; > > case DW_LNS_set_column: > > if (__builtin_expect (standard_opcode_lengths[opcode] != 1, 0)) > goto invalid_data; > > do { unsigned char __b; u128 = 0; __b = *(linep)++; u128 |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; u128 = __libdw_get_uleb128 (u128, 1, &(linep)); } while (0); > printf (dcgettext (((void *)0), " set column to %" "ll" "u" "\n", __LC_MESSAGES), > (uint64_t) u128); > break; > > case DW_LNS_negate_stmt: > > is_stmt = 1 - is_stmt; > printf (dcgettext (((void *)0), " set '%s' to %" "u" "\n", __LC_MESSAGES), > "is_stmt", is_stmt); > break; > > case DW_LNS_set_basic_block: > > puts (dcgettext (((void *)0), " set basic block flag", __LC_MESSAGES)); > break; > > case DW_LNS_const_add_pc: > > u128 = (minimum_instr_len > * ((255 - opcode_base) / line_range)); > address += u128; > printf (dcgettext (((void *)0), " advance address by constant %u to %#" "ll" "x" "\n", __LC_MESSAGES), > > u128, (uint64_t) address); > break; > > case DW_LNS_fixed_advance_pc: > > > if (__builtin_expect (standard_opcode_lengths[opcode] != 1, 0)) > goto invalid_data; > > u128 = ({ uint16_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned short int __v, __x = (*((const uint16_t *) (linep))); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint16_t *) (linep))); linep = (__typeof (linep)) (((uintptr_t) (linep)) + 2); t_; }); > address += u128; > printf (dcgettext (((void *)0), " advance address by fixed value %u to %#" "ll" "x" "\n", __LC_MESSAGES), > > u128, (uint64_t) address); > break; > > case DW_LNS_set_prologue_end: > > puts (dcgettext (((void *)0), " set prologue end flag", __LC_MESSAGES)); > break; > > case DW_LNS_set_epilogue_begin: > > puts (dcgettext (((void *)0), " set epilogue begin flag", __LC_MESSAGES)); > break; > } > } > else > { > > > > printf (dcngettext (((void *)0), " unknown opcode with %" "u" " parameter:", " unknown opcode with %" "u" " parameters:", standard_opcode_lengths[opcode], __LC_MESSAGES), > > > standard_opcode_lengths[opcode]); > for (int n = standard_opcode_lengths[opcode]; n > 0; --n) > { > do { unsigned char __b; u128 = 0; __b = *(linep)++; u128 |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; u128 = __libdw_get_uleb128 (u128, 1, &(linep)); } while (0); > if (n != standard_opcode_lengths[opcode]) > putc_unlocked (',', stdout); > printf (" %u", u128); > } > > > continue; > } > } > } > > > ((void) ((elf_getdata (scn, data) == ((void *)0)) ? 0 : (__assert_fail ("elf_getdata (scn, data) == ((void *)0)", "readelf.c", 4439, __PRETTY_FUNCTION__), 0))); >} > > >static void >print_debug_loc_section (Ebl *ebl __attribute__ ((unused)), > GElf_Ehdr *ehdr __attribute__ ((unused)), > Elf_Scn *scn __attribute__ ((unused)), > GElf_Shdr *shdr, > Dwarf *dbg __attribute__ ((unused))) >{ > Elf_Data *data = elf_rawdata (scn, ((void *)0)); > > if (data == ((void *)0)) > { > error (0, 0, dcgettext (((void *)0), "cannot get .debug_loc content: %s", __LC_MESSAGES), > elf_errmsg (-1)); > return; > } > > printf (dcgettext (((void *)0), "\nDWARF section '%s' at offset %#" "ll" "x" ":\n", __LC_MESSAGES), > > ".debug_loc", (uint64_t) shdr->sh_offset); > > size_t address_size = ehdr->e_ident[4] == 1 ? 4 : 8; > > _Bool first = 1; > unsigned char *readp = data->d_buf; > while (readp < (unsigned char *) data->d_buf + data->d_size) > { > ptrdiff_t offset = readp - (unsigned char *) data->d_buf; > > if (data->d_size - offset < address_size * 2) > { > printf (" [%6tx] <INVALID DATA>\n", offset); > break; > } > > Dwarf_Addr begin; > Dwarf_Addr end; > if (address_size == 8) > { > begin = ({ uint64_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (*((const uint64_t *) (readp)))) __r.__ll = ((((*((const uint64_t *) (readp))) & 0xff00000000000000ull) >> 56) | (((*((const uint64_t *) (readp))) & 0x00ff000000000000ull) >> 40) | (((*((const uint64_t *) (readp))) & 0x0000ff0000000000ull) >> 24) | (((*((const uint64_t *) (readp))) & 0x000000ff00000000ull) >> 8) | (((*((const uint64_t *) (readp))) & 0x00000000ff000000ull) << 8) | (((*((const uint64_t *) (readp))) & 0x0000000000ff0000ull) << 24) | (((*((const uint64_t *) (readp))) & 0x000000000000ff00ull) << 40) | (((*((const uint64_t *) (readp))) & 0x00000000000000ffull) << 56)); else { __w.__ll = (*((const uint64_t *) (readp))); __r.__l[0] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[1]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __r.__l[1] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[0]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); } __r.__ll; })) : *((const uint64_t *) (readp))); readp = (__typeof (readp)) (((uintptr_t) (readp)) + 8); t_; }); > end = ({ uint64_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (*((const uint64_t *) (readp)))) __r.__ll = ((((*((const uint64_t *) (readp))) & 0xff00000000000000ull) >> 56) | (((*((const uint64_t *) (readp))) & 0x00ff000000000000ull) >> 40) | (((*((const uint64_t *) (readp))) & 0x0000ff0000000000ull) >> 24) | (((*((const uint64_t *) (readp))) & 0x000000ff00000000ull) >> 8) | (((*((const uint64_t *) (readp))) & 0x00000000ff000000ull) << 8) | (((*((const uint64_t *) (readp))) & 0x0000000000ff0000ull) << 24) | (((*((const uint64_t *) (readp))) & 0x000000000000ff00ull) << 40) | (((*((const uint64_t *) (readp))) & 0x00000000000000ffull) << 56)); else { __w.__ll = (*((const uint64_t *) (readp))); __r.__l[0] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[1]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __r.__l[1] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[0]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); } __r.__ll; })) : *((const uint64_t *) (readp))); readp = (__typeof (readp)) (((uintptr_t) (readp)) + 8); t_; }); > } > else > { > begin = ({ uint32_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned int __v, __x = (*((const uint32_t *) (readp))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint32_t *) (readp))); readp = (__typeof (readp)) (((uintptr_t) (readp)) + 4); t_; }); > end = ({ uint32_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned int __v, __x = (*((const uint32_t *) (readp))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint32_t *) (readp))); readp = (__typeof (readp)) (((uintptr_t) (readp)) + 4); t_; }); > if (begin == (Dwarf_Addr) (uint32_t) -1) > begin = (Dwarf_Addr) -1l; > } > > if (begin == (Dwarf_Addr) -1l) > printf (" [%6tx] base address %#0*" "ll" "x" "\n", offset, > 2 + (int) (address_size * 2), (uintmax_t) end); > else if (begin == 0 && end == 0) > first = 1; > else > { > > uint_fast16_t len = ({ uint16_t t_ = (__builtin_expect ((dbg)->other_byte_order, 0) ? (__extension__ ({ register unsigned short int __v, __x = (*((const uint16_t *) (readp))); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })) : *((const uint16_t *) (readp))); readp = (__typeof (readp)) (((uintptr_t) (readp)) + 2); t_; }); > > if (first) > printf (" [%6tx] %#0*" "ll" "x" "..%#0*" "ll" "x", > offset, > 2 + (int) (address_size * 2), (uintmax_t) begin, > 2 + (int) (address_size * 2), (uintmax_t) end); > else > printf (" %#0*" "ll" "x" "..%#0*" "ll" "x", > 2 + (int) (address_size * 2), (uintmax_t) begin, > 2 + (int) (address_size * 2), (uintmax_t) end); > > print_ops (dbg, 1, 18 + (address_size * 4), > address_size, len, readp); > > first = 0; > readp += len; > } > } >} > >struct mac_culist >{ > Dwarf_Die die; > Dwarf_Off offset; > Dwarf_Files *files; > struct mac_culist *next; >}; > > >static int >mac_compare (const void *p1, const void *p2) >{ > struct mac_culist *m1 = (struct mac_culist *) p1; > struct mac_culist *m2 = (struct mac_culist *) p2; > > if (m1->offset < m2->offset) > return -1; > if (m1->offset > m2->offset) > return 1; > return 0; >} > > >static void >print_debug_macinfo_section (Ebl *ebl __attribute__ ((unused)), > GElf_Ehdr *ehdr __attribute__ ((unused)), > Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) >{ > printf (dcgettext (((void *)0), "\nDWARF section '%s' at offset %#" "ll" "x" ":\n", __LC_MESSAGES), > > ".debug_macinfo", (uint64_t) shdr->sh_offset); > putc_unlocked ('\n', stdout); > > > > Elf_Data *data = elf_getdata (scn, ((void *)0)); > if (data == ((void *)0) || data->d_buf == ((void *)0)) > { > error (0, 0, dcgettext (((void *)0), "cannot get macro information section data: %s", __LC_MESSAGES), > elf_errmsg (-1)); > return; > } > > > Dwarf_Off offset; > Dwarf_Off ncu = 0; > size_t hsize; > struct mac_culist *culist = ((void *)0); > size_t nculist = 0; > while (dwarf_nextcu (dbg, offset = ncu, &ncu, &hsize, ((void *)0), ((void *)0), ((void *)0)) == 0) > { > Dwarf_Die cudie; > if (dwarf_offdie (dbg, offset + hsize, &cudie) == ((void *)0)) > continue; > > Dwarf_Attribute attr; > if (dwarf_attr (&cudie, DW_AT_macro_info, &attr) == ((void *)0)) > continue; > > Dwarf_Word macoff; > if (dwarf_formudata (&attr, &macoff) != 0) > continue; > > struct mac_culist *newp = (struct mac_culist *) __builtin_alloca (sizeof (*newp)); > newp->die = cudie; > newp->offset = macoff; > newp->files = ((void *)0); > newp->next = culist; > culist = newp; > ++nculist; > } > > > struct mac_culist *cus = (struct mac_culist *) __builtin_alloca ((nculist + 1) * sizeof (*cus)); > > > cus[nculist].offset = data->d_size; > if (nculist > 0) > { > for (size_t cnt = nculist - 1; culist != ((void *)0); --cnt) > { > ((void) ((cnt < nculist) ? 0 : (__assert_fail ("cnt < nculist", "readelf.c", 4602, __PRETTY_FUNCTION__), 0))); > cus[cnt] = *culist; > culist = culist->next; > } > > > > qsort (cus, nculist, sizeof (*cus), mac_compare); > } > > const unsigned char *readp = (const unsigned char *) data->d_buf; > const unsigned char *readendp = readp + data->d_size; > int level = 1; > > while (readp < readendp) > { > unsigned int opcode = *readp++; > unsigned int u128; > unsigned int u128_2; > const unsigned char *endp; > > switch (opcode) > { > case DW_MACINFO_define: > case DW_MACINFO_undef: > case DW_MACINFO_vendor_ext: > > > > > > do { unsigned char __b; u128 = 0; __b = *(readp)++; u128 |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; u128 = __libdw_get_uleb128 (u128, 1, &(readp)); } while (0); > > endp = memchr (readp, '\0', readendp - readp); > if (endp == ((void *)0)) > { > printf (dcgettext (((void *)0), "%*s*** non-terminated string at end of section", __LC_MESSAGES), > > level, ""); > return; > } > > if (opcode == DW_MACINFO_define) > printf ("%*s#define %s, line %u\n", > level, "", (char *) readp, u128); > else if (opcode == DW_MACINFO_undef) > printf ("%*s#undef %s, line %u\n", > level, "", (char *) readp, u128); > else > printf (" #vendor-ext %s, number %u\n", (char *) readp, u128); > > readp = endp + 1; > break; > > case DW_MACINFO_start_file: > > do { unsigned char __b; u128 = 0; __b = *(readp)++; u128 |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; u128 = __libdw_get_uleb128 (u128, 1, &(readp)); } while (0); > do { unsigned char __b; u128_2 = 0; __b = *(readp)++; u128_2 |= (uintmax_t) (__b & 0x7f) << (0 * 7); if (__builtin_expect ((__b & 0x80) == 0, 1)) break; u128_2 = __libdw_get_uleb128 (u128_2, 1, &(readp)); } while (0); > > > size_t macoff = readp - (const unsigned char *) data->d_buf; > const char *fname = "???"; > if (macoff >= cus[0].offset) > { > while (macoff >= cus[1].offset) > ++cus; > > if (cus[0].files == ((void *)0) > && dwarf_getsrcfiles (&cus[0].die, &cus[0].files, ((void *)0)) != 0) > cus[0].files = (Dwarf_Files *) -1l; > > if (cus[0].files != (Dwarf_Files *) -1l) > fname = (dwarf_filesrc (cus[0].files, u128_2, ((void *)0), ((void *)0)) > ?: "???"); > } > > printf ("%*sstart_file %u, [%u] %s\n", > level, "", u128, u128_2, fname); > ++level; > break; > > case DW_MACINFO_end_file: > --level; > printf ("%*send_file\n", level, ""); > > break; > > default: > > if (opcode != 0 || readp != readendp) > printf ("%*s*** invalid opcode %u\n", level, "", opcode); > break; > } > } >} > > > >static int >print_pubnames (Dwarf *dbg __attribute__ ((unused)), Dwarf_Global *global, > void *arg) >{ > int *np = (int *) arg; > > printf (dcgettext (((void *)0), " [%5d] DIE offset: %6" "ll" "d" ", CU DIE offset: %6" "ll" "d" ", name: %s\n", __LC_MESSAGES), > > (*np)++, global->die_offset, global->cu_offset, global->name); > > return 0; >} > > > >static void >print_debug_pubnames_section (Ebl *ebl __attribute__ ((unused)), > GElf_Ehdr *ehdr __attribute__ ((unused)), > Elf_Scn *scn __attribute__ ((unused)), > GElf_Shdr *shdr, Dwarf *dbg) >{ > printf (dcgettext (((void *)0), "\nDWARF section '%s' at offset %#" "ll" "x" ":\n", __LC_MESSAGES), > ".debug_pubnames", (uint64_t) shdr->sh_offset); > > int n = 0; > (void) dwarf_getpubnames (dbg, print_pubnames, &n, 0); >} > > >static void >print_debug_str_section (Ebl *ebl __attribute__ ((unused)), > GElf_Ehdr *ehdr __attribute__ ((unused)), > Elf_Scn *scn __attribute__ ((unused)), > GElf_Shdr *shdr, Dwarf *dbg) >{ > > GElf_Addr tmp = shdr->sh_size; > int digits = 1; > while (tmp >= 16) > { > ++digits; > tmp >>= 4; > } > digits = (((4)>(digits))?(4):(digits)); > > printf (dcgettext (((void *)0), "\nDWARF section '%s' at offset %#" "ll" "x" ":\n" " %*s String\n", __LC_MESSAGES), > > ".debug_str", (uint64_t) shdr->sh_offset, > > digits + 2, ({ const char *__res = strrchr (dcgettext (((void *)0), "debugstr|Offset", __LC_MESSAGES), '|'); __res ? __res + 1 : "debugstr|Offset"; })); > > Dwarf_Off offset = 0; > while (offset < shdr->sh_size) > { > size_t len; > const char *str = dwarf_getstring (dbg, offset, &len); > if (str == ((void *)0)) > { > printf (dcgettext (((void *)0), " *** error while reading strings: %s\n", __LC_MESSAGES), > dwarf_errmsg (-1)); > break; > } > > printf (" [%*" "ll" "x" "] \"%s\"\n", digits, (uint64_t) offset, str); > > offset += len + 1; > } >} > > >static void >print_debug (Ebl *ebl, GElf_Ehdr *ehdr) >{ > > > Dwarf *dbg; > Elf_Scn *scn; > size_t shstrndx; > > > dbg = dwarf_begin_elf (ebl->elf, DWARF_C_READ, ((void *)0)); > if (dbg == ((void *)0)) > { > error (0, 0, dcgettext (((void *)0), "cannot get debug context descriptor: %s", __LC_MESSAGES), > dwarf_errmsg (-1)); > return; > } > > > if (elf_getshstrndx (ebl->elf, &shstrndx) < 0) > error (1, 0, > dcgettext (((void *)0), "cannot get section header string table index", __LC_MESSAGES)); > > scn = ((void *)0); > while ((scn = elf_nextscn (ebl->elf, scn)) != ((void *)0)) > { > > GElf_Shdr shdr_mem; > GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); > > if (shdr != ((void *)0) || shdr->sh_type != 1) > { > static const struct > { > const char *name; > enum section_e bitmask; > void (*fp) (Ebl *, GElf_Ehdr *, Elf_Scn *, GElf_Shdr *, Dwarf *); > } debug_sections[] = > { >#define NEW_SECTION(name) { ".debug_" #name, section_ ##name, print_debug_ ##name ##_section } > > { ".debug_" "abbrev", section_abbrev, print_debug_abbrev_section }, > { ".debug_" "aranges", section_aranges, print_debug_aranges_section }, > { ".debug_" "frame", section_frame, print_debug_frame_section }, > { ".debug_" "info", section_info, print_debug_info_section }, > { ".debug_" "line", section_line, print_debug_line_section }, > { ".debug_" "loc", section_loc, print_debug_loc_section }, > { ".debug_" "pubnames", section_pubnames, print_debug_pubnames_section }, > { ".debug_" "str", section_str, print_debug_str_section }, > { ".debug_" "macinfo", section_macinfo, print_debug_macinfo_section }, > { ".debug_" "ranges", section_ranges, print_debug_ranges_section }, > { ".eh_frame", section_frame, print_debug_frame_section } > }; > const int ndebug_sections = (sizeof (debug_sections) > / sizeof (debug_sections[0])); > const char *name = elf_strptr (ebl->elf, shstrndx, > shdr->sh_name); > int n; > > for (n = 0; n < ndebug_sections; ++n) > if (__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (name) && __builtin_constant_p (debug_sections[n].name) && (__s1_len = strlen (name), __s2_len = strlen (debug_sections[n].name), (!((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((debug_sections[n].name) + 1) - (size_t)(const void *)(debug_sections[n].name) == 1) || __s2_len >= 4)) ? __builtin_strcmp (name, debug_sections[n].name) : (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) && (__s1_len = strlen (name), __s1_len < 4) ? (__builtin_constant_p (debug_sections[n].name) && ((size_t)(const void *)((debug_sections[n].name) + 1) - (size_t)(const void *)(debug_sections[n].name) == 1) ? __builtin_strcmp (name, debug_sections[n].name) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (debug_sections[n].name); register int __result = (((const unsigned char *) (const char *) (name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (debug_sections[n].name) && ((size_t)(const void *)((debug_sections[n].name) + 1) - (size_t)(const void *)(debug_sections[n].name) == 1) && (__s2_len = strlen (debug_sections[n].name), __s2_len < 4) ? (__builtin_constant_p (name) && ((size_t)(const void *)((name) + 1) - (size_t)(const void *)(name) == 1) ? __builtin_strcmp (name, debug_sections[n].name) : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (name); register int __result = __s1[0] - ((const unsigned char *) (const char *) (debug_sections[n].name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) (debug_sections[n].name))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) (debug_sections[n].name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) (debug_sections[n].name))[3]); } } __result; }))) : __builtin_strcmp (name, debug_sections[n].name)))); }) == 0) > { > if (print_debug_sections & debug_sections[n].bitmask) > debug_sections[n].fp (ebl, ehdr, scn, shdr, dbg); > break; > } > } > } > > > dwarf_end (dbg); >} > > >static void >handle_notes (Ebl *ebl, GElf_Ehdr *ehdr) >{ > int class = gelf_getclass (ebl->elf); > size_t cnt; > > > > for (cnt = 0; cnt < ehdr->e_phnum; ++cnt) > { > GElf_Phdr mem; > GElf_Phdr *phdr = gelf_getphdr (ebl->elf, cnt, &mem); > > if (phdr == ((void *)0) || phdr->p_type != 4) > > continue; > > printf (dcgettext (((void *)0), "\nNote segment of %" "ll" "d" " bytes at offset %#0" "ll" "x" ":\n", __LC_MESSAGES), > > phdr->p_filesz, phdr->p_offset); > > char *notemem = gelf_rawchunk (ebl->elf, phdr->p_offset, phdr->p_filesz); > if (notemem == ((void *)0)) > error (1, 0, > dcgettext (((void *)0), "cannot get content of note section: %s", __LC_MESSAGES), > elf_errmsg (-1)); > > fputs_unlocked (dcgettext (((void *)0), " Owner Data size Type\n", __LC_MESSAGES), stdout); ># 4887 "readelf.c" > size_t align = class == 1 ? 4 : 4; >#define ALIGNED_LEN(len) (((len) + align - 1) & ~(align - 1)) > > size_t idx = 0; > while (idx < phdr->p_filesz) > { > > struct > { > uint32_t namesz; > uint32_t descsz; > uint32_t type; > char name[0]; > } *noteentry = (__typeof (noteentry)) (notemem + idx); > > if (idx + 12 > phdr->p_filesz > || (idx + 12 + (((noteentry->namesz) + align - 1) & ~(align - 1)) > + (((noteentry->descsz) + align - 1) & ~(align - 1)) > phdr->p_filesz)) > > > break; > > char buf[100]; > char buf2[100]; > printf (dcgettext (((void *)0), " %-13.*s %9" "d" " %s\n", __LC_MESSAGES), > (int) noteentry->namesz, noteentry->name, > noteentry->descsz, > ehdr->e_type == 4 > ? ebl_core_note_type_name (ebl, noteentry->type, > buf, sizeof (buf)) > : ebl_object_note_type_name (ebl, noteentry->type, > buf2, sizeof (buf2))); > > > if (memchr (noteentry->name, '\0', noteentry->namesz) != ((void *)0) > > || 1) > { > if (ehdr->e_type == 4) > ebl_core_note (ebl, noteentry->name, noteentry->type, > noteentry->descsz, > ¬eentry->name[(((noteentry->namesz) + align - 1) & ~(align - 1))]); > else > ebl_object_note (ebl, noteentry->name, noteentry->type, > noteentry->descsz, > ¬eentry->name[(((noteentry->namesz) + align - 1) & ~(align - 1))]); > } > > > idx += (12 + (((noteentry->namesz) + align - 1) & ~(align - 1)) > + (((noteentry->descsz) + align - 1) & ~(align - 1))); > } > > gelf_freechunk (ebl->elf, notemem); > } >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 133937
: 87271