# 1 "ldso/ldso/ldso.c" # 1 "" #define __STDC__ 1 #define __STDC_HOSTED__ 1 #define __GNUC__ 4 #define __GNUC_MINOR__ 5 #define __GNUC_PATCHLEVEL__ 3 #define __SIZE_TYPE__ long unsigned int #define __PTRDIFF_TYPE__ long int #define __WCHAR_TYPE__ int #define __WINT_TYPE__ unsigned int #define __INTMAX_TYPE__ long long int #define __UINTMAX_TYPE__ long long unsigned int #define __CHAR16_TYPE__ short unsigned int #define __CHAR32_TYPE__ unsigned int #define __SIG_ATOMIC_TYPE__ int #define __INT8_TYPE__ signed char #define __INT16_TYPE__ short int #define __INT32_TYPE__ int #define __INT64_TYPE__ long long int #define __UINT8_TYPE__ unsigned char #define __UINT16_TYPE__ short unsigned int #define __UINT32_TYPE__ unsigned int #define __UINT64_TYPE__ long long unsigned int #define __INT_LEAST8_TYPE__ signed char #define __INT_LEAST16_TYPE__ short int #define __INT_LEAST32_TYPE__ int #define __INT_LEAST64_TYPE__ long long int #define __UINT_LEAST8_TYPE__ unsigned char #define __UINT_LEAST16_TYPE__ short unsigned int #define __UINT_LEAST32_TYPE__ unsigned int #define __UINT_LEAST64_TYPE__ long long unsigned int #define __INT_FAST8_TYPE__ signed char #define __INT_FAST16_TYPE__ int #define __INT_FAST32_TYPE__ int #define __INT_FAST64_TYPE__ long long int #define __UINT_FAST8_TYPE__ unsigned char #define __UINT_FAST16_TYPE__ unsigned int #define __UINT_FAST32_TYPE__ unsigned int #define __UINT_FAST64_TYPE__ long long unsigned int #define __INTPTR_TYPE__ int #define __UINTPTR_TYPE__ unsigned int #define __GXX_ABI_VERSION 1002 #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 __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) #define __WINT_MAX__ 4294967295U #define __WINT_MIN__ 0U #define __PTRDIFF_MAX__ 2147483647L #define __SIZE_MAX__ 4294967295UL #define __CHAR_BIT__ 8 #define __INTMAX_MAX__ 9223372036854775807LL #define __INTMAX_C(c) c ## LL #define __UINTMAX_MAX__ 18446744073709551615ULL #define __UINTMAX_C(c) c ## ULL #define __SIG_ATOMIC_MAX__ 2147483647 #define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) #define __INT8_MAX__ 127 #define __INT16_MAX__ 32767 #define __INT32_MAX__ 2147483647 #define __INT64_MAX__ 9223372036854775807LL #define __UINT8_MAX__ 255 #define __UINT16_MAX__ 65535 #define __UINT32_MAX__ 4294967295U #define __UINT64_MAX__ 18446744073709551615ULL #define __INT_LEAST8_MAX__ 127 #define __INT8_C(c) c #define __INT_LEAST16_MAX__ 32767 #define __INT16_C(c) c #define __INT_LEAST32_MAX__ 2147483647 #define __INT32_C(c) c #define __INT_LEAST64_MAX__ 9223372036854775807LL #define __INT64_C(c) c ## LL #define __UINT_LEAST8_MAX__ 255 #define __UINT8_C(c) c #define __UINT_LEAST16_MAX__ 65535 #define __UINT16_C(c) c #define __UINT_LEAST32_MAX__ 4294967295U #define __UINT32_C(c) c ## U #define __UINT_LEAST64_MAX__ 18446744073709551615ULL #define __UINT64_C(c) c ## ULL #define __INT_FAST8_MAX__ 127 #define __INT_FAST16_MAX__ 2147483647 #define __INT_FAST32_MAX__ 2147483647 #define __INT_FAST64_MAX__ 9223372036854775807LL #define __UINT_FAST8_MAX__ 255 #define __UINT_FAST16_MAX__ 4294967295U #define __UINT_FAST32_MAX__ 4294967295U #define __UINT_FAST64_MAX__ 18446744073709551615ULL #define __INTPTR_MAX__ 2147483647 #define __UINTPTR_MAX__ 4294967295U #define __FLT_EVAL_METHOD__ 0 #define __DEC_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.4028234663852886e+38F #define __FLT_MIN__ 1.1754943508222875e-38F #define __FLT_EPSILON__ 1.1920928955078125e-7F #define __FLT_DENORM_MIN__ 1.4012984643248171e-45F #define __FLT_HAS_DENORM__ 1 #define __FLT_HAS_INFINITY__ 1 #define __FLT_HAS_QUIET_NAN__ 1 #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__ ((double)1.7976931348623157e+308L) #define __DBL_MIN__ ((double)2.2250738585072014e-308L) #define __DBL_EPSILON__ ((double)2.2204460492503131e-16L) #define __DBL_DENORM_MIN__ ((double)4.9406564584124654e-324L) #define __DBL_HAS_DENORM__ 1 #define __DBL_HAS_INFINITY__ 1 #define __DBL_HAS_QUIET_NAN__ 1 #define __LDBL_MANT_DIG__ 53 #define __LDBL_DIG__ 15 #define __LDBL_MIN_EXP__ (-1021) #define __LDBL_MIN_10_EXP__ (-307) #define __LDBL_MAX_EXP__ 1024 #define __LDBL_MAX_10_EXP__ 308 #define __DECIMAL_DIG__ 17 #define __LDBL_MAX__ 1.7976931348623157e+308L #define __LDBL_MIN__ 2.2250738585072014e-308L #define __LDBL_EPSILON__ 2.2204460492503131e-16L #define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L #define __LDBL_HAS_DENORM__ 1 #define __LDBL_HAS_INFINITY__ 1 #define __LDBL_HAS_QUIET_NAN__ 1 #define __DEC32_MANT_DIG__ 7 #define __DEC32_MIN_EXP__ (-94) #define __DEC32_MAX_EXP__ 97 #define __DEC32_MIN__ 1E-95DF #define __DEC32_MAX__ 9.999999E96DF #define __DEC32_EPSILON__ 1E-6DF #define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF #define __DEC64_MANT_DIG__ 16 #define __DEC64_MIN_EXP__ (-382) #define __DEC64_MAX_EXP__ 385 #define __DEC64_MIN__ 1E-383DD #define __DEC64_MAX__ 9.999999999999999E384DD #define __DEC64_EPSILON__ 1E-15DD #define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD #define __DEC128_MANT_DIG__ 34 #define __DEC128_MIN_EXP__ (-6142) #define __DEC128_MAX_EXP__ 6145 #define __DEC128_MIN__ 1E-6143DL #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL #define __DEC128_EPSILON__ 1E-33DL #define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL #define __REGISTER_PREFIX__ #define __USER_LABEL_PREFIX__ _ #define __VERSION__ "4.5.3" #define __GNUC_GNU_INLINE__ 1 #define __OPTIMIZE_SIZE__ 1 #define __OPTIMIZE__ 1 #define __FINITE_MATH_ONLY__ 0 #define __pic__ 1 #define __PIC__ 1 #define __pie__ 1 #define __PIE__ 1 #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 #define __PRAGMA_REDEFINE_EXTNAME 1 #define __SIZEOF_INT__ 4 #define __SIZEOF_LONG__ 4 #define __SIZEOF_LONG_LONG__ 8 #define __SIZEOF_SHORT__ 2 #define __SIZEOF_FLOAT__ 4 #define __SIZEOF_DOUBLE__ 8 #define __SIZEOF_LONG_DOUBLE__ 8 #define __SIZEOF_SIZE_T__ 4 #define __SIZEOF_WCHAR_T__ 4 #define __SIZEOF_WINT_T__ 4 #define __SIZEOF_PTRDIFF_T__ 4 #define __SIZEOF_POINTER__ 4 #define __bfin 1 #define __bfin__ 1 #define bfin 1 #define __BFIN 1 #define __BFIN__ 1 #define BFIN 1 #define __ADSPBLACKFIN__ 1 #define __ADSPLPBLACKFIN__ 1 #define __SILICON_REVISION__ 0xffff #define __WORKAROUNDS_ENABLED 1 #define __WORKAROUND_SPECULATIVE_LOADS 1 #define __WORKAROUND_SPECULATIVE_SYNCS 1 #define __WORKAROUND_RETS 1 #define __WORKAROUND_UNSAFE_NULL_ADDR 1 #define __BFIN_FDPIC__ 1 #define __FDPIC__ 1 #define __gnu_linux__ 1 #define __linux 1 #define __linux__ 1 #define linux 1 #define __unix 1 #define __unix__ 1 #define unix 1 #define __ELF__ 1 #define __BIGGEST_ALIGNMENT__ 4 # 1 "" #define NDEBUG 1 #define __UCLIBC_UNDERSCORES__ 1 #define NOT_IN_libc 1 #define IS_IN_rtld 1 #define UCLIBC_RUNTIME_PREFIX "/usr/bfin-linux-uclibc/" #define UCLIBC_LDSO "ld-uClibc.so.0" #define LDSO_ELFINTERP "bfin/elfinterp.c" #define NOT_IN_libc 1 #define IS_IN_rtld 1 #define UCLIBC_RUNTIME_PREFIX "/usr/bfin-linux-uclibc/" #define UCLIBC_LDSO "ld-uClibc.so.0" # 1 "././include/libc-symbols.h" 1 # 23 "././include/libc-symbols.h" #define _LIBC_SYMBOLS_H 1 # 32 "././include/libc-symbols.h" #define _LIBC 1 # 51 "././include/libc-symbols.h" # 1 "./include/bits/uClibc_arch_features.h" 1 #define _BITS_UCLIBC_ARCH_FEATURES_H #define __UCLIBC_ABORT_INSTRUCTION__ ".short 2" #define __UCLIBC_MMAP_HAS_6_ARGS__ #undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__ #undef __UCLIBC_BROKEN_CREATE_MODULE__ #undef __UCLIBC_HANDLE_OLDER_RLIMIT__ #define __UCLIBC_HAVE_ASM_SET_DIRECTIVE__ #undef __UCLIBC_ASM_GLOBAL_DIRECTIVE__ #define __UCLIBC_HAVE_ASM_WEAK_DIRECTIVE__ #undef __UCLIBC_HAVE_ASM_WEAKEXT_DIRECTIVE__ #undef __UCLIBC_HAVE_ASM_GLOBAL_DOT_NAME__ #undef __UCLIBC_HAVE_ASM_CFI_DIRECTIVES__ #define __UCLIBC_HAVE_SIGNED_ZERO__ #undef __UCLIBC_ASM_LINE_SEP__ # 52 "././include/libc-symbols.h" 2 #define _GNU_SOURCE 1 #define likely(x) __builtin_expect((!!(x)),1) #define unlikely(x) __builtin_expect((!!(x)),0) #define __cold __attribute__ ((__cold__)) #define __hot __attribute__ ((__hot__)) # 82 "././include/libc-symbols.h" #define __LINUX_COMPILER_H #define __cast__(_to) #define attribute_optimize(x) __attribute__ ((optimize(x))) #define attribute_unused __attribute__ ((unused)) #define attribute_noreturn __attribute__ ((__noreturn__)) #define libc_freeres_ptr(decl) __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", %nobits") decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment))) #define __libc_freeres_fn_section __attribute__ ((section ("__libc_freeres_fn"))) # 115 "././include/libc-symbols.h" #define __stringify_1(x) #x #define __stringify(x) __stringify_1(x) #define HAVE_ASM_SET_DIRECTIVE #define ASM_GLOBAL_DIRECTIVE .global #define HAVE_ASM_WEAK_DIRECTIVE #undef HAVE_ASM_WEAKEXT_DIRECTIVE #undef HAVE_ASM_GLOBAL_DOT_NAME #undef HAVE_ASM_CFI_DIRECTIVES #define HAVE_WEAK_SYMBOLS #undef C_SYMBOL_NAME #define C_SYMBOL_NAME(name) _ ##name #define ASM_LINE_SEP ; # 189 "././include/libc-symbols.h" #define strong_alias(name,aliasname) _strong_alias(name, aliasname) #define _strong_alias(name,aliasname) extern __typeof (name) aliasname __attribute__ ((alias (#name))); #define strong_alias_untyped(name,aliasname) _strong_alias_untyped(name, aliasname) #define _strong_alias_untyped(name,aliasname) extern __typeof (aliasname) aliasname __attribute__ ((alias (#name))); #define weak_function __attribute__ ((weak)) #define weak_const_function __attribute__ ((weak, __const__)) #define weak_alias(name,aliasname) _weak_alias (name, aliasname) #define _weak_alias(name,aliasname) extern __typeof (name) aliasname __attribute__ ((weak, alias (#name))); #define weak_extern(symbol) _weak_extern (weak symbol) #define _weak_extern(expr) _Pragma (#expr) # 317 "././include/libc-symbols.h" #define internal_function #define __make_section_unallocated(section_string) __asm__ (".section " section_string "\n\t.previous"); # 331 "././include/libc-symbols.h" #define __sec_comment "\n#APP\n\t#" #define link_warning(symbol,msg) __make_section_unallocated (".gnu.warning." #symbol) static const char __evoke_link_warning_ ##symbol[] __attribute__ ((used, section (".gnu.warning." #symbol __sec_comment))) = msg; # 360 "././include/libc-symbols.h" #define INTUSE(name) name #define INTDEF(name) #define INTVARDEF(name) #define INTDEF2(name,newname) #define INTVARDEF2(name,newname) # 471 "././include/libc-symbols.h" #define attribute_hidden __attribute__ ((visibility ("hidden"))) #define attribute_protected __attribute__ ((visibility ("protected"))) #define __hidden_proto_hiddenattr(attrs...) __attribute__ ((visibility ("hidden"), ##attrs)) # 483 "././include/libc-symbols.h" #define hidden_proto(name,attrs...) __hidden_proto(name, __GI_ ##name, ##attrs) #define __hidden_proto(name,internal,attrs...) extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) __hidden_proto_hiddenattr (attrs); #define __hidden_asmname(name) __hidden_asmname1 (__USER_LABEL_PREFIX__, name) #define __hidden_asmname1(prefix,name) __hidden_asmname2(prefix, name) #define __hidden_asmname2(prefix,name) #prefix name #define __hidden_ver1(local,internal,name) extern __typeof (name) __EI_ ##name __asm__(__hidden_asmname (#internal)); extern __typeof (name) __EI_ ##name __attribute__((alias (__hidden_asmname1 (,#local)))) #define hidden_ver(local,name) __hidden_ver1(local, __GI_ ##name, name); #define hidden_data_ver(local,name) hidden_ver(local, name) #define hidden_def(name) __hidden_ver1(__GI_ ##name, name, name); #define hidden_data_def(name) hidden_def(name) #define hidden_weak(name) __hidden_ver1(__GI_ ##name, name, name) __attribute__((weak)); #define hidden_data_weak(name) hidden_weak(name) # 586 "././include/libc-symbols.h" #define versioned_symbol(lib,local,symbol,version) #undef hidden_ver #define hidden_ver(local,name) #undef hidden_data_ver #define hidden_data_ver(local,name) # 601 "././include/libc-symbols.h" #define libc_hidden_proto(name,attrs...) #define libc_hidden_def(name) #define libc_hidden_weak(name) #define libc_hidden_ver(local,name) #define libc_hidden_data_def(name) #define libc_hidden_data_weak(name) #define libc_hidden_data_ver(local,name) #define rtld_hidden_proto(name,attrs...) hidden_proto (name, ##attrs) #define rtld_hidden_def(name) hidden_def (name) #define rtld_hidden_weak(name) hidden_weak (name) #define rtld_hidden_ver(local,name) hidden_ver (local, name) #define rtld_hidden_data_def(name) hidden_data_def (name) #define rtld_hidden_data_weak(name) hidden_data_weak (name) #define rtld_hidden_data_ver(local,name) hidden_data_ver (local, name) # 637 "././include/libc-symbols.h" #define libm_hidden_proto(name,attrs...) #define libm_hidden_def(name) #define libm_hidden_weak(name) #define libm_hidden_ver(local,name) #define libm_hidden_data_def(name) #define libm_hidden_data_weak(name) #define libm_hidden_data_ver(local,name) # 655 "././include/libc-symbols.h" #define libresolv_hidden_proto(name,attrs...) #define libresolv_hidden_def(name) #define libresolv_hidden_weak(name) #define libresolv_hidden_ver(local,name) #define libresolv_hidden_data_def(name) #define libresolv_hidden_data_weak(name) #define libresolv_hidden_data_ver(local,name) # 673 "././include/libc-symbols.h" #define librt_hidden_proto(name,attrs...) #define librt_hidden_def(name) #define librt_hidden_weak(name) #define librt_hidden_ver(local,name) #define librt_hidden_data_def(name) #define librt_hidden_data_weak(name) #define librt_hidden_data_ver(local,name) # 691 "././include/libc-symbols.h" #define libdl_hidden_proto(name,attrs...) #define libdl_hidden_def(name) #define libdl_hidden_weak(name) #define libdl_hidden_ver(local,name) #define libdl_hidden_data_def(name) #define libdl_hidden_data_weak(name) #define libdl_hidden_data_ver(local,name) # 709 "././include/libc-symbols.h" #define libintl_hidden_proto(name,attrs...) #define libintl_hidden_def(name) #define libintl_hidden_weak(name) #define libintl_hidden_ver(local,name) #define libintl_hidden_data_def(name) #define libintl_hidden_data_weak(name) #define libintl_hidden_data_ver(local,name) # 727 "././include/libc-symbols.h" #define libnsl_hidden_proto(name,attrs...) #define libnsl_hidden_def(name) #define libnsl_hidden_weak(name) #define libnsl_hidden_ver(local,name) #define libnsl_hidden_data_def(name) #define libnsl_hidden_data_weak(name) #define libnsl_hidden_data_ver(local,name) # 745 "././include/libc-symbols.h" #define libutil_hidden_proto(name,attrs...) #define libutil_hidden_def(name) #define libutil_hidden_weak(name) #define libutil_hidden_ver(local,name) #define libutil_hidden_data_def(name) #define libutil_hidden_data_weak(name) #define libutil_hidden_data_ver(local,name) # 763 "././include/libc-symbols.h" #define libcrypt_hidden_proto(name,attrs...) #define libcrypt_hidden_def(name) #define libcrypt_hidden_weak(name) #define libcrypt_hidden_ver(local,name) #define libcrypt_hidden_data_def(name) #define libcrypt_hidden_data_weak(name) #define libcrypt_hidden_data_ver(local,name) # 781 "././include/libc-symbols.h" #define libpthread_hidden_proto(name,attrs...) #define libpthread_hidden_def(name) #define libpthread_hidden_weak(name) #define libpthread_hidden_ver(local,name) #define libpthread_hidden_data_def(name) #define libpthread_hidden_data_weak(name) #define libpthread_hidden_data_ver(local,name) # 1 "" 2 # 1 "ldso/ldso/ldso.c" # 33 "ldso/ldso/ldso.c" # 1 "./ldso/include/ldso.h" 1 # 9 "./ldso/include/ldso.h" #define _LDSO_H_ # 1 "./include/features.h" 1 # 20 "./include/features.h" #define _FEATURES_H 1 # 95 "./include/features.h" #undef __USE_ISOC99 #undef __USE_ISOC95 #undef __USE_POSIX #undef __USE_POSIX2 #undef __USE_POSIX199309 #undef __USE_POSIX199506 #undef __USE_XOPEN #undef __USE_XOPEN_EXTENDED #undef __USE_UNIX98 #undef __USE_XOPEN2K #undef __USE_XOPEN2K8 #undef __USE_LARGEFILE #undef __USE_LARGEFILE64 #undef __USE_FILE_OFFSET64 #undef __USE_BSD #undef __USE_SVID #undef __USE_MISC #undef __USE_ATFILE #undef __USE_GNU #undef __USE_REENTRANT #undef __USE_FORTIFY_LEVEL #undef __FAVOR_BSD #undef __KERNEL_STRICT_NAMES #define __KERNEL_STRICT_NAMES #define __USE_ANSI 1 # 136 "./include/features.h" #define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) # 153 "./include/features.h" #undef _ISOC99_SOURCE #define _ISOC99_SOURCE 1 #undef _POSIX_SOURCE #define _POSIX_SOURCE 1 #undef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 200809L #undef _XOPEN_SOURCE #define _XOPEN_SOURCE 700 #undef _XOPEN_SOURCE_EXTENDED #define _XOPEN_SOURCE_EXTENDED 1 #undef _LARGEFILE64_SOURCE #define _LARGEFILE64_SOURCE 1 #undef _BSD_SOURCE #define _BSD_SOURCE 1 #undef _SVID_SOURCE #define _SVID_SOURCE 1 #undef _ATFILE_SOURCE #define _ATFILE_SOURCE 1 #define __UCLIBC__ 1 # 186 "./include/features.h" #define __need_uClibc_config_h # 1 "./include/bits/uClibc_config.h" 1 #define __UCLIBC_MAJOR__ 0 #define __UCLIBC_MINOR__ 9 #define __UCLIBC_SUBLEVEL__ 34 #undef __TARGET_alpha__ #undef __TARGET_arm__ #undef __TARGET_avr32__ #define __TARGET_bfin__ 1 #undef __TARGET_cris__ #undef __TARGET_e1__ #undef __TARGET_frv__ #undef __TARGET_h8300__ #undef __TARGET_hppa__ #undef __TARGET_i386__ #undef __TARGET_i960__ #undef __TARGET_ia64__ #undef __TARGET_m68k__ #undef __TARGET_microblaze__ #undef __TARGET_mips__ #undef __TARGET_nios__ #undef __TARGET_nios2__ #undef __TARGET_powerpc__ #undef __TARGET_sh__ #undef __TARGET_sh64__ #undef __TARGET_sparc__ #undef __TARGET_v850__ #undef __TARGET_vax__ #undef __TARGET_x86_64__ #undef __TARGET_xtensa__ #undef __TARGET_c6x__ #define __TARGET_ARCH__ "bfin" #define __FORCE_OPTIONS_FOR_ARCH__ 1 #define __TARGET_SUBARCH__ "" #undef __UCLIBC_FORMAT_ELF__ #define __UCLIBC_FORMAT_FDPIC_ELF__ 1 #undef __UCLIBC_FORMAT_DSBT_ELF__ #undef __UCLIBC_FORMAT_FLAT__ #undef __UCLIBC_FORMAT_FLAT_SEP_DATA__ #undef __UCLIBC_FORMAT_SHARED_FLAT__ #define __ARCH_LITTLE_ENDIAN__ 1 #define __ARCH_HAS_NO_MMU__ 1 #define __UCLIBC_HAS_FLOATS__ 1 #define __UCLIBC_HAS_FPU__ 1 #undef __DO_C99_MATH__ #undef __DO_XSI_MATH__ #undef __UCLIBC_HAS_FENV__ #define __KERNEL_HEADERS__ "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include" #define __UCLIBC_UCLINUX_BROKEN_MUNMAP__ 1 #define __HAVE_DOT_CONFIG__ 1 #define __DOPIC__ 1 #define __HAVE_SHARED__ 1 #undef __FORCE_SHAREABLE_TEXT_SEGMENTS__ #define __LDSO_LDD_SUPPORT__ 1 #define __LDSO_CACHE_SUPPORT__ 1 #define __LDSO_PRELOAD_ENV_SUPPORT__ 1 #undef __LDSO_PRELOAD_FILE_SUPPORT__ #define __LDSO_BASE_FILENAME__ "ld.so" #undef __LDSO_STANDALONE_SUPPORT__ #undef __LDSO_PRELINK_SUPPORT__ #define __UCLIBC_STATIC_LDCONFIG__ 1 #define __LDSO_RUNPATH__ 1 #define __LDSO_SEARCH_INTERP_PATH__ 1 #define __LDSO_LD_LIBRARY_PATH__ 1 #undef __LDSO_NO_CLEANUP__ #define __UCLIBC_CTOR_DTOR__ 1 #undef __LDSO_GNU_HASH_SUPPORT__ #define __HAS_NO_THREADS__ 1 #undef __LINUXTHREADS_OLD__ #undef __LINUXTHREADS_NEW__ #undef __UCLIBC_HAS_THREADS_NATIVE__ #define __UCLIBC_HAS_SYSLOG__ 1 #define __UCLIBC_HAS_LFS__ 1 #define __MALLOC__ 1 #undef __MALLOC_SIMPLE__ #undef __MALLOC_STANDARD__ #undef __MALLOC_GLIBC_COMPAT__ #define __UCLIBC_DYNAMIC_ATEXIT__ 1 #undef __COMPAT_ATEXIT__ #undef __UCLIBC_SUSV3_LEGACY__ #undef __UCLIBC_SUSV3_LEGACY_MACROS__ #undef __UCLIBC_SUSV4_LEGACY__ #undef __UCLIBC_STRICT_HEADERS__ #undef __UCLIBC_HAS_STUBS__ #define __UCLIBC_HAS_SHADOW__ 1 #undef __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__ #define __UCLIBC_HAS_PTY__ 1 #define __ASSUME_DEVPTS__ 1 #define __UNIX98PTY_ONLY__ 1 #undef __UCLIBC_HAS_GETPT__ #undef __UCLIBC_HAS_LIBUTIL__ #define __UCLIBC_HAS_TM_EXTENSIONS__ 1 #define __UCLIBC_HAS_TZ_CACHING__ 1 #define __UCLIBC_HAS_TZ_FILE__ 1 #define __UCLIBC_HAS_TZ_FILE_READ_MANY__ 1 #define __UCLIBC_TZ_FILE_PATH__ "/etc/TZ" #define __UCLIBC_FALLBACK_TO_ETC_LOCALTIME__ 1 #define __UCLIBC_PWD_BUFFER_SIZE__ 256 #define __UCLIBC_GRP_BUFFER_SIZE__ 256 #define __UCLIBC_LINUX_MODULE_26__ 1 #define __UCLIBC_LINUX_SPECIFIC__ 1 #define __UCLIBC_HAS_GNU_ERROR__ 1 #define __UCLIBC_BSD_SPECIFIC__ 1 #define __UCLIBC_HAS_BSD_ERR__ 1 #undef __UCLIBC_HAS_OBSOLETE_BSD_SIGNAL__ #undef __UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL__ #undef __UCLIBC_NTP_LEGACY__ #undef __UCLIBC_SV4_DEPRECATED__ #define __UCLIBC_HAS_REALTIME__ 1 #define __UCLIBC_HAS_ADVANCED_REALTIME__ 1 #define __UCLIBC_HAS_EPOLL__ 1 #define __UCLIBC_HAS_XATTR__ 1 #define __UCLIBC_HAS_PROFILING__ 1 #define __UCLIBC_HAS_CRYPT_IMPL__ 1 #undef __UCLIBC_HAS_SHA256_CRYPT_IMPL__ #undef __UCLIBC_HAS_SHA512_CRYPT_IMPL__ #define __UCLIBC_HAS_CRYPT__ 1 #define __UCLIBC_HAS_NETWORK_SUPPORT__ 1 #define __UCLIBC_HAS_SOCKET__ 1 #define __UCLIBC_HAS_IPV4__ 1 #undef __UCLIBC_HAS_IPV6__ #undef __UCLIBC_HAS_RPC__ #undef __UCLIBC_USE_NETLINK__ #undef __UCLIBC_HAS_BSD_RES_CLOSE__ #define __UCLIBC_HAS_COMPAT_RES_STATE__ 1 #undef __UCLIBC_HAS_EXTRA_COMPAT_RES_STATE__ #undef __UCLIBC_HAS_RESOLVER_SUPPORT__ #undef __UCLIBC_HAS_LIBRESOLV_STUB__ #undef __UCLIBC_HAS_LIBNSL_STUB__ #define __UCLIBC_HAS_STRING_GENERIC_OPT__ 1 #define __UCLIBC_HAS_STRING_ARCH_OPT__ 1 #define __UCLIBC_HAS_CTYPE_TABLES__ 1 #define __UCLIBC_HAS_CTYPE_SIGNED__ 1 #define __UCLIBC_HAS_CTYPE_UNSAFE__ 1 #undef __UCLIBC_HAS_CTYPE_CHECKED__ #undef __UCLIBC_HAS_CTYPE_ENFORCED__ #undef __UCLIBC_HAS_WCHAR__ #undef __UCLIBC_HAS_LOCALE__ #undef __UCLIBC_HAS_HEXADECIMAL_FLOATS__ #undef __UCLIBC_HAS_GLIBC_CUSTOM_PRINTF__ #undef __USE_OLD_VFPRINTF__ #define __UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS__ 9 #undef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ #undef __UCLIBC_HAS_STDIO_BUFSIZ_NONE__ #undef __UCLIBC_HAS_STDIO_BUFSIZ_256__ #undef __UCLIBC_HAS_STDIO_BUFSIZ_512__ #undef __UCLIBC_HAS_STDIO_BUFSIZ_1024__ #undef __UCLIBC_HAS_STDIO_BUFSIZ_2048__ #define __UCLIBC_HAS_STDIO_BUFSIZ_4096__ 1 #undef __UCLIBC_HAS_STDIO_BUFSIZ_8192__ #define __UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE__ 1 #undef __UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4__ #undef __UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8__ #undef __UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT__ #define __UCLIBC_HAS_STDIO_GETC_MACRO__ 1 #define __UCLIBC_HAS_STDIO_PUTC_MACRO__ 1 #define __UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION__ 1 #undef __UCLIBC_HAS_FOPEN_LARGEFILE_MODE__ #undef __UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE__ #undef __UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE__ #undef __UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__ #undef __UCLIBC_HAS_PRINTF_M_SPEC__ #define __UCLIBC_HAS_ERRNO_MESSAGES__ 1 #undef __UCLIBC_HAS_SYS_ERRLIST__ #define __UCLIBC_HAS_SIGNUM_MESSAGES__ 1 #undef __UCLIBC_HAS_SYS_SIGLIST__ #define __UCLIBC_HAS_GNU_GETOPT__ 1 #define __UCLIBC_HAS_GNU_GETSUBOPT__ 1 #define __UCLIBC_HAS_REGEX__ 1 #define __UCLIBC_HAS_REGEX_OLD__ 1 #define __UCLIBC_HAS_FNMATCH__ 1 #define __UCLIBC_HAS_FNMATCH_OLD__ 1 #undef __UCLIBC_HAS_WORDEXP__ #undef __UCLIBC_HAS_NFTW__ #undef __UCLIBC_HAS_FTS__ #define __UCLIBC_HAS_GLOB__ 1 #undef __UCLIBC_HAS_GNU_GLOB__ #undef __UCLIBC_HAS_UTMPX__ #define __RUNTIME_PREFIX__ "/usr/$(TARGET_ARCH)-linux-uclibc/" #define __DEVEL_PREFIX__ "/usr/$(TARGET_ARCH)-linux-uclibc/usr/" #define __MULTILIB_DIR__ "lib" #define __HARDWIRED_ABSPATH__ 1 #undef __UCLIBC_HAS_ARC4RANDOM__ #undef __UCLIBC_HAS_SSP__ #define __UCLIBC_BUILD_RELRO__ 1 #undef __UCLIBC_BUILD_NOW__ #define __UCLIBC_BUILD_NOEXECSTACK__ 1 #define __CROSS_COMPILER_PREFIX__ "bfin-linux-uclibc-" #define __UCLIBC_EXTRA_CFLAGS__ "" #undef __DODEBUG__ #define __DOSTRIP__ 1 #undef __DOASSERTS__ #undef __SUPPORT_LD_DEBUG__ #undef __SUPPORT_LD_DEBUG_EARLY__ #undef __UCLIBC_MALLOC_DEBUGGING__ #undef __UCLIBC_HAS_BACKTRACE__ #define __WARNINGS__ "-Wall" #undef __EXTRA_WARNINGS__ #undef __DOMULTI__ #undef __UCLIBC_MJN3_ONLY__ # 188 "./include/features.h" 2 #undef __need_uClibc_config_h # 198 "./include/features.h" #define __OPTIMIZE_SIZE__ 1 #undef __LDBL_COMPAT #undef _FORTIFY_SOURCE # 243 "./include/features.h" #define __USE_ISOC99 1 #define __USE_ISOC95 1 # 270 "./include/features.h" #define __USE_POSIX 1 #define __USE_POSIX2 1 #define __USE_POSIX199309 1 #define __USE_POSIX199506 1 #define __USE_XOPEN2K 1 #undef __USE_ISOC99 #define __USE_ISOC99 1 #define __USE_XOPEN2K8 1 #undef _ATFILE_SOURCE #define _ATFILE_SOURCE 1 #define __USE_XOPEN 1 #define __USE_XOPEN_EXTENDED 1 #define __USE_UNIX98 1 #undef _LARGEFILE_SOURCE #define _LARGEFILE_SOURCE 1 #define __USE_XOPEN2K8 1 #define __USE_XOPEN2K 1 #undef __USE_ISOC99 #define __USE_ISOC99 1 # 320 "./include/features.h" #define __USE_LARGEFILE 1 #define __USE_LARGEFILE64 1 #define __USE_MISC 1 #define __USE_BSD 1 #define __USE_SVID 1 #define __USE_ATFILE 1 #define __USE_GNU 1 # 363 "./include/features.h" #define __USE_FORTIFY_LEVEL 0 #define __STDC_IEC_559__ 1 #define __STDC_IEC_559_COMPLEX__ 1 # 400 "./include/features.h" #define __GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) # 416 "./include/features.h" # 1 "./include/sys/cdefs.h" 1 # 21 "./include/sys/cdefs.h" #define _SYS_CDEFS_H 1 # 36 "./include/sys/cdefs.h" #undef __P #undef __PMT # 47 "./include/sys/cdefs.h" #define __THROW __attribute__ ((__nothrow__)) #define __NTH(fct) __attribute__ ((__nothrow__)) fct # 74 "./include/sys/cdefs.h" #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 # 114 "./include/sys/cdefs.h" #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 __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) #define __bos0(ptr) __builtin_object_size (ptr, 0) #define __warndecl(name,msg) extern void name (void) __attribute__((__warning__ (msg))) #define __warnattr(msg) __attribute__((__warning__ (msg))) #define __errordecl(name,msg) extern void name (void) __attribute__((__error__ (msg))) # 142 "./include/sys/cdefs.h" #define __flexarr [] # 169 "./include/sys/cdefs.h" #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 # 198 "./include/sys/cdefs.h" #define __attribute_aligned__(size) __attribute__ ((__aligned__ (size))) # 207 "./include/sys/cdefs.h" #define __attribute_malloc__ __attribute__ ((__malloc__)) # 216 "./include/sys/cdefs.h" #define __attribute_pure__ __attribute__ ((__pure__)) # 225 "./include/sys/cdefs.h" #define __attribute_used__ __attribute__ ((__used__)) #define __attribute_noinline__ __attribute__ ((__noinline__)) #define __attribute_deprecated__ __attribute__ ((__deprecated__)) # 246 "./include/sys/cdefs.h" #define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) # 256 "./include/sys/cdefs.h" #define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b))) # 265 "./include/sys/cdefs.h" #define __nonnull(params) __attribute__ ((__nonnull__ params)) #define __attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__)) # 282 "./include/sys/cdefs.h" #define __wur #define __always_inline __inline __attribute__ ((__always_inline__)) # 298 "./include/sys/cdefs.h" #define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) #define __extern_always_inline extern __always_inline __attribute__ ((__gnu_inline__, __artificial__)) # 315 "./include/sys/cdefs.h" #define __va_arg_pack() __builtin_va_arg_pack () #define __va_arg_pack_len() __builtin_va_arg_pack_len () # 336 "./include/sys/cdefs.h" #define __restrict_arr __restrict # 417 "./include/features.h" 2 # 445 "./include/features.h" #undef _FILE_OFFSET_BITS #undef __USE_FILE_OFFSET64 # 1 "./include/libc-internal.h" 1 # 20 "./include/libc-internal.h" #define _LIBC_INTERNAL_H 1 # 1 "./include/features.h" 1 # 23 "./include/libc-internal.h" 2 #define attribute_relro __attribute__ ((section (".data.rel.ro"))) # 77 "./include/libc-internal.h" #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) # 449 "./include/features.h" 2 # 12 "./ldso/include/ldso.h" 2 # 28 "./ldso/include/ldso.h" # 1 "./include/stdlib.h" 1 # 28 "./include/stdlib.h" #define __need_size_t #define __need_NULL # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 1 3 4 # 186 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/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 long unsigned int size_t; # 233 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_size_t # 395 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef NULL #define NULL ((void *)0) #undef __need_NULL # 36 "./include/stdlib.h" 2 #define _STDLIB_H 1 # 1 "./include/bits/waitflags.h" 1 # 26 "./include/bits/waitflags.h" #define WNOHANG 1 #define WUNTRACED 2 #define WSTOPPED 2 #define WEXITED 4 #define WCONTINUED 8 #define WNOWAIT 0x01000000 #define __WNOTHREAD 0x20000000 #define __WALL 0x40000000 #define __WCLONE 0x80000000 # 45 "./include/stdlib.h" 2 # 1 "./include/bits/waitstatus.h" 1 # 29 "./include/bits/waitstatus.h" #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 # 1 "./include/endian.h" 1 # 20 "./include/endian.h" #define _ENDIAN_H 1 # 32 "./include/endian.h" #define __LITTLE_ENDIAN 1234 #define __BIG_ENDIAN 4321 #define __PDP_ENDIAN 3412 # 1 "./include/bits/endian.h" 1 #define __BYTE_ORDER __LITTLE_ENDIAN # 38 "./include/endian.h" 2 #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 # 1 "./include/byteswap.h" 1 # 20 "./include/byteswap.h" #define _BYTESWAP_H 1 # 1 "./include/bits/byteswap.h" 1 # 11 "./include/bits/byteswap.h" #define _ASM_BITS_BYTESWAP_H 1 #define __bswap_non_constant_16(x) (__extension__ ({ register unsigned short int __v; __asm__ ("%0 = PACK (%1.L, %1.L);" "%0 >>= 8;" : "=d" (__v) : "d" (x)); __v; })) # 22 "./include/bits/byteswap.h" #define __bswap_non_constant_32(x) (__extension__ ({ register unsigned int __v; __asm__ ("%1 = %0 >> 8 (V);" "%0 = %0 << 8 (V);" "%0 = %0 | %1;" "%1 = PACK(%0.L, %0.H);" : "+d"(x), "=&d"(__v)); __v; })) # 34 "./include/bits/byteswap.h" # 1 "./include/bits/byteswap-common.h" 1 # 25 "./include/bits/byteswap-common.h" #define _BITS_BYTESWAP_H 1 #define __bswap_constant_16(x) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8)) #define __bswap_16(x) (__extension__ ({ unsigned short int __bsv, __bsx = (x); if (__builtin_constant_p (__bsx)) __bsv = __bswap_constant_16 (__bsx); else __bsv = __bswap_non_constant_16 (__bsx); __bsv; })) # 52 "./include/bits/byteswap-common.h" #define __bswap_constant_32(x) ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24)) #define __bswap_32(x) (__extension__ ({ unsigned int __bsv, __bsx = (x); if (__builtin_constant_p (__bsx)) __bsv = __bswap_constant_32 (__bsx); else __bsv = __bswap_non_constant_32 (__bsx); __bsv; })) # 78 "./include/bits/byteswap-common.h" #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)) # 89 "./include/bits/byteswap-common.h" #define __bswap_non_constant_64(x) (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned int __l[2]; } __w, __r; __w.__ll = (x); __r.__l[0] = __bswap_non_constant_32 (__w.__l[1]); __r.__l[1] = __bswap_non_constant_32 (__w.__l[0]); __r.__ll; })) # 98 "./include/bits/byteswap-common.h" #define __bswap_64(x) (__extension__ ({ __extension__ unsigned long long int __ll; if (__builtin_constant_p (x)) __ll = __bswap_constant_64 (x); else __ll = __bswap_non_constant_64 (x); __ll; })) # 34 "./include/bits/byteswap.h" 2 # 24 "./include/byteswap.h" 2 #define bswap_16(x) __bswap_16 (x) #define bswap_32(x) __bswap_32 (x) #define bswap_64(x) __bswap_64 (x) # 62 "./include/endian.h" 2 #define htobe16(x) __bswap_16 (x) #define htole16(x) (x) #define be16toh(x) __bswap_16 (x) #define le16toh(x) (x) #define htobe32(x) __bswap_32 (x) #define htole32(x) (x) #define be32toh(x) __bswap_32 (x) #define le32toh(x) (x) #define htobe64(x) __bswap_64 (x) #define htole64(x) (x) #define be64toh(x) __bswap_64 (x) #define le64toh(x) (x) # 66 "./include/bits/waitstatus.h" 2 union wait { int w_status; struct { unsigned int __w_termsig:7; unsigned int __w_coredump:1; unsigned int __w_retcode:8; unsigned int:16; } __wait_terminated; struct { unsigned int __w_stopval:8; unsigned int __w_stopsig:8; unsigned int:16; } __wait_stopped; }; #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 # 46 "./include/stdlib.h" 2 #define __WAIT_INT(status) (__extension__ (((union { __typeof(status) __in; int __i; }) { .__in = (status) }).__i)) # 70 "./include/stdlib.h" typedef union { union wait *__uptr; int *__iptr; } __WAIT_STATUS __attribute__ ((__transparent_union__)); #define __WAIT_STATUS_DEFN int * # 87 "./include/stdlib.h" #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 # 150 "./include/stdlib.h" #define MB_CUR_MAX 1 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))) ; # 1 "./include/sys/types.h" 1 # 25 "./include/sys/types.h" #define _SYS_TYPES_H 1 # 1 "./include/bits/types.h" 1 # 25 "./include/bits/types.h" #define _BITS_TYPES_H 1 # 1 "./include/bits/wordsize.h" 1 # 19 "./include/bits/wordsize.h" #define __WORDSIZE 32 # 29 "./include/bits/types.h" 2 #define __need_size_t # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 1 3 4 # 233 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_size_t # 406 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_NULL # 32 "./include/bits/types.h" 2 # 1 "./include/bits/kernel_types.h" 1 # 9 "./include/bits/kernel_types.h" #define __ARCH_BFIN_POSIX_TYPES_H typedef unsigned short __kernel_dev_t; typedef unsigned long __kernel_ino_t; typedef unsigned short __kernel_mode_t; typedef unsigned short __kernel_nlink_t; typedef long __kernel_off_t; typedef int __kernel_pid_t; typedef unsigned int __kernel_ipc_pid_t; typedef unsigned int __kernel_uid_t; typedef unsigned int __kernel_gid_t; typedef unsigned int __kernel_size_t; typedef int __kernel_ssize_t; typedef int __kernel_ptrdiff_t; typedef long __kernel_time_t; typedef long __kernel_suseconds_t; typedef long __kernel_clock_t; typedef int __kernel_daddr_t; typedef char * __kernel_caddr_t; typedef unsigned short __kernel_uid16_t; typedef unsigned short __kernel_gid16_t; typedef unsigned int __kernel_uid32_t; typedef unsigned int __kernel_gid32_t; typedef unsigned short __kernel_old_uid_t; typedef unsigned short __kernel_old_gid_t; typedef long long __kernel_loff_t; typedef __kernel_dev_t __kernel_old_dev_t; typedef struct { int __val[2]; } __kernel_fsid_t; # 34 "./include/bits/types.h" 2 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; __extension__ typedef long long int __quad_t; __extension__ typedef unsigned long long int __u_quad_t; # 105 "./include/bits/types.h" #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 #define __STD_TYPE __extension__ typedef # 137 "./include/bits/types.h" # 1 "./include/bits/typesizes.h" 1 # 25 "./include/bits/typesizes.h" #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 __SLONGWORD_TYPE #define __FD_SETSIZE 1024 # 138 "./include/bits/types.h" 2 __extension__ typedef __u_quad_t __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef __u_quad_t __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef __quad_t __off64_t; __extension__ typedef int __pid_t; __extension__ typedef struct { int __val[2]; } __fsid_t; __extension__ typedef long int __clock_t; __extension__ typedef unsigned long int __rlim_t; __extension__ typedef __u_quad_t __rlim64_t; __extension__ typedef unsigned int __id_t; __extension__ typedef long int __time_t; __extension__ typedef unsigned int __useconds_t; __extension__ typedef long int __suseconds_t; __extension__ typedef int __daddr_t; __extension__ typedef 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 long 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 # 32 "./include/sys/types.h" 2 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; #define __u_char_defined typedef __loff_t loff_t; typedef __ino_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 __off_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 "./include/time.h" 1 # 55 "./include/time.h" #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; #undef __clockid_time_t #define __timer_t_defined 1 typedef __timer_t timer_t; #undef __need_timer_t # 128 "./include/time.h" #undef __need_timespec # 134 "./include/sys/types.h" 2 typedef __useconds_t useconds_t; #define __useconds_t_defined typedef __suseconds_t suseconds_t; #define __suseconds_t_defined #define __need_size_t # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 1 3 4 # 233 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_size_t # 406 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_NULL # 148 "./include/sys/types.h" 2 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 188 "./include/sys/types.h" #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 "./include/sys/select.h" 1 # 23 "./include/sys/select.h" #define _SYS_SELECT_H 1 # 1 "./include/bits/select.h" 1 # 26 "./include/bits/select.h" #define __FD_ZERO(s) do { unsigned int __i; fd_set *__arr = (s); for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) __FDS_BITS (__arr)[__i] = 0; } while (0) #define __FD_SET(d,s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d)) #define __FD_CLR(d,s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d)) #define __FD_ISSET(d,s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0) # 32 "./include/sys/select.h" 2 # 1 "./include/bits/sigset.h" 1 # 21 "./include/bits/sigset.h" #define _SIGSET_H_types 1 typedef int __sig_atomic_t; # 38 "./include/bits/sigset.h" #define _SIGSET_NWORDS (64 / (8 * sizeof (unsigned long))) typedef struct { unsigned long __val[(64 / (8 * sizeof (unsigned long)))]; } __sigset_t; # 35 "./include/sys/select.h" 2 #define __sigset_t_defined typedef __sigset_t sigset_t; #define __need_time_t #define __need_timespec # 1 "./include/time.h" 1 # 68 "./include/time.h" #undef __need_clock_t # 84 "./include/time.h" #undef __need_time_t # 96 "./include/time.h" #undef __clockid_time_t # 108 "./include/time.h" #undef __need_timer_t #define __timespec_defined 1 struct timespec { __time_t tv_sec; long int tv_nsec; }; #undef __need_timespec # 45 "./include/sys/select.h" 2 #define __need_timeval # 1 "./include/bits/time.h" 1 # 66 "./include/bits/time.h" #undef __need_timeval #define _STRUCT_TIMEVAL 1 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 47 "./include/sys/select.h" 2 # 55 "./include/sys/select.h" typedef long int __fd_mask; #undef __NFDBITS #undef __FDELT #undef __FDMASK #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 "./include/sys/select.h" extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 122 "./include/sys/select.h" extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); # 221 "./include/sys/types.h" 2 # 1 "./include/sys/sysmacros.h" 1 # 21 "./include/sys/sysmacros.h" #define _SYS_SYSMACROS_H 1 __extension__ static __inline unsigned int gnu_dev_major (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ static __inline unsigned int gnu_dev_minor (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ static __inline unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__)); __extension__ static __inline unsigned int __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev) { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ static __inline unsigned int __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev) { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ static __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) # 224 "./include/sys/types.h" 2 typedef __blksize_t blksize_t; #define __blksize_t_defined typedef __blkcnt_t blkcnt_t; #define __blkcnt_t_defined typedef __fsblkcnt_t fsblkcnt_t; #define __fsblkcnt_t_defined typedef __fsfilcnt_t fsfilcnt_t; #define __fsfilcnt_t_defined # 262 "./include/sys/types.h" typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; # 273 "./include/sys/types.h" # 215 "./include/stdlib.h" 2 __extension__ extern quad_t strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern u_quad_t 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))) ; # 307 "./include/stdlib.h" extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ; extern long int a64l (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; # 323 "./include/stdlib.h" 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; int8_t rand_type; int8_t rand_deg; int8_t 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__)); # 404 "./include/stdlib.h" 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__)) ; extern void free (void *__ptr) __attribute__ ((__nothrow__)); # 1 "./include/alloca.h" 1 # 20 "./include/alloca.h" #define _ALLOCA_H 1 #define __need_size_t # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 1 3 4 # 233 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_size_t # 406 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_NULL # 26 "./include/alloca.h" 2 #undef alloca extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); #define alloca(size) __builtin_alloca (size) #define __MAX_ALLOCA_CUTOFF 65536 # 1 "./include/bits/stackinfo.h" 1 # 23 "./include/bits/stackinfo.h" #define _STACKINFO_H 1 #define _STACK_GROWS_DOWN 1 # 43 "./include/alloca.h" 2 #define extend_alloca(buf,len,newlen) (__typeof (buf)) ({ size_t __newlen = (newlen); char *__newbuf = alloca (__newlen); if (__newbuf + __newlen == (char *) buf) len += __newlen; else len = __newlen; __newbuf; }) # 71 "./include/alloca.h" extern int __libc_alloca_cutoff (size_t size); # 518 "./include/stdlib.h" 2 extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 582 "./include/stdlib.h" 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__)); #define __UCLIBC_MAX_ATEXIT INT_MAX # 610 "./include/stdlib.h" extern int clearenv (void) __attribute__ ((__nothrow__)); # 632 "./include/stdlib.h" extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; # 642 "./include/stdlib.h" extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; # 652 "./include/stdlib.h" extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; extern int system (__const char *__command) ; extern char *canonicalize_file_name (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; # 678 "./include/stdlib.h" 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; typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *); extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __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 void qsort_r (void *__base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void *__arg) __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__)) ; # 847 "./include/stdlib.h" extern int getsubopt (char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ; extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 866 "./include/stdlib.h" extern int posix_openpt (int __oflag) ; # 876 "./include/stdlib.h" extern int grantpt (int __fd) __attribute__ ((__nothrow__)); extern int unlockpt (int __fd) __attribute__ ((__nothrow__)); extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) ; # 894 "./include/stdlib.h" extern int ptsname_r (int __fd, char *__buf, size_t __buflen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 920 "./include/stdlib.h" extern int __drand48_iterate (unsigned short int xsubi[3], struct drand48_data *buffer) __attribute__ ((visibility ("hidden"))); extern struct drand48_data __libc_drand48_data __attribute__ ((visibility ("hidden"))); #undef __need_malloc_and_calloc # 29 "./ldso/include/ldso.h" 2 # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stdarg.h" 1 3 4 # 31 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stdarg.h" 3 4 #define _STDARG_H #define _ANSI_STDARG_H_ #undef __need___va_list #define __GNUC_VA_LIST typedef __builtin_va_list __gnuc_va_list; #define va_start(v,l) __builtin_va_start(v,l) #define va_end(v) __builtin_va_end(v) #define va_arg(v,l) __builtin_va_arg(v,l) #define va_copy(d,s) __builtin_va_copy(d,s) #define __va_copy(d,s) __builtin_va_copy(d,s) # 102 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stdarg.h" 3 4 typedef __gnuc_va_list va_list; #define _VA_LIST_ #define _VA_LIST #define _VA_LIST_DEFINED #define _VA_LIST_T_H #define __va_list__ # 30 "./ldso/include/ldso.h" 2 # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 1 3 4 # 40 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #define _STDDEF_H #define _STDDEF_H_ #define _ANSI_STDDEF_H #define __STDDEF_H__ # 138 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/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 long int ptrdiff_t; # 160 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_ptrdiff_t # 233 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_size_t # 262 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/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 # 289 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef _BSD_WCHAR_T_ # 323 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 typedef int wchar_t; # 342 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_wchar_t # 395 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef NULL #define NULL ((void *)0) #undef __need_NULL #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER) # 31 "./ldso/include/ldso.h" 2 # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stdbool.h" 1 3 4 # 29 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stdbool.h" 3 4 #define _STDBOOL_H #define bool _Bool #define true 1 #define false 0 # 48 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stdbool.h" 3 4 #define __bool_true_false_are_defined 1 # 32 "./ldso/include/ldso.h" 2 #define _FCNTL_H # 1 "./include/bits/fcntl.h" 1 # 27 "./include/bits/fcntl.h" # 1 "./include/bits/uio.h" 1 # 24 "./include/bits/uio.h" #define _BITS_UIO_H 1 # 40 "./include/bits/uio.h" #define UIO_MAXIOV 1024 #define UIO_FASTIOV 8 struct iovec { void *iov_base; size_t iov_len; }; # 28 "./include/bits/fcntl.h" 2 #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_DIRECTORY 040000 #define O_NOFOLLOW 0100000 #define O_DIRECT 0200000 #define O_NOATIME 01000000 #define O_CLOEXEC 02000000 #define O_DSYNC O_SYNC #define O_RSYNC O_SYNC #define O_LARGEFILE 0400000 #define F_DUPFD 0 #define F_GETFD 1 #define F_SETFD 2 #define F_GETFL 3 #define F_SETFL 4 #define F_GETLK 5 #define F_SETLK 6 #define F_SETLKW 7 #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 F_DUPFD_CLOEXEC 1030 #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; __off_t l_start; __off_t l_len; __pid_t l_pid; }; struct flock64 { short int l_type; short int l_whence; __off64_t l_start; __off64_t l_len; __pid_t l_pid; }; #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 #define SYNC_FILE_RANGE_WAIT_BEFORE 1 #define SYNC_FILE_RANGE_WRITE 2 #define SYNC_FILE_RANGE_WAIT_AFTER 4 #define SPLICE_F_MOVE 1 #define SPLICE_F_NONBLOCK 2 #define SPLICE_F_MORE 4 #define SPLICE_F_GIFT 8 extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) __attribute__ ((__nothrow__)); extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to, unsigned int __flags); extern ssize_t vmsplice (int __fdout, const struct iovec *__iov, size_t __count, unsigned int __flags); extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout, __off64_t *__offout, size_t __len, unsigned int __flags); extern ssize_t tee (int __fdin, int __fdout, size_t __len, unsigned int __flags); # 34 "./ldso/include/ldso.h" 2 # 1 "./include/bits/wordsize.h" 1 # 19 "./include/bits/wordsize.h" #define __WORDSIZE 32 # 35 "./ldso/include/ldso.h" 2 # 1 "./include/bits/uClibc_page.h" 1 # 22 "./include/bits/uClibc_page.h" #define _UCLIBC_PAGE_H #define PAGE_SHIFT 12 #define PAGE_SIZE (1UL << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) # 39 "./ldso/include/ldso.h" 2 # 1 "./include/sys/param.h" 1 # 20 "./include/sys/param.h" #define _SYS_PARAM_H 1 #define __undef_ARG_MAX # 1 "./include/limits.h" 1 # 25 "./include/limits.h" #define _LIBC_LIMITS_H_ 1 #define MB_LEN_MAX 16 # 125 "./include/limits.h" # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/limits.h" 1 # 124 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/limits.h" # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include-fixed/limits.h" 1 3 4 # 30 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include-fixed/limits.h" 3 4 #define _GCC_LIMITS_H_ # 61 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include-fixed/limits.h" 3 4 #define _LIMITS_H___ #undef CHAR_BIT #define CHAR_BIT __CHAR_BIT__ #undef SCHAR_MIN #define SCHAR_MIN (-SCHAR_MAX - 1) #undef SCHAR_MAX #define SCHAR_MAX __SCHAR_MAX__ #undef UCHAR_MAX #define UCHAR_MAX (SCHAR_MAX * 2 + 1) # 97 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include-fixed/limits.h" 3 4 #undef CHAR_MIN #define CHAR_MIN SCHAR_MIN #undef CHAR_MAX #define CHAR_MAX SCHAR_MAX #undef SHRT_MIN #define SHRT_MIN (-SHRT_MAX - 1) #undef SHRT_MAX #define SHRT_MAX __SHRT_MAX__ #undef USHRT_MAX #define USHRT_MAX (SHRT_MAX * 2 + 1) #undef INT_MIN #define INT_MIN (-INT_MAX - 1) #undef INT_MAX #define INT_MAX __INT_MAX__ #undef UINT_MAX #define UINT_MAX (INT_MAX * 2U + 1U) #undef LONG_MIN #define LONG_MIN (-LONG_MAX - 1L) #undef LONG_MAX #define LONG_MAX __LONG_MAX__ #undef ULONG_MAX #define ULONG_MAX (LONG_MAX * 2UL + 1UL) # 152 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include-fixed/limits.h" 3 4 #undef LONG_LONG_MIN #define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL) #undef LONG_LONG_MAX #define LONG_LONG_MAX __LONG_LONG_MAX__ #undef ULONG_LONG_MAX #define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL) # 125 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/limits.h" 2 #define LLONG_MIN LONG_LONG_MIN #define LLONG_MAX LONG_LONG_MAX #define ULLONG_MAX ULONG_LONG_MAX # 1 "./include/bits/posix1_lim.h" 1 # 26 "./include/bits/posix1_lim.h" #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 "./include/bits/local_lim.h" 1 # 26 "./include/bits/local_lim.h" #define __undef_NR_OPEN #define __undef_LINK_MAX #define __undef_OPEN_MAX #define __undef_ARG_MAX # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/linux/limits.h" 1 #define _LINUX_LIMITS_H #define NR_OPEN 1024 #define NGROUPS_MAX 65536 #define ARG_MAX 131072 #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 # 40 "./include/bits/local_lim.h" 2 #undef NR_OPEN #undef __undef_NR_OPEN #undef LINK_MAX #undef __undef_LINK_MAX #undef OPEN_MAX #undef __undef_OPEN_MAX #undef ARG_MAX #undef __undef_ARG_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 "./include/bits/posix1_lim.h" 2 # 1 "./include/bits/uClibc_local_lim.h" 1 # 11 "./include/bits/uClibc_local_lim.h" #define _BITS_UCLIBC_LOCAL_LIM_H 1 # 25 "./include/bits/uClibc_local_lim.h" #undef _POSIX_THREAD_KEYS_MAX #undef PTHREAD_KEYS_MAX #undef _POSIX_THREAD_DESTRUCTOR_ITERATIONS #undef PTHREAD_DESTRUCTOR_ITERATIONS #undef PTHREAD_STACK_MIN #undef DELAYTIMER_MAX # 155 "./include/bits/posix1_lim.h" 2 #define SSIZE_MAX LONG_MAX # 145 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/limits.h" 2 # 1 "./include/bits/posix2_lim.h" 1 # 24 "./include/bits/posix2_lim.h" #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/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/limits.h" 2 # 1 "./include/bits/xopen_lim.h" 1 # 31 "./include/bits/xopen_lim.h" #define _XOPEN_LIM_H 1 #define __need_IOV_MAX # 1 "./include/bits/stdio_lim.h" 1 # 42 "./include/bits/stdio_lim.h" #define IOV_MAX 1024 # 35 "./include/bits/xopen_lim.h" 2 # 66 "./include/bits/xopen_lim.h" #define _XOPEN_IOV_MAX _POSIX_UIO_MAXIOV # 76 "./include/bits/xopen_lim.h" #define NL_ARGMAX __UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS__ #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 # 105 "./include/bits/xopen_lim.h" #define WORD_BIT 32 # 129 "./include/bits/xopen_lim.h" #define LONG_BIT 32 # 153 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/limits.h" 2 # 126 "./include/limits.h" 2 # 27 "./include/sys/param.h" 2 # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/linux/param.h" 1 #define _LINUX_PARAM_H # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/asm/param.h" 1 # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/asm-generic/param.h" 1 #define __ASM_GENERIC_PARAM_H #define HZ 100 #define EXEC_PAGESIZE 4096 #define NOGROUP (-1) #define MAXHOSTNAMELEN 64 # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/asm/param.h" 2 # 5 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/linux/param.h" 2 # 29 "./include/sys/param.h" 2 #undef ARG_MAX #undef __undef_ARG_MAX #define NBBY CHAR_BIT #define NGROUPS NGROUPS_MAX #define MAXSYMLINKS 20 #define CANBSIZ MAX_CANON #define MAXPATHLEN PATH_MAX #define NOFILE 256 #define NCARGS 131072 #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 # 41 "./ldso/include/ldso.h" 2 # 1 "./ldso/include/dl-syscall.h" 1 # 9 "./ldso/include/dl-syscall.h" #define _LD_SYSCALL_H_ # 1 "./include/sys/syscall.h" 1 # 20 "./include/sys/syscall.h" #define _SYSCALL_H 1 # 1 "./include/bits/sysnum.h" 1 #define _BITS_SYSNUM_H #undef __NR_restart_syscall #define __NR_restart_syscall 0 #define SYS_restart_syscall __NR_restart_syscall #undef __NR_exit #define __NR_exit 1 #define SYS_exit __NR_exit #undef __NR_fork #define __NR_fork 2 #define SYS_fork __NR_fork #undef __NR_read #define __NR_read 3 #define SYS_read __NR_read #undef __NR_write #define __NR_write 4 #define SYS_write __NR_write #undef __NR_open #define __NR_open 5 #define SYS_open __NR_open #undef __NR_close #define __NR_close 6 #define SYS_close __NR_close #undef __NR_creat #define __NR_creat 8 #define SYS_creat __NR_creat #undef __NR_link #define __NR_link 9 #define SYS_link __NR_link #undef __NR_unlink #define __NR_unlink 10 #define SYS_unlink __NR_unlink #undef __NR_execve #define __NR_execve 11 #define SYS_execve __NR_execve #undef __NR_chdir #define __NR_chdir 12 #define SYS_chdir __NR_chdir #undef __NR_time #define __NR_time 13 #define SYS_time __NR_time #undef __NR_mknod #define __NR_mknod 14 #define SYS_mknod __NR_mknod #undef __NR_chmod #define __NR_chmod 15 #define SYS_chmod __NR_chmod #undef __NR_chown #define __NR_chown 16 #define SYS_chown __NR_chown #undef __NR_lseek #define __NR_lseek 19 #define SYS_lseek __NR_lseek #undef __NR_getpid #define __NR_getpid 20 #define SYS_getpid __NR_getpid #undef __NR_mount #define __NR_mount 21 #define SYS_mount __NR_mount #undef __NR_setuid #define __NR_setuid 23 #define SYS_setuid __NR_setuid #undef __NR_getuid #define __NR_getuid 24 #define SYS_getuid __NR_getuid #undef __NR_stime #define __NR_stime 25 #define SYS_stime __NR_stime #undef __NR_ptrace #define __NR_ptrace 26 #define SYS_ptrace __NR_ptrace #undef __NR_alarm #define __NR_alarm 27 #define SYS_alarm __NR_alarm #undef __NR_pause #define __NR_pause 29 #define SYS_pause __NR_pause #undef __NR_access #define __NR_access 33 #define SYS_access __NR_access #undef __NR_nice #define __NR_nice 34 #define SYS_nice __NR_nice #undef __NR_sync #define __NR_sync 36 #define SYS_sync __NR_sync #undef __NR_kill #define __NR_kill 37 #define SYS_kill __NR_kill #undef __NR_rename #define __NR_rename 38 #define SYS_rename __NR_rename #undef __NR_mkdir #define __NR_mkdir 39 #define SYS_mkdir __NR_mkdir #undef __NR_rmdir #define __NR_rmdir 40 #define SYS_rmdir __NR_rmdir #undef __NR_dup #define __NR_dup 41 #define SYS_dup __NR_dup #undef __NR_pipe #define __NR_pipe 42 #define SYS_pipe __NR_pipe #undef __NR_times #define __NR_times 43 #define SYS_times __NR_times #undef __NR_brk #define __NR_brk 45 #define SYS_brk __NR_brk #undef __NR_setgid #define __NR_setgid 46 #define SYS_setgid __NR_setgid #undef __NR_getgid #define __NR_getgid 47 #define SYS_getgid __NR_getgid #undef __NR_geteuid #define __NR_geteuid 49 #define SYS_geteuid __NR_geteuid #undef __NR_getegid #define __NR_getegid 50 #define SYS_getegid __NR_getegid #undef __NR_acct #define __NR_acct 51 #define SYS_acct __NR_acct #undef __NR_umount2 #define __NR_umount2 52 #define SYS_umount2 __NR_umount2 #undef __NR_ioctl #define __NR_ioctl 54 #define SYS_ioctl __NR_ioctl #undef __NR_fcntl #define __NR_fcntl 55 #define SYS_fcntl __NR_fcntl #undef __NR_setpgid #define __NR_setpgid 57 #define SYS_setpgid __NR_setpgid #undef __NR_umask #define __NR_umask 60 #define SYS_umask __NR_umask #undef __NR_chroot #define __NR_chroot 61 #define SYS_chroot __NR_chroot #undef __NR_ustat #define __NR_ustat 62 #define SYS_ustat __NR_ustat #undef __NR_dup2 #define __NR_dup2 63 #define SYS_dup2 __NR_dup2 #undef __NR_getppid #define __NR_getppid 64 #define SYS_getppid __NR_getppid #undef __NR_getpgrp #define __NR_getpgrp 65 #define SYS_getpgrp __NR_getpgrp #undef __NR_setsid #define __NR_setsid 66 #define SYS_setsid __NR_setsid #undef __NR_sgetmask #define __NR_sgetmask 68 #define SYS_sgetmask __NR_sgetmask #undef __NR_ssetmask #define __NR_ssetmask 69 #define SYS_ssetmask __NR_ssetmask #undef __NR_setreuid #define __NR_setreuid 70 #define SYS_setreuid __NR_setreuid #undef __NR_setregid #define __NR_setregid 71 #define SYS_setregid __NR_setregid #undef __NR_sethostname #define __NR_sethostname 74 #define SYS_sethostname __NR_sethostname #undef __NR_setrlimit #define __NR_setrlimit 75 #define SYS_setrlimit __NR_setrlimit #undef __NR_getrusage #define __NR_getrusage 77 #define SYS_getrusage __NR_getrusage #undef __NR_gettimeofday #define __NR_gettimeofday 78 #define SYS_gettimeofday __NR_gettimeofday #undef __NR_settimeofday #define __NR_settimeofday 79 #define SYS_settimeofday __NR_settimeofday #undef __NR_getgroups #define __NR_getgroups 80 #define SYS_getgroups __NR_getgroups #undef __NR_setgroups #define __NR_setgroups 81 #define SYS_setgroups __NR_setgroups #undef __NR_symlink #define __NR_symlink 83 #define SYS_symlink __NR_symlink #undef __NR_readlink #define __NR_readlink 85 #define SYS_readlink __NR_readlink #undef __NR_reboot #define __NR_reboot 88 #define SYS_reboot __NR_reboot #undef __NR_munmap #define __NR_munmap 91 #define SYS_munmap __NR_munmap #undef __NR_truncate #define __NR_truncate 92 #define SYS_truncate __NR_truncate #undef __NR_ftruncate #define __NR_ftruncate 93 #define SYS_ftruncate __NR_ftruncate #undef __NR_fchmod #define __NR_fchmod 94 #define SYS_fchmod __NR_fchmod #undef __NR_fchown #define __NR_fchown 95 #define SYS_fchown __NR_fchown #undef __NR_getpriority #define __NR_getpriority 96 #define SYS_getpriority __NR_getpriority #undef __NR_setpriority #define __NR_setpriority 97 #define SYS_setpriority __NR_setpriority #undef __NR_statfs #define __NR_statfs 99 #define SYS_statfs __NR_statfs #undef __NR_fstatfs #define __NR_fstatfs 100 #define SYS_fstatfs __NR_fstatfs #undef __NR_syslog #define __NR_syslog 103 #define SYS_syslog __NR_syslog #undef __NR_setitimer #define __NR_setitimer 104 #define SYS_setitimer __NR_setitimer #undef __NR_getitimer #define __NR_getitimer 105 #define SYS_getitimer __NR_getitimer #undef __NR_stat #define __NR_stat 106 #define SYS_stat __NR_stat #undef __NR_lstat #define __NR_lstat 107 #define SYS_lstat __NR_lstat #undef __NR_fstat #define __NR_fstat 108 #define SYS_fstat __NR_fstat #undef __NR_vhangup #define __NR_vhangup 111 #define SYS_vhangup __NR_vhangup #undef __NR_wait4 #define __NR_wait4 114 #define SYS_wait4 __NR_wait4 #undef __NR_sysinfo #define __NR_sysinfo 116 #define SYS_sysinfo __NR_sysinfo #undef __NR_fsync #define __NR_fsync 118 #define SYS_fsync __NR_fsync #undef __NR_clone #define __NR_clone 120 #define SYS_clone __NR_clone #undef __NR_setdomainname #define __NR_setdomainname 121 #define SYS_setdomainname __NR_setdomainname #undef __NR_uname #define __NR_uname 122 #define SYS_uname __NR_uname #undef __NR_adjtimex #define __NR_adjtimex 124 #define SYS_adjtimex __NR_adjtimex #undef __NR_mprotect #define __NR_mprotect 125 #define SYS_mprotect __NR_mprotect #undef __NR_init_module #define __NR_init_module 128 #define SYS_init_module __NR_init_module #undef __NR_delete_module #define __NR_delete_module 129 #define SYS_delete_module __NR_delete_module #undef __NR_quotactl #define __NR_quotactl 131 #define SYS_quotactl __NR_quotactl #undef __NR_getpgid #define __NR_getpgid 132 #define SYS_getpgid __NR_getpgid #undef __NR_fchdir #define __NR_fchdir 133 #define SYS_fchdir __NR_fchdir #undef __NR_bdflush #define __NR_bdflush 134 #define SYS_bdflush __NR_bdflush #undef __NR_personality #define __NR_personality 136 #define SYS_personality __NR_personality #undef __NR_setfsuid #define __NR_setfsuid 138 #define SYS_setfsuid __NR_setfsuid #undef __NR_setfsgid #define __NR_setfsgid 139 #define SYS_setfsgid __NR_setfsgid #undef __NR__llseek #define __NR__llseek 140 #define SYS__llseek __NR__llseek #undef __NR_getdents #define __NR_getdents 141 #define SYS_getdents __NR_getdents #undef __NR_flock #define __NR_flock 143 #define SYS_flock __NR_flock #undef __NR_readv #define __NR_readv 145 #define SYS_readv __NR_readv #undef __NR_writev #define __NR_writev 146 #define SYS_writev __NR_writev #undef __NR_getsid #define __NR_getsid 147 #define SYS_getsid __NR_getsid #undef __NR_fdatasync #define __NR_fdatasync 148 #define SYS_fdatasync __NR_fdatasync #undef __NR__sysctl #define __NR__sysctl 149 #define SYS__sysctl __NR__sysctl #undef __NR_sched_setparam #define __NR_sched_setparam 154 #define SYS_sched_setparam __NR_sched_setparam #undef __NR_sched_getparam #define __NR_sched_getparam 155 #define SYS_sched_getparam __NR_sched_getparam #undef __NR_sched_setscheduler #define __NR_sched_setscheduler 156 #define SYS_sched_setscheduler __NR_sched_setscheduler #undef __NR_sched_getscheduler #define __NR_sched_getscheduler 157 #define SYS_sched_getscheduler __NR_sched_getscheduler #undef __NR_sched_yield #define __NR_sched_yield 158 #define SYS_sched_yield __NR_sched_yield #undef __NR_sched_get_priority_max #define __NR_sched_get_priority_max 159 #define SYS_sched_get_priority_max __NR_sched_get_priority_max #undef __NR_sched_get_priority_min #define __NR_sched_get_priority_min 160 #define SYS_sched_get_priority_min __NR_sched_get_priority_min #undef __NR_sched_rr_get_interval #define __NR_sched_rr_get_interval 161 #define SYS_sched_rr_get_interval __NR_sched_rr_get_interval #undef __NR_nanosleep #define __NR_nanosleep 162 #define SYS_nanosleep __NR_nanosleep #undef __NR_mremap #define __NR_mremap 163 #define SYS_mremap __NR_mremap #undef __NR_setresuid #define __NR_setresuid 164 #define SYS_setresuid __NR_setresuid #undef __NR_getresuid #define __NR_getresuid 165 #define SYS_getresuid __NR_getresuid #undef __NR_nfsservctl #define __NR_nfsservctl 169 #define SYS_nfsservctl __NR_nfsservctl #undef __NR_setresgid #define __NR_setresgid 170 #define SYS_setresgid __NR_setresgid #undef __NR_getresgid #define __NR_getresgid 171 #define SYS_getresgid __NR_getresgid #undef __NR_prctl #define __NR_prctl 172 #define SYS_prctl __NR_prctl #undef __NR_rt_sigreturn #define __NR_rt_sigreturn 173 #define SYS_rt_sigreturn __NR_rt_sigreturn #undef __NR_rt_sigaction #define __NR_rt_sigaction 174 #define SYS_rt_sigaction __NR_rt_sigaction #undef __NR_rt_sigprocmask #define __NR_rt_sigprocmask 175 #define SYS_rt_sigprocmask __NR_rt_sigprocmask #undef __NR_rt_sigpending #define __NR_rt_sigpending 176 #define SYS_rt_sigpending __NR_rt_sigpending #undef __NR_rt_sigtimedwait #define __NR_rt_sigtimedwait 177 #define SYS_rt_sigtimedwait __NR_rt_sigtimedwait #undef __NR_rt_sigqueueinfo #define __NR_rt_sigqueueinfo 178 #define SYS_rt_sigqueueinfo __NR_rt_sigqueueinfo #undef __NR_rt_sigsuspend #define __NR_rt_sigsuspend 179 #define SYS_rt_sigsuspend __NR_rt_sigsuspend #undef __NR_pread #define __NR_pread 180 #define SYS_pread __NR_pread #undef __NR_pwrite #define __NR_pwrite 181 #define SYS_pwrite __NR_pwrite #undef __NR_lchown #define __NR_lchown 182 #define SYS_lchown __NR_lchown #undef __NR_getcwd #define __NR_getcwd 183 #define SYS_getcwd __NR_getcwd #undef __NR_capget #define __NR_capget 184 #define SYS_capget __NR_capget #undef __NR_capset #define __NR_capset 185 #define SYS_capset __NR_capset #undef __NR_sigaltstack #define __NR_sigaltstack 186 #define SYS_sigaltstack __NR_sigaltstack #undef __NR_sendfile #define __NR_sendfile 187 #define SYS_sendfile __NR_sendfile #undef __NR_vfork #define __NR_vfork 190 #define SYS_vfork __NR_vfork #undef __NR_getrlimit #define __NR_getrlimit 191 #define SYS_getrlimit __NR_getrlimit #undef __NR_mmap2 #define __NR_mmap2 192 #define SYS_mmap2 __NR_mmap2 #undef __NR_truncate64 #define __NR_truncate64 193 #define SYS_truncate64 __NR_truncate64 #undef __NR_ftruncate64 #define __NR_ftruncate64 194 #define SYS_ftruncate64 __NR_ftruncate64 #undef __NR_stat64 #define __NR_stat64 195 #define SYS_stat64 __NR_stat64 #undef __NR_lstat64 #define __NR_lstat64 196 #define SYS_lstat64 __NR_lstat64 #undef __NR_fstat64 #define __NR_fstat64 197 #define SYS_fstat64 __NR_fstat64 #undef __NR_chown32 #define __NR_chown32 198 #define SYS_chown32 __NR_chown32 #undef __NR_getuid32 #define __NR_getuid32 199 #define SYS_getuid32 __NR_getuid32 #undef __NR_getgid32 #define __NR_getgid32 200 #define SYS_getgid32 __NR_getgid32 #undef __NR_geteuid32 #define __NR_geteuid32 201 #define SYS_geteuid32 __NR_geteuid32 #undef __NR_getegid32 #define __NR_getegid32 202 #define SYS_getegid32 __NR_getegid32 #undef __NR_setreuid32 #define __NR_setreuid32 203 #define SYS_setreuid32 __NR_setreuid32 #undef __NR_setregid32 #define __NR_setregid32 204 #define SYS_setregid32 __NR_setregid32 #undef __NR_getgroups32 #define __NR_getgroups32 205 #define SYS_getgroups32 __NR_getgroups32 #undef __NR_setgroups32 #define __NR_setgroups32 206 #define SYS_setgroups32 __NR_setgroups32 #undef __NR_fchown32 #define __NR_fchown32 207 #define SYS_fchown32 __NR_fchown32 #undef __NR_setresuid32 #define __NR_setresuid32 208 #define SYS_setresuid32 __NR_setresuid32 #undef __NR_getresuid32 #define __NR_getresuid32 209 #define SYS_getresuid32 __NR_getresuid32 #undef __NR_setresgid32 #define __NR_setresgid32 210 #define SYS_setresgid32 __NR_setresgid32 #undef __NR_getresgid32 #define __NR_getresgid32 211 #define SYS_getresgid32 __NR_getresgid32 #undef __NR_lchown32 #define __NR_lchown32 212 #define SYS_lchown32 __NR_lchown32 #undef __NR_setuid32 #define __NR_setuid32 213 #define SYS_setuid32 __NR_setuid32 #undef __NR_setgid32 #define __NR_setgid32 214 #define SYS_setgid32 __NR_setgid32 #undef __NR_setfsuid32 #define __NR_setfsuid32 215 #define SYS_setfsuid32 __NR_setfsuid32 #undef __NR_setfsgid32 #define __NR_setfsgid32 216 #define SYS_setfsgid32 __NR_setfsgid32 #undef __NR_pivot_root #define __NR_pivot_root 217 #define SYS_pivot_root __NR_pivot_root #undef __NR_getdents64 #define __NR_getdents64 220 #define SYS_getdents64 __NR_getdents64 #undef __NR_fcntl64 #define __NR_fcntl64 221 #define SYS_fcntl64 __NR_fcntl64 #undef __NR_gettid #define __NR_gettid 224 #define SYS_gettid __NR_gettid #undef __NR_readahead #define __NR_readahead 225 #define SYS_readahead __NR_readahead #undef __NR_setxattr #define __NR_setxattr 226 #define SYS_setxattr __NR_setxattr #undef __NR_lsetxattr #define __NR_lsetxattr 227 #define SYS_lsetxattr __NR_lsetxattr #undef __NR_fsetxattr #define __NR_fsetxattr 228 #define SYS_fsetxattr __NR_fsetxattr #undef __NR_getxattr #define __NR_getxattr 229 #define SYS_getxattr __NR_getxattr #undef __NR_lgetxattr #define __NR_lgetxattr 230 #define SYS_lgetxattr __NR_lgetxattr #undef __NR_fgetxattr #define __NR_fgetxattr 231 #define SYS_fgetxattr __NR_fgetxattr #undef __NR_listxattr #define __NR_listxattr 232 #define SYS_listxattr __NR_listxattr #undef __NR_llistxattr #define __NR_llistxattr 233 #define SYS_llistxattr __NR_llistxattr #undef __NR_flistxattr #define __NR_flistxattr 234 #define SYS_flistxattr __NR_flistxattr #undef __NR_removexattr #define __NR_removexattr 235 #define SYS_removexattr __NR_removexattr #undef __NR_lremovexattr #define __NR_lremovexattr 236 #define SYS_lremovexattr __NR_lremovexattr #undef __NR_fremovexattr #define __NR_fremovexattr 237 #define SYS_fremovexattr __NR_fremovexattr #undef __NR_tkill #define __NR_tkill 238 #define SYS_tkill __NR_tkill #undef __NR_sendfile64 #define __NR_sendfile64 239 #define SYS_sendfile64 __NR_sendfile64 #undef __NR_futex #define __NR_futex 240 #define SYS_futex __NR_futex #undef __NR_sched_setaffinity #define __NR_sched_setaffinity 241 #define SYS_sched_setaffinity __NR_sched_setaffinity #undef __NR_sched_getaffinity #define __NR_sched_getaffinity 242 #define SYS_sched_getaffinity __NR_sched_getaffinity #undef __NR_io_setup #define __NR_io_setup 245 #define SYS_io_setup __NR_io_setup #undef __NR_io_destroy #define __NR_io_destroy 246 #define SYS_io_destroy __NR_io_destroy #undef __NR_io_getevents #define __NR_io_getevents 247 #define SYS_io_getevents __NR_io_getevents #undef __NR_io_submit #define __NR_io_submit 248 #define SYS_io_submit __NR_io_submit #undef __NR_io_cancel #define __NR_io_cancel 249 #define SYS_io_cancel __NR_io_cancel #undef __NR_exit_group #define __NR_exit_group 252 #define SYS_exit_group __NR_exit_group #undef __NR_lookup_dcookie #define __NR_lookup_dcookie 253 #define SYS_lookup_dcookie __NR_lookup_dcookie #undef __NR_bfin_spinlock #define __NR_bfin_spinlock 254 #define SYS_bfin_spinlock __NR_bfin_spinlock #undef __NR_epoll_create #define __NR_epoll_create 255 #define SYS_epoll_create __NR_epoll_create #undef __NR_epoll_ctl #define __NR_epoll_ctl 256 #define SYS_epoll_ctl __NR_epoll_ctl #undef __NR_epoll_wait #define __NR_epoll_wait 257 #define SYS_epoll_wait __NR_epoll_wait #undef __NR_set_tid_address #define __NR_set_tid_address 259 #define SYS_set_tid_address __NR_set_tid_address #undef __NR_timer_create #define __NR_timer_create 260 #define SYS_timer_create __NR_timer_create #undef __NR_timer_settime #define __NR_timer_settime 261 #define SYS_timer_settime __NR_timer_settime #undef __NR_timer_gettime #define __NR_timer_gettime 262 #define SYS_timer_gettime __NR_timer_gettime #undef __NR_timer_getoverrun #define __NR_timer_getoverrun 263 #define SYS_timer_getoverrun __NR_timer_getoverrun #undef __NR_timer_delete #define __NR_timer_delete 264 #define SYS_timer_delete __NR_timer_delete #undef __NR_clock_settime #define __NR_clock_settime 265 #define SYS_clock_settime __NR_clock_settime #undef __NR_clock_gettime #define __NR_clock_gettime 266 #define SYS_clock_gettime __NR_clock_gettime #undef __NR_clock_getres #define __NR_clock_getres 267 #define SYS_clock_getres __NR_clock_getres #undef __NR_clock_nanosleep #define __NR_clock_nanosleep 268 #define SYS_clock_nanosleep __NR_clock_nanosleep #undef __NR_statfs64 #define __NR_statfs64 269 #define SYS_statfs64 __NR_statfs64 #undef __NR_fstatfs64 #define __NR_fstatfs64 270 #define SYS_fstatfs64 __NR_fstatfs64 #undef __NR_tgkill #define __NR_tgkill 271 #define SYS_tgkill __NR_tgkill #undef __NR_utimes #define __NR_utimes 272 #define SYS_utimes __NR_utimes #undef __NR_fadvise64_64 #define __NR_fadvise64_64 273 #define SYS_fadvise64_64 __NR_fadvise64_64 #undef __NR_mq_open #define __NR_mq_open 278 #define SYS_mq_open __NR_mq_open #undef __NR_mq_unlink #define __NR_mq_unlink 279 #define SYS_mq_unlink __NR_mq_unlink #undef __NR_mq_timedsend #define __NR_mq_timedsend 280 #define SYS_mq_timedsend __NR_mq_timedsend #undef __NR_mq_timedreceive #define __NR_mq_timedreceive 281 #define SYS_mq_timedreceive __NR_mq_timedreceive #undef __NR_mq_notify #define __NR_mq_notify 282 #define SYS_mq_notify __NR_mq_notify #undef __NR_mq_getsetattr #define __NR_mq_getsetattr 283 #define SYS_mq_getsetattr __NR_mq_getsetattr #undef __NR_kexec_load #define __NR_kexec_load 284 #define SYS_kexec_load __NR_kexec_load #undef __NR_waitid #define __NR_waitid 285 #define SYS_waitid __NR_waitid #undef __NR_add_key #define __NR_add_key 286 #define SYS_add_key __NR_add_key #undef __NR_request_key #define __NR_request_key 287 #define SYS_request_key __NR_request_key #undef __NR_keyctl #define __NR_keyctl 288 #define SYS_keyctl __NR_keyctl #undef __NR_ioprio_set #define __NR_ioprio_set 289 #define SYS_ioprio_set __NR_ioprio_set #undef __NR_ioprio_get #define __NR_ioprio_get 290 #define SYS_ioprio_get __NR_ioprio_get #undef __NR_inotify_init #define __NR_inotify_init 291 #define SYS_inotify_init __NR_inotify_init #undef __NR_inotify_add_watch #define __NR_inotify_add_watch 292 #define SYS_inotify_add_watch __NR_inotify_add_watch #undef __NR_inotify_rm_watch #define __NR_inotify_rm_watch 293 #define SYS_inotify_rm_watch __NR_inotify_rm_watch #undef __NR_openat #define __NR_openat 295 #define SYS_openat __NR_openat #undef __NR_mkdirat #define __NR_mkdirat 296 #define SYS_mkdirat __NR_mkdirat #undef __NR_mknodat #define __NR_mknodat 297 #define SYS_mknodat __NR_mknodat #undef __NR_fchownat #define __NR_fchownat 298 #define SYS_fchownat __NR_fchownat #undef __NR_futimesat #define __NR_futimesat 299 #define SYS_futimesat __NR_futimesat #undef __NR_fstatat64 #define __NR_fstatat64 300 #define SYS_fstatat64 __NR_fstatat64 #undef __NR_unlinkat #define __NR_unlinkat 301 #define SYS_unlinkat __NR_unlinkat #undef __NR_renameat #define __NR_renameat 302 #define SYS_renameat __NR_renameat #undef __NR_linkat #define __NR_linkat 303 #define SYS_linkat __NR_linkat #undef __NR_symlinkat #define __NR_symlinkat 304 #define SYS_symlinkat __NR_symlinkat #undef __NR_readlinkat #define __NR_readlinkat 305 #define SYS_readlinkat __NR_readlinkat #undef __NR_fchmodat #define __NR_fchmodat 306 #define SYS_fchmodat __NR_fchmodat #undef __NR_faccessat #define __NR_faccessat 307 #define SYS_faccessat __NR_faccessat #undef __NR_pselect6 #define __NR_pselect6 308 #define SYS_pselect6 __NR_pselect6 #undef __NR_ppoll #define __NR_ppoll 309 #define SYS_ppoll __NR_ppoll #undef __NR_unshare #define __NR_unshare 310 #define SYS_unshare __NR_unshare #undef __NR_sram_alloc #define __NR_sram_alloc 311 #define SYS_sram_alloc __NR_sram_alloc #undef __NR_sram_free #define __NR_sram_free 312 #define SYS_sram_free __NR_sram_free #undef __NR_dma_memcpy #define __NR_dma_memcpy 313 #define SYS_dma_memcpy __NR_dma_memcpy #undef __NR_accept #define __NR_accept 314 #define SYS_accept __NR_accept #undef __NR_bind #define __NR_bind 315 #define SYS_bind __NR_bind #undef __NR_connect #define __NR_connect 316 #define SYS_connect __NR_connect #undef __NR_getpeername #define __NR_getpeername 317 #define SYS_getpeername __NR_getpeername #undef __NR_getsockname #define __NR_getsockname 318 #define SYS_getsockname __NR_getsockname #undef __NR_getsockopt #define __NR_getsockopt 319 #define SYS_getsockopt __NR_getsockopt #undef __NR_listen #define __NR_listen 320 #define SYS_listen __NR_listen #undef __NR_recv #define __NR_recv 321 #define SYS_recv __NR_recv #undef __NR_recvfrom #define __NR_recvfrom 322 #define SYS_recvfrom __NR_recvfrom #undef __NR_recvmsg #define __NR_recvmsg 323 #define SYS_recvmsg __NR_recvmsg #undef __NR_send #define __NR_send 324 #define SYS_send __NR_send #undef __NR_sendmsg #define __NR_sendmsg 325 #define SYS_sendmsg __NR_sendmsg #undef __NR_sendto #define __NR_sendto 326 #define SYS_sendto __NR_sendto #undef __NR_setsockopt #define __NR_setsockopt 327 #define SYS_setsockopt __NR_setsockopt #undef __NR_shutdown #define __NR_shutdown 328 #define SYS_shutdown __NR_shutdown #undef __NR_socket #define __NR_socket 329 #define SYS_socket __NR_socket #undef __NR_socketpair #define __NR_socketpair 330 #define SYS_socketpair __NR_socketpair #undef __NR_semctl #define __NR_semctl 331 #define SYS_semctl __NR_semctl #undef __NR_semget #define __NR_semget 332 #define SYS_semget __NR_semget #undef __NR_semop #define __NR_semop 333 #define SYS_semop __NR_semop #undef __NR_msgctl #define __NR_msgctl 334 #define SYS_msgctl __NR_msgctl #undef __NR_msgget #define __NR_msgget 335 #define SYS_msgget __NR_msgget #undef __NR_msgrcv #define __NR_msgrcv 336 #define SYS_msgrcv __NR_msgrcv #undef __NR_msgsnd #define __NR_msgsnd 337 #define SYS_msgsnd __NR_msgsnd #undef __NR_shmat #define __NR_shmat 338 #define SYS_shmat __NR_shmat #undef __NR_shmctl #define __NR_shmctl 339 #define SYS_shmctl __NR_shmctl #undef __NR_shmdt #define __NR_shmdt 340 #define SYS_shmdt __NR_shmdt #undef __NR_shmget #define __NR_shmget 341 #define SYS_shmget __NR_shmget #undef __NR_splice #define __NR_splice 342 #define SYS_splice __NR_splice #undef __NR_sync_file_range #define __NR_sync_file_range 343 #define SYS_sync_file_range __NR_sync_file_range #undef __NR_tee #define __NR_tee 344 #define SYS_tee __NR_tee #undef __NR_vmsplice #define __NR_vmsplice 345 #define SYS_vmsplice __NR_vmsplice #undef __NR_epoll_pwait #define __NR_epoll_pwait 346 #define SYS_epoll_pwait __NR_epoll_pwait #undef __NR_utimensat #define __NR_utimensat 347 #define SYS_utimensat __NR_utimensat #undef __NR_signalfd #define __NR_signalfd 348 #define SYS_signalfd __NR_signalfd #undef __NR_timerfd_create #define __NR_timerfd_create 349 #define SYS_timerfd_create __NR_timerfd_create #undef __NR_eventfd #define __NR_eventfd 350 #define SYS_eventfd __NR_eventfd #undef __NR_pread64 #define __NR_pread64 351 #define SYS_pread64 __NR_pread64 #undef __NR_pwrite64 #define __NR_pwrite64 352 #define SYS_pwrite64 __NR_pwrite64 #undef __NR_fadvise64 #define __NR_fadvise64 353 #define SYS_fadvise64 __NR_fadvise64 #undef __NR_set_robust_list #define __NR_set_robust_list 354 #define SYS_set_robust_list __NR_set_robust_list #undef __NR_get_robust_list #define __NR_get_robust_list 355 #define SYS_get_robust_list __NR_get_robust_list #undef __NR_fallocate #define __NR_fallocate 356 #define SYS_fallocate __NR_fallocate #undef __NR_semtimedop #define __NR_semtimedop 357 #define SYS_semtimedop __NR_semtimedop #undef __NR_timerfd_settime #define __NR_timerfd_settime 358 #define SYS_timerfd_settime __NR_timerfd_settime #undef __NR_timerfd_gettime #define __NR_timerfd_gettime 359 #define SYS_timerfd_gettime __NR_timerfd_gettime #undef __NR_signalfd4 #define __NR_signalfd4 360 #define SYS_signalfd4 __NR_signalfd4 #undef __NR_eventfd2 #define __NR_eventfd2 361 #define SYS_eventfd2 __NR_eventfd2 #undef __NR_epoll_create1 #define __NR_epoll_create1 362 #define SYS_epoll_create1 __NR_epoll_create1 #undef __NR_dup3 #define __NR_dup3 363 #define SYS_dup3 __NR_dup3 #undef __NR_pipe2 #define __NR_pipe2 364 #define SYS_pipe2 __NR_pipe2 #undef __NR_inotify_init1 #define __NR_inotify_init1 365 #define SYS_inotify_init1 __NR_inotify_init1 #undef __NR_preadv #define __NR_preadv 366 #define SYS_preadv __NR_preadv #undef __NR_pwritev #define __NR_pwritev 367 #define SYS_pwritev __NR_pwritev #undef __NR_rt_tgsigqueueinfo #define __NR_rt_tgsigqueueinfo 368 #define SYS_rt_tgsigqueueinfo __NR_rt_tgsigqueueinfo #undef __NR_perf_event_open #define __NR_perf_event_open 369 #define SYS_perf_event_open __NR_perf_event_open #undef __NR_recvmmsg #define __NR_recvmmsg 370 #define SYS_recvmmsg __NR_recvmmsg #undef __NR_fanotify_init #define __NR_fanotify_init 371 #define SYS_fanotify_init __NR_fanotify_init #undef __NR_fanotify_mark #define __NR_fanotify_mark 372 #define SYS_fanotify_mark __NR_fanotify_mark #undef __NR_prlimit64 #define __NR_prlimit64 373 #define SYS_prlimit64 __NR_prlimit64 #undef __NR_cacheflush #define __NR_cacheflush 374 #define SYS_cacheflush __NR_cacheflush #undef __NR_name_to_handle_at #define __NR_name_to_handle_at 375 #define SYS_name_to_handle_at __NR_name_to_handle_at #undef __NR_open_by_handle_at #define __NR_open_by_handle_at 376 #define SYS_open_by_handle_at __NR_open_by_handle_at #undef __NR_clock_adjtime #define __NR_clock_adjtime 377 #define SYS_clock_adjtime __NR_clock_adjtime #undef __NR_syncfs #define __NR_syncfs 378 #define SYS_syncfs __NR_syncfs #undef __NR_setns #define __NR_setns 379 #define SYS_setns __NR_setns #undef __NR_sendmmsg #define __NR_sendmmsg 380 #define SYS_sendmmsg __NR_sendmmsg #undef __NR_process_vm_readv #define __NR_process_vm_readv 381 #define SYS_process_vm_readv __NR_process_vm_readv #undef __NR_process_vm_writev #define __NR_process_vm_writev 382 #define SYS_process_vm_writev __NR_process_vm_writev #undef __NR_syscall #define __NR_syscall 383 #define SYS_syscall __NR_syscall # 26 "./include/sys/syscall.h" 2 # 34 "./include/sys/syscall.h" # 1 "./include/bits/syscalls.h" 1 #define _BITS_SYSCALLS_H #define INTERNAL_SYSCALL_NCS(name,err,nr,args...) (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (name) ASMFMT_ ##nr(args) : "memory","CC"); __res; }) ) # 21 "./include/bits/syscalls.h" #define ASMFMT_0() #define ASMFMT_1(arg1) , "q0" ((long)(arg1)) #define ASMFMT_2(arg1,arg2) ASMFMT_1(arg1) , "q1" ((long)(arg2)) #define ASMFMT_3(arg1,arg2,arg3) ASMFMT_2(arg1, arg2) , "q2" ((long)(arg3)) #define ASMFMT_4(arg1,arg2,arg3,arg4) ASMFMT_3(arg1, arg2, arg3) , "q3" ((long)(arg4)) #define ASMFMT_5(arg1,arg2,arg3,arg4,arg5) ASMFMT_4(arg1, arg2, arg3, arg4) , "q4" ((long)(arg5)) #define ASMFMT_6(arg1,arg2,arg3,arg4,arg5,arg6) ASMFMT_5(arg1, arg2, arg3, arg4, arg5) , "q5" ((long)(arg6)) # 35 "./include/sys/syscall.h" 2 # 1 "./include/bits/syscalls-common.h" 1 #define _SYSCALLS_COMMON_H 1 #define SYS_ify(syscall_name) (__NR_ ##syscall_name) # 1 "./include/errno.h" 1 # 28 "./include/errno.h" #define _ERRNO_H 1 # 1 "./include/bits/errno.h" 1 # 22 "./include/bits/errno.h" #undef EDOM #undef EILSEQ #undef ERANGE # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/linux/errno.h" 1 #define _LINUX_ERRNO_H # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/asm/errno.h" 1 # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/asm-generic/errno.h" 1 #define _ASM_GENERIC_ERRNO_H # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/asm-generic/errno-base.h" 1 #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/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/asm-generic/errno.h" 2 #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 #define EOWNERDEAD 130 #define ENOTRECOVERABLE 131 #define ERFKILL 132 #define EHWPOISON 133 # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/asm/errno.h" 2 # 5 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/linux/errno.h" 2 # 26 "./include/bits/errno.h" 2 #define ENOTSUP EOPNOTSUPP # 45 "./include/bits/errno.h" extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); # 37 "./include/errno.h" 2 #undef __need_Emath # 47 "./include/errno.h" extern int errno; # 59 "./include/errno.h" #undef errno #define errno _dl_errno extern int _dl_errno; # 79 "./include/errno.h" #define __set_errno(val) (errno = (val)) # 91 "./include/errno.h" typedef int error_t; #define __error_t_defined 1 #undef __need_error_t # 21 "./include/bits/syscalls-common.h" 2 #define INTERNAL_SYSCALL_DECL(err) do { } while (0) #define INTERNAL_SYSCALL_ERROR_P(val,err) ((unsigned long)val >= (unsigned long)(-4095)) #define INTERNAL_SYSCALL_ERRNO(val,err) (-(val)) #define INLINE_SYSCALL(name,nr,args...) INLINE_SYSCALL_NCS(__NR_ ##name, nr, args) #define INLINE_SYSCALL_NOERR(name,nr,args...) INLINE_SYSCALL_NOERR_NCS(__NR_ ##name, nr, args) #define INLINE_SYSCALL_NCS(name,nr,args...) (__extension__ ({ INTERNAL_SYSCALL_DECL(__err); (__extension__ ({ long __res = INTERNAL_SYSCALL_NCS(name, __err, nr, args); if (unlikely(INTERNAL_SYSCALL_ERROR_P(__res, __err))) { __set_errno(INTERNAL_SYSCALL_ERRNO(__res, __err)); __res = -1L; } __res; }) ); }) ) # 60 "./include/bits/syscalls-common.h" #define INLINE_SYSCALL_NOERR_NCS(name,nr,args...) ({ INTERNAL_SYSCALL_DECL(__err); long __res = INTERNAL_SYSCALL_NCS(name, __err, nr, args); __res; }) # 70 "./include/bits/syscalls-common.h" #define INTERNAL_SYSCALL(name,err,nr,args...) INTERNAL_SYSCALL_NCS(__NR_ ##name, err, nr, args) # 79 "./include/bits/syscalls-common.h" #define C_DECL_ARGS_0() void #define C_DECL_ARGS_1(t,v) t v #define C_DECL_ARGS_2(t,v,args...) t v, C_DECL_ARGS_1(args) #define C_DECL_ARGS_3(t,v,args...) t v, C_DECL_ARGS_2(args) #define C_DECL_ARGS_4(t,v,args...) t v, C_DECL_ARGS_3(args) #define C_DECL_ARGS_5(t,v,args...) t v, C_DECL_ARGS_4(args) #define C_DECL_ARGS_6(t,v,args...) t v, C_DECL_ARGS_5(args) #define C_ARGS_0() #define C_ARGS_1(t,v) v #define C_ARGS_2(t,v,args...) v, C_ARGS_1(args) #define C_ARGS_3(t,v,args...) v, C_ARGS_2(args) #define C_ARGS_4(t,v,args...) v, C_ARGS_3(args) #define C_ARGS_5(t,v,args...) v, C_ARGS_4(args) #define C_ARGS_6(t,v,args...) v, C_ARGS_5(args) #define SYSCALL_FUNC(nargs,type,name,args...) type name(C_DECL_ARGS_ ##nargs(args)) { return (type)INLINE_SYSCALL(name, nargs, C_ARGS_ ##nargs(args)); } #define SYSCALL_NOERR_FUNC(nargs,type,name,args...) type name(C_DECL_ARGS_ ##nargs(args)) { return (type)INLINE_SYSCALL_NOERR(name, nargs, C_ARGS_ ##nargs(args)); } #define _syscall0(args...) SYSCALL_FUNC(0, args) #define _syscall_noerr0(args...) SYSCALL_NOERR_FUNC(0, args) #define _syscall1(args...) SYSCALL_FUNC(1, args) #define _syscall_noerr1(args...) SYSCALL_NOERR_FUNC(1, args) #define _syscall2(args...) SYSCALL_FUNC(2, args) #define _syscall3(args...) SYSCALL_FUNC(3, args) #define _syscall4(args...) SYSCALL_FUNC(4, args) #define _syscall5(args...) SYSCALL_FUNC(5, args) #define _syscall6(args...) SYSCALL_FUNC(6, args) # 36 "./include/sys/syscall.h" 2 # 14 "./ldso/include/dl-syscall.h" 2 extern int _dl_errno; #undef __set_errno #define __set_errno(X) {(_dl_errno) = (X);} # 1 "./ldso/ldso/bfin/dl-syscalls.h" 1 # 22 "./ldso/ldso/bfin/dl-syscalls.h" #define __NR__dl_sram_alloc __NR_sram_alloc static __inline __attribute__ ((__always_inline__)) void * _dl_sram_alloc( size_t len, unsigned long flags) { return (void *)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (311) , "q0" ((long)(len)) , "q1" ((long)(flags)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_sram_free __NR_sram_free static __inline __attribute__ ((__always_inline__)) int _dl_sram_free(void * addr) { return (int)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (312) , "q0" ((long)(addr)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_dma_memcpy __NR_dma_memcpy static __inline __attribute__ ((__always_inline__)) void * _dl_dma_memcpy( void * dest, void * src, size_t len) { return (void *)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (313) , "q0" ((long)(dest)) , "q1" ((long)(src)) , "q2" ((long)(len)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __UCLIBC_MMAP_HAS_6_ARGS__ # 20 "./ldso/include/dl-syscall.h" 2 #define _SYS_MMAN_H 1 # 1 "./include/bits/mman.h" 1 # 1 "./include/bits/mman-common.h" 1 # 33 "./include/bits/mman-common.h" #define PROT_READ 0x1 #define PROT_WRITE 0x2 #define PROT_EXEC 0x4 #define PROT_NONE 0x0 #define PROT_GROWSDOWN 0x01000000 #define PROT_GROWSUP 0x02000000 #define MAP_SHARED 0x01 #define MAP_PRIVATE 0x02 #define MAP_TYPE 0x0f #define MAP_FIXED 0x10 #define MAP_FILE 0 #define MAP_ANONYMOUS 0x20 #define MAP_ANON MAP_ANONYMOUS #define MAP_GROWSDOWN 0x00100 #define MAP_DENYWRITE 0x00800 #define MAP_EXECUTABLE 0x01000 #define MAP_LOCKED 0x02000 #define MAP_NORESERVE 0x04000 #define MAP_POPULATE 0x08000 #define MAP_NONBLOCK 0x10000 #define MAP_STACK 0x20000 #define MAP_UNINITIALIZE 0x4000000 #define MS_ASYNC 1 #define MS_SYNC 4 #define MS_INVALIDATE 2 #define MCL_CURRENT 1 #define MCL_FUTURE 2 #define MREMAP_MAYMOVE 1 #define MREMAP_FIXED 2 #define MADV_NORMAL 0 #define MADV_RANDOM 1 #define MADV_SEQUENTIAL 2 #define MADV_WILLNEED 3 #define MADV_DONTNEED 4 #define MADV_REMOVE 9 #define MADV_DONTFORK 10 #define MADV_DOFORK 11 #define MADV_MERGEABLE 12 #define MADV_UNMERGEABLE 13 #define MADV_HWPOISON 100 #define POSIX_MADV_NORMAL 0 #define POSIX_MADV_RANDOM 1 #define POSIX_MADV_SEQUENTIAL 2 #define POSIX_MADV_WILLNEED 3 #define POSIX_MADV_DONTNEED 4 # 1 "./include/bits/mman.h" 2 # 23 "./ldso/include/dl-syscall.h" 2 #define kernel_stat stat # 1 "./include/bits/kernel_stat.h" 1 #define _BITS_STAT_STRUCT_H struct stat { unsigned short st_dev; unsigned short __pad1; unsigned long st_ino; unsigned short st_mode; unsigned short st_nlink; unsigned short st_uid; unsigned short st_gid; unsigned short st_rdev; unsigned short __pad2; unsigned long st_size; unsigned long st_blksize; unsigned long st_blocks; struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; unsigned long __unused4; unsigned long __unused5; }; struct kernel_stat64 { unsigned short st_dev; unsigned char __pad0[10]; #define _HAVE_STAT64___ST_INO unsigned long __st_ino; unsigned int st_mode; unsigned int st_nlink; unsigned long st_uid; unsigned long st_gid; unsigned short st_rdev; unsigned char __pad3[10]; long long st_size; unsigned long st_blksize; unsigned long st_blocks; unsigned long __pad4; struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; unsigned long long st_ino; }; # 32 "./ldso/include/dl-syscall.h" 2 #define S_ISUID 04000 #define S_ISGID 02000 # 45 "./ldso/include/dl-syscall.h" #define __NR__dl_exit __NR_exit static __inline __attribute__ ((__always_inline__)) void _dl_exit(int status) { return (void)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (1) , "q0" ((long)(status)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_close __NR_close static __inline __attribute__ ((__always_inline__)) int _dl_close(int fd) { return (int)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (6) , "q0" ((long)(fd)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_open __NR_open static __inline __attribute__ ((__always_inline__)) int _dl_open( const char * fn, int flags, __kernel_mode_t mode) { return (int)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (5) , "q0" ((long)(fn)) , "q1" ((long)(flags)) , "q2" ((long)(mode)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_write __NR_write static __inline __attribute__ ((__always_inline__)) unsigned long _dl_write( int fd, const void * buf, unsigned long count) { return (unsigned long)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (4) , "q0" ((long)(fd)) , "q1" ((long)(buf)) , "q2" ((long)(count)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_read __NR_read static __inline __attribute__ ((__always_inline__)) unsigned long _dl_read( int fd, const void * buf, unsigned long count) { return (unsigned long)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (3) , "q0" ((long)(fd)) , "q1" ((long)(buf)) , "q2" ((long)(count)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_mprotect __NR_mprotect static __inline __attribute__ ((__always_inline__)) int _dl_mprotect( const void * addr, unsigned long len, int prot) { return (int)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (125) , "q0" ((long)(addr)) , "q1" ((long)(len)) , "q2" ((long)(prot)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_stat __NR_stat static __inline __attribute__ ((__always_inline__)) int _dl_stat( const char * file_name, struct stat * buf) { return (int)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (106) , "q0" ((long)(file_name)) , "q1" ((long)(buf)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_fstat __NR_fstat static __inline __attribute__ ((__always_inline__)) int _dl_fstat(int fd, struct stat * buf) { return (int)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (108) , "q0" ((long)(fd)) , "q1" ((long)(buf)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_munmap __NR_munmap static __inline __attribute__ ((__always_inline__)) int _dl_munmap(void * start, unsigned long length) { return (int)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (91) , "q0" ((long)(start)) , "q1" ((long)(length)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_getuid __NR_getuid static __inline __attribute__ ((__always_inline__)) uid_t _dl_getuid(void) { return (uid_t)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (24) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_geteuid __NR_geteuid static __inline __attribute__ ((__always_inline__)) uid_t _dl_geteuid(void) { return (uid_t)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (49) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_getgid __NR_getgid static __inline __attribute__ ((__always_inline__)) gid_t _dl_getgid(void) { return (gid_t)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (47) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_getegid __NR_getegid static __inline __attribute__ ((__always_inline__)) gid_t _dl_getegid(void) { return (gid_t)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (50) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_getpid __NR_getpid static __inline __attribute__ ((__always_inline__)) gid_t _dl_getpid(void) { return (gid_t)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (20) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR__dl_readlink __NR_readlink static __inline __attribute__ ((__always_inline__)) int _dl_readlink( const char * path, char * buf, size_t bufsiz) { return (int)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (85) , "q0" ((long)(path)) , "q1" ((long)(buf)) , "q2" ((long)(bufsiz)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } #define __NR___syscall_pread __NR_pread64 static __inline __attribute__ ((__always_inline__)) ssize_t __syscall_pread( int fd, void * buf, size_t count, off_t offset_hi, off_t offset_lo) { return (ssize_t)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (351) , "q0" ((long)(fd)) , "q1" ((long)(buf)) , "q2" ((long)(count)) , "q3" ((long)(offset_hi)) , "q4" ((long)(offset_lo)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); } static __inline __attribute__ ((__always_inline__)) ssize_t _dl_pread(int fd, void *buf, size_t count, off_t offset) { return __syscall_pread(fd, buf, count, offset, offset >> 31); } # 150 "./ldso/include/dl-syscall.h" #define MMAP2_PAGE_SHIFT 12 #define MAP_FAILED ((void *) -1) #define _dl_mmap_check_error(X) (((void *)X) == MAP_FAILED) static __inline __attribute__ ((__always_inline__)) void *_dl_mmap(void *addr, unsigned long size, int prot, int flags, int fd, unsigned long offset) { unsigned long shifted; if (offset & ((1 << 12) - 1)) return ((void *) -1); shifted = offset >> 12; return (void *)(__extension__ ({ do { } while (0); (__extension__ ({ long __res = (__extension__ ({ long __res; __asm__ __volatile__ ( "excpt 0;\n\t" : "=q0" (__res) : "qA" (192) , "q0" ((long)(addr)) , "q1" ((long)(size)) , "q2" ((long)(prot)) , "q3" ((long)(flags)) , "q4" ((long)(fd)) , "q5" ((long)(shifted)) : "memory","CC"); __res; }) ); if (__builtin_expect((!!(((unsigned long)__res >= (unsigned long)(-4095)))),0)) { {(_dl_errno) = ((-(__res)));}; __res = -1L; } __res; }) ); }) ); # 188 "./ldso/include/dl-syscall.h" } # 44 "./ldso/include/ldso.h" 2 # 1 "./ldso/include/dl-string.h" 1 # 9 "./ldso/include/dl-string.h" #define _LINUX_STRING_H_ # 1 "./ldso/ldso/bfin/dl-sysdep.h" 1 # 17 "./ldso/ldso/bfin/dl-sysdep.h" #undef ELF_USES_RELOCA #define ELF_MACHINE_PLTREL_OVERLAP #define DL_NO_COPY_RELOCS #define MAGIC1 EM_BLACKFIN #undef MAGIC2 #define ELF_TARGET "BFIN" #define ARCH_NEEDS_BOOTSTRAP_RELOCS extern int _dl_linux_resolve(void) __attribute__((__visibility__("hidden"))); #undef SEND_EARLY_STDERR #define SEND_EARLY_STDERR(S) do { static const char __attribute__((section(".text"))) __s[] = (S); const char *__p, *__scratch; __asm__ ("call 1f;\n1:\n\t" "%1 = RETS;\n\t" "%0 = [%3 + 1b@GOT17M4];\n\t" "%1 = %1 - %0;\n\t" "%1 = %1 + %2;\n\t" : "=&d" (__scratch), "=&d" (__p) : "d" (__s), "a" (dl_boot_got_pointer) : "RETS"); SEND_STDERR (__p); { int __t; for (__t = 0; __t < 0x1000000; __t++) __asm__ __volatile__ (""); } } while (0) # 60 "./ldso/ldso/bfin/dl-sysdep.h" #define DL_CHECK_LIB_TYPE(epnt,piclib,_dl_progname,libname) do { if (((epnt)->e_flags & EF_BFIN_FDPIC) && ! ((epnt)->e_flags & EF_BFIN_PIC)) (piclib) = 2; else { _dl_internal_error_number = LD_ERROR_NOTDYN; _dl_dprintf(2, "%s: '%s' is not an FDPIC shared library" "\n", (_dl_progname), (libname)); _dl_close(infile); return NULL; } } while (0) # 77 "./ldso/ldso/bfin/dl-sysdep.h" #define DL_IS_SPECIAL_SEGMENT(EPNT,PPNT) __dl_is_special_segment(EPNT, PPNT) #define DL_MAP_SEGMENT(EPNT,PPNT,INFILE,FLAGS) __dl_map_segment (EPNT, PPNT, INFILE, FLAGS) # 1 "./ldso/ldso/bfin/../fdpic/dl-sysdep.h" 1 # 9 "./ldso/ldso/bfin/../fdpic/dl-sysdep.h" #define HAVE_DL_INLINES_H #define INIT_GOT(GOT_BASE,MODULE) { (MODULE)->loadaddr.got_value = (GOT_BASE); GOT_BASE[0] = ((unsigned long *)&_dl_linux_resolve)[0]; GOT_BASE[1] = ((unsigned long *)&_dl_linux_resolve)[1]; GOT_BASE[2] = (unsigned long) MODULE; } struct elf_resolve; struct funcdesc_value { void *entry_point; void *got_value; } __attribute__((__aligned__(8))); struct funcdesc_ht; #define DL_LOADADDR_TYPE struct elf32_fdpic_loadaddr #define DL_RELOC_ADDR(LOADADDR,ADDR) ((ElfW(Addr))__reloc_pointer ((void*)(ADDR), (LOADADDR).map)) #define DL_ADDR_TO_FUNC_PTR(ADDR,LOADADDR) ((void(*)(void)) _dl_funcdesc_for ((void*)(ADDR), (LOADADDR).got_value)) #define _dl_stabilize_funcdesc(val) ({ __asm__ ("" : "+m" (*(val))); (val); }) #define DL_CALL_FUNC_AT_ADDR(ADDR,LOADADDR,SIGNATURE,...) ({ struct funcdesc_value fd = { (void*)(ADDR), (LOADADDR).got_value }; void (*pf)(void) = (void*) _dl_stabilize_funcdesc (&fd); (* SIGNATURE pf)(__VA_ARGS__); }) #define DL_INIT_LOADADDR_BOOT(LOADADDR,BASEADDR) (__dl_init_loadaddr_map (&(LOADADDR), dl_boot_got_pointer, dl_boot_ldsomap ?: dl_boot_progmap)) #define DL_INIT_LOADADDR_PROG(LOADADDR,BASEADDR) (__dl_init_loadaddr_map (&(LOADADDR), 0, dl_boot_progmap)) #define DL_INIT_LOADADDR_EXTRA_DECLS int dl_init_loadaddr_load_count; #define DL_INIT_LOADADDR(LOADADDR,BASEADDR,PHDR,PHDRCNT) (dl_init_loadaddr_load_count = __dl_init_loadaddr (&(LOADADDR), (PHDR), (PHDRCNT))) #define DL_INIT_LOADADDR_HDR(LOADADDR,ADDR,PHDR) (__dl_init_loadaddr_hdr ((LOADADDR), (ADDR), (PHDR), dl_init_loadaddr_load_count)) #define DL_UPDATE_LOADADDR_HDR(LOADADDR,ADDR,PHDR) (__dl_update_loadaddr_hdr ((LOADADDR), (ADDR), (PHDR))) #define DL_LOADADDR_UNMAP(LOADADDR,LEN) (__dl_loadaddr_unmap ((LOADADDR), (NULL))) #define DL_LIB_UNMAP(LIB,LEN) (__dl_loadaddr_unmap ((LIB)->loadaddr, (LIB)->funcdesc_ht)) #define DL_LOADADDR_BASE(LOADADDR) ((LOADADDR).got_value) #define DL_LOOKUP_ADDRESS(ADDRESS) (_dl_lookup_address (ADDRESS)) #define DL_ADDR_IN_LOADADDR(ADDR,TPNT,TFROM) (! (TFROM) && __dl_addr_in_loadaddr ((void*)(ADDR), (TPNT)->loadaddr)) # 88 "./ldso/ldso/bfin/../fdpic/dl-sysdep.h" #define DL_BOOT_COMPUTE_GOT(got) ((got) = dl_boot_got_pointer) #define DL_BOOT_COMPUTE_DYN(dpnt,got,load_addr) ((dpnt) = dl_boot_ldso_dyn_pointer) #define DL_SKIP_BOOTSTRAP_RELOC(SYMTAB,INDEX,STRTAB) 0 #define _DL_PREAD(FD,BUF,SIZE,OFFSET) (_dl_pread((FD), (BUF), (SIZE), (OFFSET))) #define DL_FIND_HASH_VALUE(TPNT,TYPE_CLASS,SYM) (((TYPE_CLASS) & ELF_RTYPE_CLASS_DLSYM) && ELF32_ST_TYPE((SYM)->st_info) == STT_FUNC ? _dl_funcdesc_for ((void *)DL_RELOC_ADDR ((TPNT)->loadaddr, (SYM)->st_value), (TPNT)->loadaddr.got_value) : DL_RELOC_ADDR ((TPNT)->loadaddr, (SYM)->st_value)) #define DL_GET_READY_TO_RUN_EXTRA_PARMS , struct elf32_fdpic_loadmap *dl_boot_progmap, Elf32_Addr dl_boot_got_pointer #define DL_GET_READY_TO_RUN_EXTRA_ARGS , dl_boot_progmap, dl_boot_got_pointer #define DL_DEF_LIB_OFFSET #define DL_GET_LIB_OFFSET() 0 #define DL_SET_LIB_OFFSET(offset) #define DL_GET_RUN_ADDR(loadaddr,mapaddr) (loadaddr) # 1 "./include/link.h" 1 # 22 "./include/link.h" #define _LINK_H 1 # 1 "./include/elf.h" 1 # 21 "./include/elf.h" #define _ELF_H 1 # 30 "./include/elf.h" # 1 "./include/stdint.h" 1 # 24 "./include/stdint.h" #define _STDINT_H 1 # 1 "./include/bits/wordsize.h" 1 # 19 "./include/bits/wordsize.h" #define __WORDSIZE 32 # 31 "./include/stdint.h" 2 # 51 "./include/stdint.h" 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; # 128 "./include/stdint.h" typedef int intptr_t; #define __intptr_t_defined typedef unsigned int uintptr_t; # 140 "./include/stdint.h" __extension__ typedef long long int intmax_t; __extension__ typedef unsigned long long int uintmax_t; # 155 "./include/stdint.h" #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)) # 236 "./include/stdint.h" #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)) # 267 "./include/stdint.h" #define PTRDIFF_MIN (-2147483647-1) #define PTRDIFF_MAX (2147483647) #define SIG_ATOMIC_MIN (-2147483647-1) #define SIG_ATOMIC_MAX (2147483647) #define SIZE_MAX (4294967295U) # 303 "./include/stdint.h" #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 #define UINT16_C(c) c #define UINT32_C(c) c ## U #define UINT64_C(c) c ## ULL #define INTMAX_C(c) c ## LL #define UINTMAX_C(c) c ## ULL # 31 "./include/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 ELFMAG_U32 ((uint32_t)(ELFMAG0 + 0x100 * (ELFMAG1 + (0x100 * (ELFMAG2 + 0x100 * ELFMAG3))))) #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_HURD 4 #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_OPENVMS 13 #define ELFOSABI_NSK 14 #define ELFOSABI_AROS 15 #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_486 6 #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_MCORE 39 #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_IP2K 101 #define EM_CR 103 #define EM_MSP430 105 #define EM_BLACKFIN 106 #define EM_ALTERA_NIOS2 113 #define EM_CRX 114 #define EM_NUM 95 #define EM_TI_C6000 140 # 286 "./include/elf.h" #define EM_PJ_OLD 99 #define EM_CYGNUS_POWERPC 0x9025 #define EM_OLD_SPARCV9 11 #define EM_PPC_OLD 17 #define EM_OR32 0x8472 #define EM_M32C 0xFEB0 #define EM_CYGNUS_M32R 0x9041 #define EM_S390_OLD 0xa390 #define EM_CYGNUS_D10V 0x7650 #define EM_CYGNUS_D30V 0x7676 #define EM_CYGNUS_V850 0x9080 #define EM_CYGNUS_MN10200 0xdead #define EM_CYGNUS_MN10300 0xbeef #define EM_CYGNUS_FR30 0x3330 #define EM_AVR_OLD 0x1057 #define EM_OPENRISC_OLD 0x3426 #define EM_DLX 0x5aa5 #define EM_XSTORMY16 0xad45 #define EM_CYGNUS_FRV 0x5441 #define EM_IP2K_OLD 0x8217 #define EM_MT 0x2530 #define EM_MSP430_OLD 0x1059 #define EM_IQ2000 0xFEBA #define EM_XTENSA_OLD 0xabc7 #define EM_ALPHA 0x9026 #define EM_NIOS32 0xFEBB #define EM_AVR32 0x18ad #define EM_CYGNUS_V850 0x9080 #define EM_MICROBLAZE_OLD 0xbaab #define EM_MICROBLAZE 189 #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_HASH 0x6ffffff6 #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_PAGEEXEC (1 << 4) #define PF_NOPAGEEXEC (1 << 5) #define PF_SEGMEXEC (1 << 6) #define PF_NOSEGMEXEC (1 << 7) #define PF_MPROTECT (1 << 8) #define PF_NOMPROTECT (1 << 9) #define PF_RANDEXEC (1 << 10) #define PF_NORANDEXEC (1 << 11) #define PF_EMUTRAMP (1 << 12) #define PF_NOEMUTRAMP (1 << 13) #define PF_RANDMMAP (1 << 14) #define PF_NORANDMMAP (1 << 15) #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_HASH 0x6ffffef5 #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 # 1035 "./include/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 # 1150 "./include/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 R_BFIN_UNUSED0 0x00 #define R_BFIN_PCREL5M2 0x01 #define R_BFIN_UNUSED1 0x02 #define R_BFIN_PCREL10 0x03 #define R_BFIN_PCREL12_JUMP 0x04 #define R_BFIN_RIMM16 0x05 #define R_BFIN_LUIMM16 0x06 #define R_BFIN_HUIMM16 0x07 #define R_BFIN_PCREL12_JUMP_S 0x08 #define R_BFIN_PCREL24_JUMP_X 0x09 #define R_BFIN_PCREL24 0x0a #define R_BFIN_UNUSEDB 0x0b #define R_BFIN_UNUSEDC 0x0c #define R_BFIN_PCREL24_JUMP_L 0x0d #define R_BFIN_PCREL24_CALL_X 0x0e #define R_BFIN_var_eq_symb 0x0f #define R_BFIN_BYTE_DATA 0x10 #define R_BFIN_BYTE2_DATA 0x11 #define R_BFIN_BYTE4_DATA 0x12 #define R_BFIN_PCREL11 0x13 #define R_BFIN_GOT17M4 0x14 #define R_BFIN_GOTHI 0x15 #define R_BFIN_GOTLO 0x16 #define R_BFIN_FUNCDESC 0x17 #define R_BFIN_FUNCDESC_GOT17M4 0x18 #define R_BFIN_FUNCDESC_GOTHI 0x19 #define R_BFIN_FUNCDESC_GOTLO 0x1a #define R_BFIN_FUNCDESC_VALUE 0x1b #define R_BFIN_FUNCDESC_GOTOFF17M4 0x1c #define R_BFIN_FUNCDESC_GOTOFFHI 0x1d #define R_BFIN_FUNCDESC_GOTOFFLO 0x1e #define R_BFIN_GOTOFF17M4 0x1f #define R_BFIN_GOTOFFHI 0x20 #define R_BFIN_GOTOFFLO 0x21 #define EF_BFIN_PIC 0x00000001 #define EF_BFIN_FDPIC 0x00000002 #define EF_BFIN_CODE_IN_L1 0x00000010 #define EF_BFIN_DATA_IN_L1 0x00000020 #define R_FRV_NONE 0 #define R_FRV_32 1 #define R_FRV_FUNCDESC 14 #define R_FRV_FUNCDESC_VALUE 18 #define EF_FRV_GPR_MASK 0x00000003 #define EF_FRV_GPR_32 0x00000001 #define EF_FRV_GPR_64 0x00000002 #define EF_FRV_FPR_MASK 0x0000000c #define EF_FRV_FPR_32 0x00000004 #define EF_FRV_FPR_64 0x00000008 #define EF_FRV_FPR_NONE 0x0000000c #define EF_FRV_PIC 0x00000100 #define EF_FRV_FDPIC 0x00008000 #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_PLT 0x8 #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_GLOB_DAT 51 #define R_MIPS_COPY 126 #define R_MIPS_JUMP_SLOT 127 #define R_MIPS_NUM 128 #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_PLTGOT 0x70000032 #define DT_MIPS_RWPLT 0x70000034 #define DT_MIPS_NUM 0x35 #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_TLS_LDO12 109 #define R_ARM_TLS_LE12 110 #define R_ARM_TLS_IE12GP 111 #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 STO_SH5_ISA32 (1 << 2) #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_RELATIVE_LOW16 197 #define R_SH_RELATIVE_MEDLOW16 198 #define R_SH_IMM_LOW16 246 #define R_SH_IMM_LOW16_PCREL 247 #define R_SH_IMM_MEDLOW16 248 #define R_SH_IMM_MEDLOW16_PCREL 249 #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 EF_CRIS_VARIANT_MASK 0x0000000e #define EF_CRIS_VARIANT_ANY_V0_V10 0x00000000 #define EF_CRIS_VARIANT_V32 0x00000002 #define EF_CRIS_VARIANT_COMMON_V10_V32 0x00000004 #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_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 #define R_960_NONE 0 #define R_960_12 1 #define R_960_32 2 #define R_960_IP24 3 #define R_960_SUB 4 #define R_960_OPTCALL 5 #define R_960_OPTCALLX 6 #define R_960_OPTCALLXA 7 #define R_960_NUM 8 #define R_V850_NONE 0 #define R_V850_9_PCREL 1 #define R_V850_22_PCREL 2 #define R_V850_HI16_S 3 #define R_V850_HI16 4 #define R_V850_LO16 5 #define R_V850_32 6 #define R_V850_16 7 #define R_V850_8 8 #define R_V850_SDA_16_16_OFFSET 9 #define R_V850_SDA_15_16_OFFSET 10 #define R_V850_ZDA_16_16_OFFSET 11 #define R_V850_ZDA_15_16_OFFSET 12 #define R_V850_TDA_6_8_OFFSET 13 #define R_V850_TDA_7_8_OFFSET 14 #define R_V850_TDA_7_7_OFFSET 15 #define R_V850_TDA_16_16_OFFSET 16 #define R_V850_TDA_4_5_OFFSET 17 #define R_V850_TDA_4_4_OFFSET 18 #define R_V850_SDA_16_16_SPLIT_OFFSET 19 #define R_V850_ZDA_16_16_SPLIT_OFFSET 20 #define R_V850_CALLT_6_7_OFFSET 21 #define R_V850_CALLT_16_16_OFFSET 22 #define R_V850_GNU_VTINHERIT 23 #define R_V850_GNU_VTENTRY 24 #define R_V850_NUM 25 #define R_AVR32_NONE 0 #define R_AVR32_32 1 #define R_AVR32_16 2 #define R_AVR32_8 3 #define R_AVR32_32_PCREL 4 #define R_AVR32_16_PCREL 5 #define R_AVR32_8_PCREL 6 #define R_AVR32_DIFF32 7 #define R_AVR32_DIFF16 8 #define R_AVR32_DIFF8 9 #define R_AVR32_GOT32 10 #define R_AVR32_GOT16 11 #define R_AVR32_GOT8 12 #define R_AVR32_21S 13 #define R_AVR32_16U 14 #define R_AVR32_16S 15 #define R_AVR32_8S 16 #define R_AVR32_8S_EXT 17 #define R_AVR32_22H_PCREL 18 #define R_AVR32_18W_PCREL 19 #define R_AVR32_16B_PCREL 20 #define R_AVR32_16N_PCREL 21 #define R_AVR32_14UW_PCREL 22 #define R_AVR32_11H_PCREL 23 #define R_AVR32_10UW_PCREL 24 #define R_AVR32_9H_PCREL 25 #define R_AVR32_9UW_PCREL 26 #define R_AVR32_HI16 27 #define R_AVR32_LO16 28 #define R_AVR32_GOTPC 29 #define R_AVR32_GOTCALL 30 #define R_AVR32_LDA_GOT 31 #define R_AVR32_GOT21S 32 #define R_AVR32_GOT18SW 33 #define R_AVR32_GOT16S 34 #define R_AVR32_GOT7UW 35 #define R_AVR32_32_CPENT 36 #define R_AVR32_CPCALL 37 #define R_AVR32_16_CP 38 #define R_AVR32_9W_CP 39 #define R_AVR32_RELATIVE 40 #define R_AVR32_GLOB_DAT 41 #define R_AVR32_JMP_SLOT 42 #define R_AVR32_ALIGN 43 #define R_AVR32_NUM 44 #define DT_AVR32_GOTSZ 0x70000001 #define R_H8_NONE 0 #define R_H8_DIR32 1 #define R_H8_DIR32_28 2 #define R_H8_DIR32_24 3 #define R_H8_DIR32_16 4 #define R_H8_DIR32U 6 #define R_H8_DIR32U_28 7 #define R_H8_DIR32U_24 8 #define R_H8_DIR32U_20 9 #define R_H8_DIR32U_16 10 #define R_H8_DIR24 11 #define R_H8_DIR24_20 12 #define R_H8_DIR24_16 13 #define R_H8_DIR24U 14 #define R_H8_DIR24U_20 15 #define R_H8_DIR24U_16 16 #define R_H8_DIR16 17 #define R_H8_DIR16U 18 #define R_H8_DIR16S_32 19 #define R_H8_DIR16S_28 20 #define R_H8_DIR16S_24 21 #define R_H8_DIR16S_20 22 #define R_H8_DIR16S 23 #define R_H8_DIR8 24 #define R_H8_DIR8U 25 #define R_H8_DIR8Z_32 26 #define R_H8_DIR8Z_28 27 #define R_H8_DIR8Z_24 28 #define R_H8_DIR8Z_20 29 #define R_H8_DIR8Z_16 30 #define R_H8_PCREL16 31 #define R_H8_PCREL8 32 #define R_H8_BPOS 33 #define R_H8_PCREL32 34 #define R_H8_GOT32O 35 #define R_H8_GOT16O 36 #define R_H8_DIR16A8 59 #define R_H8_DIR16R8 60 #define R_H8_DIR24A8 61 #define R_H8_DIR24R8 62 #define R_H8_DIR32A16 63 #define R_H8_ABS32 65 #define R_H8_ABS32A16 127 #define R_H8_NUM 128 #define R_NIOS_NONE 0 #define R_NIOS_32 1 #define R_NIOS_LO16_LO5 2 #define R_NIOS_LO16_HI11 3 #define R_NIOS_HI16_LO5 4 #define R_NIOS_HI16_HI11 5 #define R_NIOS_PCREL6 6 #define R_NIOS_PCREL8 7 #define R_NIOS_PCREL11 8 #define R_NIOS_16 9 #define R_NIOS_H_LO5 10 #define R_NIOS_H_HI11 11 #define R_NIOS_H_XLO5 12 #define R_NIOS_H_XHI11 13 #define R_NIOS_H_16 14 #define R_NIOS_H_32 15 #define R_NIOS_GNU_VTINHERIT 200 #define R_NIOS_GNU_VTENTRY 201 #define R_NIOS_NUM 202 #define R_NIOS2_NONE 0 #define R_NIOS2_S16 1 #define R_NIOS2_U16 2 #define R_NIOS2_PCREL16 3 #define R_NIOS2_CALL26 4 #define R_NIOS2_IMM5 5 #define R_NIOS2_CACHE_OPX 6 #define R_NIOS2_IMM6 7 #define R_NIOS2_IMM8 8 #define R_NIOS2_HI16 9 #define R_NIOS2_LO16 10 #define R_NIOS2_HIADJ16 11 #define R_NIOS2_BFD_RELOC_32 12 #define R_NIOS2_BFD_RELOC_16 13 #define R_NIOS2_BFD_RELOC_8 14 #define R_NIOS2_GPREL 15 #define R_NIOS2_GNU_VTINHERIT 16 #define R_NIOS2_GNU_VTENTRY 17 #define R_NIOS2_UJMP 18 #define R_NIOS2_CJMP 19 #define R_NIOS2_CALLR 20 #define R_NIOS2_ALIGN 21 #define R_NIOS2_NUM 22 #define DT_XTENSA_GOT_LOC_OFF (DT_LOPROC + 0) #define DT_XTENSA_GOT_LOC_SZ (DT_LOPROC + 1) #define DT_XTENSA_NUM 2 #define R_XTENSA_NONE 0 #define R_XTENSA_32 1 #define R_XTENSA_RTLD 2 #define R_XTENSA_GLOB_DAT 3 #define R_XTENSA_JMP_SLOT 4 #define R_XTENSA_RELATIVE 5 #define R_XTENSA_PLT 6 #define R_XTENSA_OP0 8 #define R_XTENSA_OP1 9 #define R_XTENSA_OP2 10 #define R_XTENSA_ASM_EXPAND 11 #define R_XTENSA_ASM_SIMPLIFY 12 #define R_XTENSA_GNU_VTINHERIT 15 #define R_XTENSA_GNU_VTENTRY 16 #define R_XTENSA_DIFF8 17 #define R_XTENSA_DIFF16 18 #define R_XTENSA_DIFF32 19 #define R_XTENSA_SLOT0_OP 20 #define R_XTENSA_SLOT1_OP 21 #define R_XTENSA_SLOT2_OP 22 #define R_XTENSA_SLOT3_OP 23 #define R_XTENSA_SLOT4_OP 24 #define R_XTENSA_SLOT5_OP 25 #define R_XTENSA_SLOT6_OP 26 #define R_XTENSA_SLOT7_OP 27 #define R_XTENSA_SLOT8_OP 28 #define R_XTENSA_SLOT9_OP 29 #define R_XTENSA_SLOT10_OP 30 #define R_XTENSA_SLOT11_OP 31 #define R_XTENSA_SLOT12_OP 32 #define R_XTENSA_SLOT13_OP 33 #define R_XTENSA_SLOT14_OP 34 #define R_XTENSA_SLOT0_ALT 35 #define R_XTENSA_SLOT1_ALT 36 #define R_XTENSA_SLOT2_ALT 37 #define R_XTENSA_SLOT3_ALT 38 #define R_XTENSA_SLOT4_ALT 39 #define R_XTENSA_SLOT5_ALT 40 #define R_XTENSA_SLOT6_ALT 41 #define R_XTENSA_SLOT7_ALT 42 #define R_XTENSA_SLOT8_ALT 43 #define R_XTENSA_SLOT9_ALT 44 #define R_XTENSA_SLOT10_ALT 45 #define R_XTENSA_SLOT11_ALT 46 #define R_XTENSA_SLOT12_ALT 47 #define R_XTENSA_SLOT13_ALT 48 #define R_XTENSA_SLOT14_ALT 49 #define R_XTENSA_NUM 50 #define R_C6000_NONE 0 #define R_C6000_ABS32 1 #define R_C6000_ABS16 2 #define R_C6000_ABS8 3 #define R_C6000_PCR_S21 4 #define R_C6000_PCR_S12 5 #define R_C6000_PCR_S10 6 #define R_C6000_PCR_S7 7 #define R_C6000_ABS_S16 8 #define R_C6000_ABS_L16 9 #define R_C6000_ABS_H16 10 #define R_C6000_SBR_U15_B 11 #define R_C6000_SBR_U15_H 12 #define R_C6000_SBR_U15_W 13 #define R_C6000_SBR_S16 14 #define R_C6000_SBR_L16_B 15 #define R_C6000_SBR_L16_H 16 #define R_C6000_SBR_L16_W 17 #define R_C6000_SBR_H16_B 18 #define R_C6000_SBR_H16_H 19 #define R_C6000_SBR_H16_W 20 #define R_C6000_SBR_GOT_U15_W 21 #define R_C6000_SBR_GOT_L16_W 22 #define R_C6000_SBR_GOT_H16_W 23 #define R_C6000_DSBT_INDEX 24 #define R_C6000_PREL31 25 #define R_C6000_COPY 26 #define R_C6000_JUMP_SLOT 27 #define R_C6000_SBR_GOT32 28 #define R_C6000_PCR_H16 29 #define R_C6000_PCR_L16 30 #define R_C6000_ALIGN 253 #define R_C6000_FPHEAD 254 #define R_C6000_NOCMP 255 #define DT_C6000_DSBT_BASE (DT_LOPROC + 0) #define DT_C6000_DSBT_SIZE (DT_LOPROC + 1) #define DT_C6000_PREEMPTMAP (DT_LOPROC + 2) #define DT_C6000_DSBT_INDEX (DT_LOPROC + 3) #define DT_C6000_NUM 4 #define R_MICROBLAZE_NONE 0 #define R_MICROBLAZE_32 1 #define R_MICROBLAZE_32_PCREL 2 #define R_MICROBLAZE_64_PCREL 3 #define R_MICROBLAZE_32_PCREL_LO 4 #define R_MICROBLAZE_64 5 #define R_MICROBLAZE_32_LO 6 #define R_MICROBLAZE_SRO32 7 #define R_MICROBLAZE_SRW32 8 #define R_MICROBLAZE_64_NONE 9 #define R_MICROBLAZE_32_SYM_OP_SYM 10 #define R_MICROBLAZE_GNU_VTINHERIT 11 #define R_MICROBLAZE_GNU_VTENTRY 12 #define R_MICROBLAZE_GOTPC_64 13 #define R_MICROBLAZE_GOT_64 14 #define R_MICROBLAZE_PLT_64 15 #define R_MICROBLAZE_REL 16 #define R_MICROBLAZE_JUMP_SLOT 17 #define R_MICROBLAZE_GLOB_DAT 18 #define R_MICROBLAZE_GOTOFF_64 19 #define R_MICROBLAZE_GOTOFF_32 20 #define R_MICROBLAZE_COPY 21 #define R_MICROBLAZE_NUM 22 # 26 "./include/link.h" 2 # 1 "./include/dlfcn.h" 1 # 22 "./include/dlfcn.h" #define _DLFCN_H 1 #define __need_size_t # 1 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 1 3 4 # 160 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_ptrdiff_t # 233 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_size_t # 342 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef __need_wchar_t # 395 "/usr/local/src/blackfin/toolchains/20120406/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.5.3/include/stddef.h" 3 4 #undef NULL #define NULL ((void *)0) #undef __need_NULL #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER) # 27 "./include/dlfcn.h" 2 # 1 "./include/bits/dlfcn.h" 1 # 25 "./include/bits/dlfcn.h" #define RTLD_LAZY 0x00001 #define RTLD_NOW 0x00002 #define RTLD_BINDING_MASK 0x3 #define RTLD_NOLOAD 0x00004 #define RTLD_GLOBAL 0x00100 #define RTLD_LOCAL 0 #define RTLD_NODELETE 0x01000 # 30 "./include/dlfcn.h" 2 #define RTLD_NEXT ((void *) -1l) #define RTLD_DEFAULT ((void *) 0) # 55 "./include/dlfcn.h" extern void *dlopen (__const char *__file, int __mode) __attribute__ ((__nothrow__)); extern int dlclose (void *__handle) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void *dlsym (void *__restrict __handle, __const char *__restrict __name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 85 "./include/dlfcn.h" extern char *dlerror (void) __attribute__ ((__nothrow__)); typedef struct { __const char *dli_fname; void *dli_fbase; __const char *dli_sname; void *dli_saddr; } Dl_info; extern int dladdr (__const void *__address, Dl_info *__info) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 193 "./include/dlfcn.h" extern int dlinfo (void); # 28 "./include/link.h" 2 # 36 "./include/link.h" #define ElfW(type) _ElfW (Elf, __ELF_NATIVE_CLASS, type) #define _ElfW(e,w,t) _ElfW_1 (e, w, _ ##t) #define _ElfW_1(e,w,t) e ##w ##t # 1 "./include/bits/elfclass.h" 1 # 9 "./include/bits/elfclass.h" # 1 "./include/bits/wordsize.h" 1 # 19 "./include/bits/wordsize.h" #define __WORDSIZE 32 # 10 "./include/bits/elfclass.h" 2 #define __ELF_NATIVE_CLASS __WORDSIZE typedef uint32_t Elf_Symndx; # 41 "./include/link.h" 2 struct r_debug { int r_version; struct link_map *r_map; Elf32_Addr r_brk; enum { RT_CONSISTENT, RT_ADD, RT_DELETE } r_state; Elf32_Addr r_ldbase; }; extern struct r_debug _r_debug; # 81 "./include/link.h" extern Elf32_Dyn _DYNAMIC[]; # 1 "./include/bits/elf-fdpic.h" 1 # 29 "./include/bits/elf-fdpic.h" #define _BITS_ELF_FDPIC_H # 41 "./include/bits/elf-fdpic.h" struct elf32_fdpic_loadseg { Elf32_Addr addr; Elf32_Addr p_vaddr; Elf32_Word p_memsz; }; struct elf32_fdpic_loadmap { Elf32_Half version; Elf32_Half nsegs; struct elf32_fdpic_loadseg segs[ ]; }; struct elf32_fdpic_loadaddr { struct elf32_fdpic_loadmap *map; void *got_value; }; static __inline __attribute__ ((__always_inline__)) void * __reloc_pointer (void *p, const struct elf32_fdpic_loadmap *map) { int c; # 85 "./include/bits/elf-fdpic.h" for (c = 0; c < map->nsegs && p >= (void*)map->segs[c].p_vaddr; c++) { unsigned long offset = p - (void*)map->segs[c].p_vaddr; if (offset < map->segs[c].p_memsz || (offset == map->segs[c].p_memsz && c + 1 == map->nsegs)) return (char*)map->segs[c].addr + offset; } return (void*)-1; } #define __RELOC_POINTER(ptr,loadaddr) (__reloc_pointer ((void*)(ptr), (loadaddr).map)) # 85 "./include/link.h" 2 # 96 "./include/link.h" struct link_map { struct elf32_fdpic_loadaddr l_addr; char *l_name; Elf32_Dyn *l_ld; struct link_map *l_next, *l_prev; # 137 "./include/link.h" }; # 183 "./include/link.h" struct dl_phdr_info { struct elf32_fdpic_loadaddr dlpi_addr; const char *dlpi_name; const Elf32_Phdr *dlpi_phdr; Elf32_Half dlpi_phnum; # 218 "./include/link.h" }; extern int dl_iterate_phdr (int (*__callback) (struct dl_phdr_info *, size_t, void *), void *__data); # 247 "./include/link.h" # 132 "./ldso/ldso/bfin/../fdpic/dl-sysdep.h" 2 # 83 "./ldso/ldso/bfin/dl-sysdep.h" 2 static __inline __attribute__ ((__always_inline__)) Elf32_Addr elf_machine_load_address (void) { return 0; } static __inline __attribute__ ((__always_inline__)) void elf_machine_relative (struct elf32_fdpic_loadaddr load_off, const Elf32_Addr rel_addr, Elf32_Word relative_count) { # 104 "./ldso/ldso/bfin/dl-sysdep.h" } # 12 "./ldso/include/dl-string.h" 2 #define do_rem(result,n,base) ((result) = (n) % (base)) #define do_div_10(result,remain) ((result) /= 10) static size_t _dl_strlen(const char *str); static char *_dl_strcat(char *dst, const char *src); static char *_dl_strcpy(char *dst, const char *src); static int _dl_strcmp(const char *s1, const char *s2); static int _dl_strncmp(const char *s1, const char *s2, size_t len); static char *_dl_strchr(const char *str, int c); static char *_dl_strrchr(const char *str, int c); static char *_dl_strstr(const char *s1, const char *s2); static void *_dl_memcpy(void *dst, const void *src, size_t len); static int _dl_memcmp(const void *s1, const void *s2, size_t len); static void *_dl_memset(void *str, int c, size_t len); static char *_dl_get_last_path_component(char *path); static char *_dl_simple_ltoa(char *local, unsigned long i); static char *_dl_simple_ltoahex(char *local, unsigned long i); static __inline __attribute__ ((__always_inline__)) size_t _dl_strlen(const char *str) { register const char *ptr = (char *) str-1; while (*++ptr) ; return (ptr - str); } static __inline __attribute__ ((__always_inline__)) char * _dl_strcat(char *dst, const char *src) { register char *ptr = dst-1; src--; while (*++ptr) ; ptr--; while ((*++ptr = *++src) != 0) ; return dst; } static __inline __attribute__ ((__always_inline__)) char * _dl_strcpy(char *dst, const char *src) { register char *ptr = dst; dst--;src--; while ((*++dst = *++src) != 0) ; return ptr; } static __inline __attribute__ ((__always_inline__)) int _dl_strcmp(const char *s1, const char *s2) { register unsigned char c1, c2; s1--;s2--; do { c1 = (unsigned char) *++s1; c2 = (unsigned char) *++s2; if (c1 == '\0') return c1 - c2; } while (c1 == c2); return c1 - c2; } static __inline __attribute__ ((__always_inline__)) int _dl_strncmp(const char *s1, const char *s2, size_t len) { register unsigned char c1 = '\0'; register unsigned char c2 = '\0'; s1--;s2--; while (len > 0) { c1 = (unsigned char) *++s1; c2 = (unsigned char) *++s2; if (c1 == '\0' || c1 != c2) return c1 - c2; len--; } return c1 - c2; } static __inline __attribute__ ((__always_inline__)) char * _dl_strchr(const char *str, int c) { register char ch; str--; do { if ((ch = *++str) == c) return (char *) str; } while (ch); return 0; } static __inline __attribute__ ((__always_inline__)) char * _dl_strrchr(const char *str, int c) { register char *prev = 0; register char *ptr = (char *) str-1; while (*++ptr != '\0') { if (*ptr == c) prev = ptr; } if (c == '\0') return(ptr); return(prev); } static __inline __attribute__ ((__always_inline__)) char * _dl_strstr(const char *s1, const char *s2) { register const char *s = s1; register const char *p = s2; do { if (!*p) return (char *) s1;; if (*p == *s) { ++p; ++s; } else { p = s2; if (!*s) return ((void *)0); s = ++s1; } } while (1); } static __inline __attribute__ ((__always_inline__)) void * _dl_memcpy(void *dst, const void *src, size_t len) { register char *a = dst-1; register const char *b = src-1; while (len) { *++a = *++b; --len; } return dst; } static __inline __attribute__ ((__always_inline__)) int _dl_memcmp(const void *s1, const void *s2, size_t len) { unsigned char *c1 = (unsigned char *)s1-1; unsigned char *c2 = (unsigned char *)s2-1; while (len) { if (*++c1 != *++c2) return *c1 - *c2; len--; } return 0; } # 203 "./ldso/include/dl-string.h" static __inline __attribute__ ((__always_inline__)) void * _dl_memset(void *str, int c, size_t len) { register char *a = str; while (len--) *a++ = c; return str; } static __inline __attribute__ ((__always_inline__)) char * _dl_get_last_path_component(char *path) { register char *ptr = path-1; while (*++ptr) ; while (ptr != path && *--ptr == '/') { *ptr = '\0'; } while (ptr != path && *--ptr != '/') ; return ptr == path ? ptr : ptr+1; } static __inline __attribute__ ((__always_inline__)) char * _dl_simple_ltoa(char *local, unsigned long i) { char *p = &local[22]; *--p = '\0'; do { char temp; ((temp) = (i) % (10)); *--p = '0' + temp; ((i) /= 10); } while (i > 0); return p; } static __inline __attribute__ ((__always_inline__)) char * _dl_simple_ltoahex(char *local, unsigned long i) { char *p = &local[22]; *--p = '\0'; do { char temp = i & 0xf; if (temp <= 0x09) *--p = '0' + temp; else *--p = 'a' - 0x0a + temp; i >>= 4; } while (i > 0); *--p = 'x'; *--p = '0'; return p; } # 294 "./ldso/include/dl-string.h" #define CONSTANT_STRING_GOT_FIXUP(X) #define SEND_STDERR(X) { const char *tmp1 = (X); CONSTANT_STRING_GOT_FIXUP(tmp1); _dl_write(2, tmp1, _dl_strlen(tmp1)); } #define SEND_ADDRESS_STDERR(ADR,add_a_newline) { char tmp[26], v, *tmp2, *tmp1 = tmp; unsigned long X = (unsigned long)(ADR); CONSTANT_STRING_GOT_FIXUP(tmp1); tmp2 = tmp1 + sizeof(tmp); *--tmp2 = '\0'; if (add_a_newline) *--tmp2 = '\n'; do { v = (X) & 0xf; if (v <= 0x09) *--tmp2 = '0' + v; else *--tmp2 = 'a' - 0x0a + v; (X) >>= 4; } while ((X) > 0); *--tmp2 = 'x'; *--tmp2 = '0'; _dl_write(2, tmp2, tmp1 - tmp2 + sizeof(tmp) - 1); } # 325 "./ldso/include/dl-string.h" #define SEND_NUMBER_STDERR(NUM,add_a_newline) { char tmp[26], v, *tmp2, *tmp1 = tmp; unsigned long X = (unsigned long)(NUM); CONSTANT_STRING_GOT_FIXUP(tmp1); tmp2 = tmp1 + sizeof(tmp); *--tmp2 = '\0'; if (add_a_newline) *--tmp2 = '\n'; do { do_rem(v, (X), 10); *--tmp2 = '0' + v; do_div_10((X), v); } while ((X) > 0); _dl_write(2, tmp2, tmp1 - tmp2 + sizeof(tmp) - 1); } # 350 "./ldso/include/dl-string.h" #define EARLY_STDERR_SPECIAL # 359 "./ldso/include/dl-string.h" #define SEND_STDERR_DEBUG(X) #define SEND_EARLY_STDERR_DEBUG(X) #define SEND_NUMBER_STDERR_DEBUG(X,add_a_newline) #define SEND_ADDRESS_STDERR_DEBUG(X,add_a_newline) # 45 "./ldso/include/ldso.h" 2 # 1 "./ldso/include/dl-elf.h" 1 # 9 "./ldso/include/dl-elf.h" #define LINUXELF_H struct dyn_elf; struct elf_resolve; struct r_scope_elem; # 1 "./ldso/include/dl-defs.h" 1 # 9 "./ldso/include/dl-defs.h" #define _LD_DEFS_H #define FLAG_ANY -1 #define FLAG_TYPE_MASK 0x00ff #define FLAG_LIBC4 0x0000 #define FLAG_ELF 0x0001 #define FLAG_ELF_LIBC5 0x0002 #define FLAG_ELF_LIBC6 0x0003 #define FLAG_ELF_UCLIBC 0x0004 #define FLAG_REQUIRED_MASK 0xff00 #define FLAG_SPARC_LIB64 0x0100 #define FLAG_IA64_LIB64 0x0200 #define FLAG_X8664_LIB64 0x0300 #define FLAG_S390_LIB64 0x0400 #define FLAG_POWERPC_LIB64 0x0500 #define FLAG_MIPS64_LIBN32 0x0600 #define FLAG_MIPS64_LIBN64 0x0700 #define LIB_ANY -1 #define LIB_DLL 0 #define LIB_ELF 1 #define LIB_ELF64 0x80 #define LIB_ELF_LIBC5 2 #define LIB_ELF_LIBC6 3 #define LIB_ELF_LIBC0 4 #define LDSO_BASE_PATH UCLIBC_RUNTIME_PREFIX "etc/" __LDSO_BASE_FILENAME__ #define LDSO_CONF LDSO_BASE_PATH ".conf" #define LDSO_CACHE LDSO_BASE_PATH ".cache" #define LDSO_CACHE_MAGIC "ld.so-" #define LDSO_CACHE_MAGIC_LEN (sizeof LDSO_CACHE_MAGIC -1) #define LDSO_CACHE_VER "1.7.0" #define LDSO_CACHE_VER_LEN (sizeof LDSO_CACHE_VER -1) typedef struct { char magic [(sizeof "ld.so-" -1)]; char version [(sizeof "1.7.0" -1)]; int nlibs; } header_t; typedef struct { int flags; int sooffset; int liboffset; } libentry_t; #define LDSO_CACHE_MMAP_FLAGS (MAP_PRIVATE) # 78 "./ldso/include/dl-defs.h" #define DL_START(X) static void * __attribute_used__ _dl_start(X) # 183 "./ldso/include/dl-defs.h" #define DL_ADDR_SYM_MATCH(SYM_ADDR,SYM,MATCHSYM,ADDR) ((ADDR) >= (SYM_ADDR) && ((((SYM)->st_shndx == SHN_UNDEF || (SYM)->st_size == 0) && (ADDR) == (SYM_ADDR)) || (ADDR) < (SYM_ADDR) + (SYM)->st_size) && (!(MATCHSYM) || MATCHSYM < (SYM_ADDR))) # 210 "./ldso/include/dl-defs.h" #define DL_MALLOC_ALIGN (__WORDSIZE / 8) #define __C_SYMBOL_PREFIX__ "_" # 21 "./ldso/include/dl-elf.h" 2 extern int _dl_map_cache(void); extern int _dl_unmap_cache(void); #define DL_RESOLVE_SECURE 0x0001 #define DL_RESOLVE_NOLOAD 0x0002 extern void _dl_parse_lazy_relocation_information(struct dyn_elf *rpnt, unsigned long rel_addr, unsigned long rel_size); extern int _dl_parse_relocation_information(struct dyn_elf *rpnt, struct r_scope_elem *scope, unsigned long rel_addr, unsigned long rel_size); extern struct elf_resolve * _dl_load_shared_library(unsigned rflags, struct dyn_elf **rpnt, struct elf_resolve *tpnt, char *full_libname, int trace_loaded_objects); extern struct elf_resolve * _dl_load_elf_shared_library(unsigned rflags, struct dyn_elf **rpnt, const char *libname); extern struct elf_resolve *_dl_check_if_named_library_is_loaded(const char *full_libname, int trace_loaded_objects); extern int _dl_linux_resolve(void); extern int _dl_fixup(struct dyn_elf *rpnt, struct r_scope_elem *scope, int flag); extern void _dl_protect_relro (struct elf_resolve *l); # 61 "./ldso/include/dl-elf.h" #define ELF_ST_BIND(val) ELF32_ST_BIND(val) #define ELF_ST_TYPE(val) ELF32_ST_TYPE(val) #define ELF_R_SYM(i) ELF32_R_SYM(i) #define ELF_R_TYPE(i) ELF32_R_TYPE(i) #define ELF_CLASS ELFCLASS32 # 81 "./ldso/include/dl-elf.h" #define ELF_RELOC ElfW(Rel) #define DT_RELOC_TABLE_ADDR DT_REL #define DT_RELOC_TABLE_SIZE DT_RELSZ #define DT_RELOCCOUNT DT_RELCOUNT #define UNSUPPORTED_RELOC_TYPE DT_RELA #define UNSUPPORTED_RELOC_STR "RELA" #define OS_NUM_BASE 1 #define OS_NUM_GNU_HASH 0 #define OS_NUM_PRELINK 0 #define OS_NUM (OS_NUM_BASE + OS_NUM_GNU_HASH + OS_NUM_PRELINK) #define ARCH_NUM 0 #define DYNAMIC_SIZE (DT_NUM + OS_NUM + ARCH_NUM) #define DT_RELCONT_IDX (DYNAMIC_SIZE - OS_NUM - ARCH_NUM) #define DT_GNU_HASH_IDX DT_RELCONT_IDX # 133 "./ldso/include/dl-elf.h" extern unsigned int _dl_parse_dynamic_info(Elf32_Dyn *dpnt, unsigned long dynamic_info[], void *debug_addr, struct elf32_fdpic_loadaddr load_off); static __inline __attribute__ ((__always_inline__)) unsigned int __dl_parse_dynamic_info(Elf32_Dyn *dpnt, unsigned long dynamic_info[], void *debug_addr, struct elf32_fdpic_loadaddr load_off) { unsigned int rtld_flags = 0; for (; dpnt->d_tag; dpnt++) { if (dpnt->d_tag < 34) { dynamic_info[dpnt->d_tag] = dpnt->d_un.d_val; if (dpnt->d_tag == 21) dpnt->d_un.d_val = (unsigned long)debug_addr; if (dpnt->d_tag == 24) dynamic_info[24] = 1; if (dpnt->d_tag == 30 && (dpnt->d_un.d_val & 0x00000008)) dynamic_info[24] = 1; if (dpnt->d_tag == 22) dynamic_info[22] = 1; if (dpnt->d_tag == 29) dynamic_info[15] = 0; if (dpnt->d_tag == 15 && dynamic_info[29]) dynamic_info[15] = 0; } else if (dpnt->d_tag < 0x70000000) { if (dpnt->d_tag == 0x6ffffffa) dynamic_info[((34 + (1 + 0 + 0) + 0) - (1 + 0 + 0) - 0)] = dpnt->d_un.d_val; if (dpnt->d_tag == 0x6ffffffb) { if (dpnt->d_un.d_val & 0x00000001) dynamic_info[24] = 1; if (dpnt->d_un.d_val & 0x00000008) rtld_flags |= 0x01000; } # 193 "./ldso/include/dl-elf.h" } } #define ADJUST_DYN_INFO(tag,load_off) do { if (dynamic_info[tag]) dynamic_info[tag] = (unsigned long) DL_RELOC_ADDR(load_off, dynamic_info[tag]); } while (0) # 211 "./ldso/include/dl-elf.h" { do { if (dynamic_info[4]) dynamic_info[4] = (unsigned long) ((Elf32_Addr)__reloc_pointer ((void*)(dynamic_info[4]), (load_off).map)); } while (0); do { if (dynamic_info[3]) dynamic_info[3] = (unsigned long) ((Elf32_Addr)__reloc_pointer ((void*)(dynamic_info[3]), (load_off).map)); } while (0); do { if (dynamic_info[5]) dynamic_info[5] = (unsigned long) ((Elf32_Addr)__reloc_pointer ((void*)(dynamic_info[5]), (load_off).map)); } while (0); do { if (dynamic_info[6]) dynamic_info[6] = (unsigned long) ((Elf32_Addr)__reloc_pointer ((void*)(dynamic_info[6]), (load_off).map)); } while (0); do { if (dynamic_info[17]) dynamic_info[17] = (unsigned long) ((Elf32_Addr)__reloc_pointer ((void*)(dynamic_info[17]), (load_off).map)); } while (0); do { if (dynamic_info[23]) dynamic_info[23] = (unsigned long) ((Elf32_Addr)__reloc_pointer ((void*)(dynamic_info[23]), (load_off).map)); } while (0); } # 231 "./ldso/include/dl-elf.h" #undef ADJUST_DYN_INFO return rtld_flags; } # 243 "./ldso/include/dl-elf.h" #define ELF_RTYPE_CLASS_COPY (0x0) #define ELF_RTYPE_CLASS_PLT (0x1) #define ELF_RTYPE_CLASS_DLSYM 0x80000000 #define LXFLAGS(X) ( (((X) & PF_R) ? PROT_READ : 0) | (((X) & PF_W) ? PROT_WRITE : 0) | (((X) & PF_X) ? PROT_EXEC : 0)) # 48 "./ldso/include/ldso.h" 2 # 1 "./ldso/include/dl-hash.h" 1 # 9 "./ldso/include/dl-hash.h" #define _LD_HASH_H_ struct init_fini { struct elf_resolve **init_fini; unsigned long nlist; }; struct dyn_elf { struct elf_resolve * dyn; struct dyn_elf * next_handle; struct init_fini init_fini; struct dyn_elf * next; struct dyn_elf * prev; }; struct symbol_ref { const Elf32_Sym *sym; struct elf_resolve *tpnt; }; struct r_scope_elem { struct elf_resolve **r_list; unsigned int r_nlist; struct r_scope_elem *next; }; struct elf_resolve { struct elf32_fdpic_loadaddr loadaddr; char *libname; Elf32_Dyn *dynamic_addr; struct elf_resolve * next; struct elf_resolve * prev; # 75 "./ldso/include/dl-hash.h" Elf32_Addr mapaddr; enum {elf_lib, elf_executable,program_interpreter, loaded_file} libtype; struct r_scope_elem symbol_scope; unsigned short usage_count; unsigned short int init_flag; unsigned long rtld_flags; Elf_Symndx nbucket; # 100 "./ldso/include/dl-hash.h" Elf_Symndx *elf_buckets; struct init_fini_list *init_fini; struct init_fini_list *rtld_local; Elf_Symndx nchain; # 117 "./ldso/include/dl-hash.h" Elf_Symndx *chains; unsigned long dynamic_info[(34 + (1 + 0 + 0) + 0)]; unsigned long n_phent; Elf32_Phdr * ppnt; Elf32_Addr relro_addr; size_t relro_size; dev_t st_dev; ino_t st_ino; # 140 "./ldso/include/dl-hash.h" struct funcdesc_ht *funcdesc_ht; }; #define RELOCS_DONE 0x000001 #define JMP_RELOCS_DONE 0x000002 #define INIT_FUNCS_CALLED 0x000004 #define FINI_FUNCS_CALLED 0x000008 #define DL_OPENED 0x000010 #define DL_RESERVED 0x000020 extern struct dyn_elf * _dl_symbol_tables; extern struct elf_resolve * _dl_loaded_modules; extern struct dyn_elf * _dl_handles; extern struct elf_resolve * _dl_add_elf_hash_table(const char * libname, struct elf32_fdpic_loadaddr loadaddr, unsigned long * dynamic_info, unsigned long dynamic_addr, unsigned long dynamic_size); extern char *_dl_find_hash(const char *name, struct r_scope_elem *scope, struct elf_resolve *mytpnt, int type_class, struct symbol_ref *symbol); extern int _dl_linux_dynamic_link(void); extern char * _dl_library_path; extern char * _dl_not_lazy; static __inline__ int _dl_symbol(char * name) { if (name[0] != '_' || name[1] != 'd' || name[2] != 'l' || name[3] != '_') return 0; return 1; } #define LD_ERROR_NOFILE 1 #define LD_ERROR_NOZERO 2 #define LD_ERROR_NOTELF 3 #define LD_ERROR_NOTMAGIC 4 #define LD_ERROR_NOTDYN 5 #define LD_ERROR_MMAP_FAILED 6 #define LD_ERROR_NODYNAMIC 7 #define LD_ERROR_TLS_FAILED 8 #define LD_WRONG_RELOCS 9 #define LD_BAD_HANDLE 10 #define LD_NO_SYMBOL 11 # 53 "./ldso/include/ldso.h" 2 #define ADDR_ALIGN (_dl_pagesize - 1) #define PAGE_ALIGN (~ADDR_ALIGN) #define OFFS_ALIGN (PAGE_ALIGN & ~(1ul << (sizeof(_dl_pagesize) * 8 - 1))) struct init_fini_list { struct init_fini_list *next; struct elf_resolve *tpnt; }; extern char *_dl_library_path; extern char *_dl_preload; extern const char *_dl_ldsopath; extern const char *_dl_progname; extern size_t _dl_pagesize; #define _dl_trace_prelink 0 # 111 "./ldso/include/ldso.h" #define __dl_debug_dprint(fmt,args...) do {} while (0) #define _dl_if_debug_dprint(fmt,args...) do {} while (0) #define _dl_debug_file 2 # 126 "./ldso/include/ldso.h" #define _dl_assert(expr) ((void)0) # 136 "./ldso/include/ldso.h" #define _dl_debug_early(fmt,args...) do {} while (0) extern void *_dl_malloc(size_t size); extern void *_dl_calloc(size_t __nmemb, size_t __size); extern void *_dl_realloc(void *__ptr, size_t __size); extern void _dl_free(void *); extern char *_dl_getenv(const char *symbol, char **envp); extern void _dl_unsetenv(const char *symbol, char **envp); extern char *_dl_strdup(const char *string); extern void _dl_dprintf(int, const char *, ...); # 159 "./ldso/include/ldso.h" extern void *_dl_get_ready_to_run(struct elf_resolve *tpnt, struct elf32_fdpic_loadaddr load_addr, Elf32_auxv_t auxvt[14 + 1], char **envp, char **argv , struct elf32_fdpic_loadmap *dl_boot_progmap, Elf32_Addr dl_boot_got_pointer); # 1 "./ldso/ldso/bfin/dl-inlines.h" 1 # 1 "./include/bfin_sram.h" 1 # 10 "./include/bfin_sram.h" #define __BFIN_SRAM_H__ #define L1_INST_SRAM 0x00000001 #define L1_DATA_A_SRAM 0x00000002 #define L1_DATA_B_SRAM 0x00000004 #define L1_DATA_SRAM 0x00000006 #define L2_SRAM 0x00000008 extern void *sram_alloc(size_t size, unsigned long flags) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); extern int sram_free(const void *addr); extern void *dma_memcpy(void *dest, const void *src, size_t len) __attribute__ ((__nonnull__ (1, 2))); # 9 "./ldso/ldso/bfin/dl-inlines.h" 2 #define __dl_loadaddr_unmap __dl_loadaddr_unmap # 1 "./ldso/ldso/bfin/../fdpic/dl-inlines.h" 1 # 9 "./ldso/ldso/bfin/../fdpic/dl-inlines.h" static __inline __attribute__ ((__always_inline__)) void __dl_init_loadaddr_map(struct elf32_fdpic_loadaddr *loadaddr, Elf32_Addr dl_boot_got_pointer, struct elf32_fdpic_loadmap *map) { if (map->version != 0) { do { static const char __attribute__((section(".text"))) __s[] = ("Invalid loadmap version number\n"); const char *__p, *__scratch; __asm__ ("call 1f;\n1:\n\t" "%1 = RETS;\n\t" "%0 = [%3 + 1b@GOT17M4];\n\t" "%1 = %1 - %0;\n\t" "%1 = %1 + %2;\n\t" : "=&d" (__scratch), "=&d" (__p) : "d" (__s), "a" (dl_boot_got_pointer) : "RETS"); { const char *tmp1 = (__p); ; _dl_write(2, tmp1, _dl_strlen(tmp1)); }; { int __t; for (__t = 0; __t < 0x1000000; __t++) __asm__ __volatile__ (""); } } while (0); _dl_exit(-1); } if (map->nsegs == 0) { do { static const char __attribute__((section(".text"))) __s[] = ("Invalid segment count in loadmap\n"); const char *__p, *__scratch; __asm__ ("call 1f;\n1:\n\t" "%1 = RETS;\n\t" "%0 = [%3 + 1b@GOT17M4];\n\t" "%1 = %1 - %0;\n\t" "%1 = %1 + %2;\n\t" : "=&d" (__scratch), "=&d" (__p) : "d" (__s), "a" (dl_boot_got_pointer) : "RETS"); { const char *tmp1 = (__p); ; _dl_write(2, tmp1, _dl_strlen(tmp1)); }; { int __t; for (__t = 0; __t < 0x1000000; __t++) __asm__ __volatile__ (""); } } while (0); _dl_exit(-1); } loadaddr->got_value = (void *)dl_boot_got_pointer; loadaddr->map = map; } static __inline __attribute__ ((__always_inline__)) int __dl_init_loadaddr(struct elf32_fdpic_loadaddr *loadaddr, Elf32_Phdr *ppnt, int pcnt) { int count = 0, i; size_t size; for (i = 0; i < pcnt; i++) if (ppnt[i].p_type == 1) count++; loadaddr->got_value = 0; size = sizeof(struct elf32_fdpic_loadmap) + (sizeof(struct elf32_fdpic_loadseg) * count); loadaddr->map = _dl_malloc(size); if (!loadaddr->map) _dl_exit(-1); loadaddr->map->version = 0; loadaddr->map->nsegs = 0; return count; } static __inline __attribute__ ((__always_inline__)) void __dl_init_loadaddr_hdr(struct elf32_fdpic_loadaddr loadaddr, void *addr, Elf32_Phdr *phdr, int maxsegs) { struct elf32_fdpic_loadseg *segdata; if (loadaddr.map->nsegs == maxsegs) _dl_exit(-1); segdata = &loadaddr.map->segs[loadaddr.map->nsegs++]; segdata->addr = (Elf32_Addr)addr; segdata->p_vaddr = phdr->p_vaddr; segdata->p_memsz = phdr->p_memsz; } static __inline __attribute__ ((__always_inline__)) void __dl_update_loadaddr_hdr(struct elf32_fdpic_loadaddr loadaddr, void *addr, Elf32_Phdr *phdr) { struct elf32_fdpic_loadseg *segdata; void *oldaddr; int i; for (i = 0; i < loadaddr.map->nsegs; i++) if (loadaddr.map->segs[i].p_vaddr == phdr->p_vaddr && loadaddr.map->segs[i].p_memsz == phdr->p_memsz) break; if (i == loadaddr.map->nsegs) _dl_exit(-1); segdata = loadaddr.map->segs + i; oldaddr = (void *)segdata->addr; _dl_munmap(oldaddr, segdata->p_memsz); segdata->addr = (Elf32_Addr)addr; } # 132 "./ldso/ldso/bfin/../fdpic/dl-inlines.h" static __inline __attribute__ ((__always_inline__)) int __dl_addr_in_loadaddr(void *p, struct elf32_fdpic_loadaddr loadaddr) { struct elf32_fdpic_loadmap *map = loadaddr.map; int c; for (c = 0; c < map->nsegs; c++) if ((void *)map->segs[c].addr <= p && (char *)p < (char *)map->segs[c].addr + map->segs[c].p_memsz) return 1; return 0; } # 154 "./ldso/ldso/bfin/../fdpic/dl-inlines.h" static __inline __attribute__ ((__always_inline__)) unsigned long higher_prime_number(unsigned long n) { static const unsigned long primes[] = { 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381, 32749, 65521, 131071, 262139, 524287, 1048573, 2097143, 4194301, 8388593, 16777213, 33554393, 67108859, 134217689, 268435399, 536870909, 1073741789, ((unsigned long) 2147483647) + ((unsigned long) 2147483644), }; const unsigned long *low = &primes[0]; const unsigned long *high = &primes[(sizeof(primes) / sizeof((primes)[0]))]; while (low != high) { const unsigned long *mid = low + (high - low) / 2; if (n > *mid) low = mid + 1; else high = mid; } # 209 "./ldso/ldso/bfin/../fdpic/dl-inlines.h" return *low; } struct funcdesc_ht { struct funcdesc_value **entries; size_t size; size_t n_elements; }; static __inline __attribute__ ((__always_inline__)) int hash_pointer(const void *p) { return (int) ((long)p >> 3); } static __inline __attribute__ ((__always_inline__)) struct funcdesc_ht * htab_create(void) { struct funcdesc_ht *ht = _dl_malloc(sizeof(*ht)); size_t ent_size; if (!ht) return ((void *)0); ht->size = 3; ent_size = sizeof(struct funcdesc_ht_value *) * ht->size; ht->entries = _dl_malloc(ent_size); if (!ht->entries) return ((void *)0); ht->n_elements = 0; _dl_memset(ht->entries, 0, ent_size); return ht; } static __inline __attribute__ ((__always_inline__)) void htab_delete(struct funcdesc_ht *htab) { size_t i; for (i = htab->size - 1; i >= 0; i--) if (htab->entries[i]) _dl_free(htab->entries[i]); _dl_free(htab->entries); _dl_free(htab); } # 275 "./ldso/ldso/bfin/../fdpic/dl-inlines.h" static __inline __attribute__ ((__always_inline__)) struct funcdesc_value ** find_empty_slot_for_expand(struct funcdesc_ht *htab, int hash) { size_t size = htab->size; unsigned int index = hash % size; struct funcdesc_value **slot = htab->entries + index; int hash2; if (!*slot) return slot; hash2 = 1 + hash % (size - 2); for (;;) { index += hash2; if (index >= size) index -= size; slot = htab->entries + index; if (!*slot) return slot; } } # 307 "./ldso/ldso/bfin/../fdpic/dl-inlines.h" static __inline __attribute__ ((__always_inline__)) int htab_expand(struct funcdesc_ht *htab) { struct funcdesc_value **oentries; struct funcdesc_value **olimit; struct funcdesc_value **p; struct funcdesc_value **nentries; size_t nsize; oentries = htab->entries; olimit = oentries + htab->size; if (htab->n_elements * 2 > htab->size) nsize = higher_prime_number(htab->n_elements * 2); else nsize = htab->size; nentries = _dl_malloc(sizeof(*nentries) * nsize); _dl_memset(nentries, 0, sizeof(*nentries) * nsize); if (nentries == ((void *)0)) return 0; htab->entries = nentries; htab->size = nsize; p = oentries; do { if (*p) *find_empty_slot_for_expand(htab, hash_pointer((*p)->entry_point)) = *p; p++; } while (p < olimit); # 355 "./ldso/ldso/bfin/../fdpic/dl-inlines.h" return 1; } # 367 "./ldso/ldso/bfin/../fdpic/dl-inlines.h" static __inline __attribute__ ((__always_inline__)) struct funcdesc_value ** htab_find_slot(struct funcdesc_ht *htab, void *ptr, int insert) { unsigned int index; int hash, hash2; size_t size; struct funcdesc_value **entry; if (htab->size * 3 <= htab->n_elements * 4 && htab_expand(htab) == 0) return ((void *)0); hash = hash_pointer(ptr); size = htab->size; index = hash % size; entry = &htab->entries[index]; if (!*entry) goto empty_entry; else if ((*entry)->entry_point == ptr) return entry; hash2 = 1 + hash % (size - 2); for (;;) { index += hash2; if (index >= size) index -= size; entry = &htab->entries[index]; if (!*entry) goto empty_entry; else if ((*entry)->entry_point == ptr) return entry; } empty_entry: if (!insert) return ((void *)0); htab->n_elements++; return entry; } void * _dl_funcdesc_for (void *entry_point, void *got_value) { struct elf_resolve *tpnt = ((void**)got_value)[2]; struct funcdesc_ht *ht = tpnt->funcdesc_ht; struct funcdesc_value **entry; ((void)0); if (!ht) { ht = htab_create(); if (!ht) return (void*)-1; tpnt->funcdesc_ht = ht; } entry = htab_find_slot(ht, entry_point, 1); if (*entry) { ((void)0); return ({ __asm__ ("" : "+m" (*(*entry))); (*entry); }); } *entry = _dl_malloc(sizeof(**entry)); (*entry)->entry_point = entry_point; (*entry)->got_value = got_value; return ({ __asm__ ("" : "+m" (*(*entry))); (*entry); }); } static __inline __attribute__ ((__always_inline__)) void const * _dl_lookup_address(void const *address) { struct elf_resolve *rpnt; struct funcdesc_value const *fd; __asm__ ("" : "+r" (address)); if ((Elf32_Addr)address & 7) return address; fd = address; for (rpnt = _dl_loaded_modules; rpnt; rpnt = rpnt->next) { if (!rpnt->funcdesc_ht) continue; if (fd->got_value != rpnt->loadaddr.got_value) continue; address = htab_find_slot(rpnt->funcdesc_ht, (void *)fd->entry_point, 0); if (address && *(struct funcdesc_value *const*)address == fd) { address = (*(struct funcdesc_value *const*)address)->entry_point; break; } else address = fd; } return address; } # 13 "./ldso/ldso/bfin/dl-inlines.h" 2 static __inline __attribute__ ((__always_inline__)) void __dl_loadaddr_unmap(struct elf32_fdpic_loadaddr loadaddr, struct funcdesc_ht *funcdesc_ht) { int i; for (i = 0; i < loadaddr.map->nsegs; i++) { struct elf32_fdpic_loadseg *segdata; ssize_t offs; segdata = loadaddr.map->segs + i; if ((segdata->addr & 0xff800000) == 0xff800000) { _dl_sram_free((void *)segdata->addr); continue; } offs = (segdata->p_vaddr & (_dl_pagesize - 1)); _dl_munmap((void*)segdata->addr - offs, segdata->p_memsz + offs); } _dl_free(loadaddr.map); if (funcdesc_ht) htab_delete(funcdesc_ht); } static __inline __attribute__ ((__always_inline__)) int __dl_is_special_segment(Elf32_Ehdr *epnt, Elf32_Phdr *ppnt) { if (ppnt->p_type != 1) return 0; if ((epnt->e_flags & 0x00000010) && !(ppnt->p_flags & (1 << 1)) && (ppnt->p_flags & (1 << 0))) return 1; if ((epnt->e_flags & 0x00000020) && (ppnt->p_flags & (1 << 1)) && !(ppnt->p_flags & (1 << 0))) return 1; switch (ppnt->p_vaddr) { case 0xff700000: case 0xff800000: case 0xff900000: case 0xffa00000: case 0xfeb00000: case 0xfec00000: return 1; default: return 0; } } static __inline __attribute__ ((__always_inline__)) char * __dl_map_segment(Elf32_Ehdr *epnt, Elf32_Phdr *ppnt, int infile, int flags) { void *addr; unsigned long sram_flags = 0; if (((epnt->e_flags & 0x00000010) || ppnt->p_vaddr == 0xffa00000) && !(ppnt->p_flags & (1 << 1)) && (ppnt->p_flags & (1 << 0))) { size_t size = (ppnt->p_vaddr & (_dl_pagesize - 1)) + ppnt->p_filesz; void *status = _dl_mmap(((void *)0), size, ( (((ppnt->p_flags) & (1 << 2)) ? 0x1 : 0) | (((ppnt->p_flags) & (1 << 1)) ? 0x2 : 0) | (((ppnt->p_flags) & (1 << 0)) ? 0x4 : 0)), flags | 0x01000 | 0x00800, infile, ppnt->p_offset & ((~(_dl_pagesize - 1)) & ~(1ul << (sizeof(_dl_pagesize) * 8 - 1)))); if ((((void *)status) == ((void *) -1))) return ((void *)0); addr = _dl_sram_alloc(ppnt->p_filesz, 0x00000001); if (addr) _dl_dma_memcpy(addr, status + (ppnt->p_vaddr & (_dl_pagesize - 1)), ppnt->p_filesz); else _dl_dprintf(2, "%s:%s: sram allocation %#x failed\n", _dl_progname, __func__, ppnt->p_vaddr); _dl_munmap(status, size); return addr; } if (((epnt->e_flags & 0x00000020) || ppnt->p_vaddr == 0xff700000 || ppnt->p_vaddr == 0xff800000 || ppnt->p_vaddr == 0xff900000) && (ppnt->p_flags & (1 << 1)) && !(ppnt->p_flags & (1 << 0))) { switch (ppnt->p_vaddr) { case 0xff800000: sram_flags = 0x00000002; break; case 0xff900000: sram_flags = 0x00000004; break; default: sram_flags = 0x00000006; break; } } if (ppnt->p_vaddr == 0xfeb00000 || ppnt->p_vaddr == 0xfec00000) sram_flags = 0x00000008; if (sram_flags) { addr = _dl_sram_alloc(ppnt->p_memsz, sram_flags); if (addr) { if ((_dl_pread((infile), (addr), (ppnt->p_filesz), (ppnt->p_offset))) != ppnt->p_filesz) { _dl_sram_free(addr); return ((void *)0); } if (ppnt->p_filesz < ppnt->p_memsz) _dl_memset(addr + ppnt->p_filesz, 0, ppnt->p_memsz - ppnt->p_filesz); } else _dl_dprintf(2, "%s:%s: sram allocation %#x failed\n", _dl_progname, __func__, ppnt->p_vaddr); return addr; } return 0; } # 165 "./ldso/include/ldso.h" 2 # 34 "ldso/ldso/ldso.c" 2 # 1 "./ldso/include/unsecvars.h" 1 # 14 "./ldso/include/unsecvars.h" #define UNSECURE_ENVVARS "LD_PRELOAD\0" "LD_LIBRARY_PATH\0" "LD_DEBUG\0" "LD_DEBUG_OUTPUT\0" "LD_TRACE_LOADED_OBJECTS\0" "TMPDIR\0" # 35 "ldso/ldso/ldso.c" 2 # 1 "ldso/ldso/dl-debug.c" 1 # 103 "ldso/ldso/dl-debug.c" #define debug_sym(symtab,strtab,symtab_index) #define debug_reloc(symtab,strtab,rpnt) # 161 "ldso/ldso/dl-debug.c" #define _dl_debug_lookup(undef_name,undef_map,ref,value,type_class) # 38 "ldso/ldso/ldso.c" 2 #define ALLOW_ZERO_PLTGOT # 1 "ldso/ldso/bfin/elfinterp.c" 1 # 40 "ldso/ldso/bfin/elfinterp.c" __attribute__((__visibility__("hidden"))) struct funcdesc_value volatile * _dl_linux_resolver (struct elf_resolve *tpnt, int reloc_entry) { Elf32_Rel *this_reloc; char *strtab; Elf32_Sym *symtab; int symtab_index; char *rel_addr; char *new_addr; struct funcdesc_value funcval; struct funcdesc_value volatile *got_entry; char *symname; struct symbol_ref sym_ref; rel_addr = (char *)tpnt->dynamic_info[23]; this_reloc = (Elf32_Rel *)(intptr_t)(rel_addr + reloc_entry); symtab_index = ((this_reloc->r_info) >> 8); symtab = (Elf32_Sym *) tpnt->dynamic_info[6]; strtab = (char *) tpnt->dynamic_info[5]; sym_ref.sym = &symtab[symtab_index]; sym_ref.tpnt = ((void *)0); symname= strtab + symtab[symtab_index].st_name; got_entry = (struct funcdesc_value *) ((Elf32_Addr)__reloc_pointer ((void*)(this_reloc->r_offset), (tpnt->loadaddr).map)); new_addr = _dl_find_hash(symname, &_dl_loaded_modules->symbol_scope, ((void *)0), 0, &sym_ref); if (!new_addr) { new_addr = _dl_find_hash(symname, ((void *)0), ((void *)0), 0, &sym_ref); if (!new_addr) { _dl_dprintf(2, "%s: can't resolve symbol '%s'\n", _dl_progname, symname); _dl_exit(1); } } funcval.entry_point = new_addr; funcval.got_value = sym_ref.tpnt->loadaddr.got_value; # 97 "ldso/ldso/bfin/elfinterp.c" *got_entry = funcval; return got_entry; } static int _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope, unsigned long rel_addr, unsigned long rel_size, int (*reloc_fnc) (struct elf_resolve *tpnt, struct r_scope_elem *scope, Elf32_Rel *rpnt, Elf32_Sym *symtab, char *strtab)) { unsigned int i; char *strtab; Elf32_Sym *symtab; Elf32_Rel *rpnt; int symtab_index; rpnt = (Elf32_Rel *) rel_addr; rel_size = rel_size / sizeof(Elf32_Rel); symtab = (Elf32_Sym *) tpnt->dynamic_info[6]; strtab = (char *) tpnt->dynamic_info[5]; for (i = 0; i < rel_size; i++, rpnt++) { int res; symtab_index = ((rpnt->r_info) >> 8); ; ; res = reloc_fnc (tpnt, scope, rpnt, symtab, strtab); if (res==0) continue; _dl_dprintf(2, "\n%s: ",_dl_progname); if (symtab_index) _dl_dprintf(2, "symbol '%s': ", strtab + symtab[symtab_index].st_name); if (res <0) { int reloc_type = ((rpnt->r_info) & 0xff); _dl_dprintf(2, "can't handle reloc type %x\n", reloc_type); _dl_exit(-res); } else if (res >0) { _dl_dprintf(2, "can't resolve symbol\n"); return res; } } return 0; } static int _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope, Elf32_Rel *rpnt, Elf32_Sym *symtab, char *strtab) { int reloc_type; int symtab_index; char *symname; unsigned long reloc_value = 0, *reloc_addr; struct { unsigned long v; } __attribute__((__packed__)) *reloc_addr_packed; unsigned long symbol_addr; struct elf_resolve *symbol_tpnt; struct funcdesc_value funcval; struct symbol_ref sym_ref; reloc_addr = (unsigned long *) ((Elf32_Addr)__reloc_pointer ((void*)(rpnt->r_offset), (tpnt->loadaddr).map)); __asm__ ("" : "=r" (reloc_addr_packed) : "0" (reloc_addr)); reloc_type = ((rpnt->r_info) & 0xff); symtab_index = ((rpnt->r_info) >> 8); symbol_addr = 0; sym_ref.sym = &symtab[symtab_index]; sym_ref.tpnt = ((void *)0); symname = strtab + symtab[symtab_index].st_name; if ((((unsigned char) (symtab[symtab_index].st_info)) >> 4) == 0) { symbol_addr = (unsigned long) ((Elf32_Addr)__reloc_pointer ((void*)(symtab[symtab_index].st_value), (tpnt->loadaddr).map)); symbol_tpnt = tpnt; } else { symbol_addr = (unsigned long) _dl_find_hash(symname, scope, ((void *)0), 0, &sym_ref); if (!symbol_addr && (((unsigned char) (symtab[symtab_index].st_info)) >> 4) != 2) { _dl_dprintf (2, "%s: can't resolve symbol '%s'\n", _dl_progname, symname); _dl_exit (1); } if (0) { ; } symbol_tpnt = sym_ref.tpnt; } # 218 "ldso/ldso/bfin/elfinterp.c" switch (reloc_type) { case 0x00: break; case 0x12: if ((long)reloc_addr_packed & 3) reloc_value = reloc_addr_packed->v += symbol_addr; else reloc_value = *reloc_addr += symbol_addr; break; case 0x1b: funcval.entry_point = (void*)symbol_addr; if ((((unsigned char) (symtab[symtab_index].st_info)) >> 4) == 0) funcval.entry_point += *reloc_addr; reloc_value = (unsigned long)funcval.entry_point; if (symbol_addr) funcval.got_value = symbol_tpnt->loadaddr.got_value; else funcval.got_value = 0; __asm__ ("%0 = %2; %1 = %H2;" : "=m" (*(struct funcdesc_value *)reloc_addr), "=m" (((long *)reloc_addr)[1]) : "d" (funcval)); break; case 0x17: if ((long)reloc_addr_packed & 3) reloc_value = reloc_addr_packed->v; else reloc_value = *reloc_addr; if (symbol_addr) reloc_value = (unsigned long)_dl_funcdesc_for ((char *)symbol_addr + reloc_value, symbol_tpnt->loadaddr.got_value); else reloc_value = 0; if ((long)reloc_addr_packed & 3) reloc_addr_packed->v = reloc_value; else *reloc_addr = reloc_value; break; default: return -1; } # 283 "ldso/ldso/bfin/elfinterp.c" return 0; } static int _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope __attribute__((unused)), Elf32_Rel *rpnt, Elf32_Sym *symtab __attribute__((unused)), char *strtab __attribute__((unused))) { int reloc_type; struct funcdesc_value volatile *reloc_addr; struct funcdesc_value funcval; reloc_addr = (struct funcdesc_value *) ((Elf32_Addr)__reloc_pointer ((void*)(rpnt->r_offset), (tpnt->loadaddr).map)); reloc_type = ((rpnt->r_info) & 0xff); switch (reloc_type) { case 0x00: break; case 0x1b: funcval = *reloc_addr; funcval.entry_point = (void *) ((Elf32_Addr)__reloc_pointer ((void*)(funcval.entry_point), (tpnt->loadaddr).map)); funcval.got_value = tpnt->loadaddr.got_value; *reloc_addr = funcval; break; default: return -1; } return 0; } void _dl_parse_lazy_relocation_information (struct dyn_elf *rpnt, unsigned long rel_addr, unsigned long rel_size) { _dl_parse(rpnt->dyn, ((void *)0), rel_addr, rel_size, _dl_do_lazy_reloc); } int _dl_parse_relocation_information (struct dyn_elf *rpnt, struct r_scope_elem *scope, unsigned long rel_addr, unsigned long rel_size) { return _dl_parse(rpnt->dyn, scope, rel_addr, rel_size, _dl_do_reloc); } int _dl_parse_copy_information (struct dyn_elf *rpnt __attribute__((unused)), unsigned long rel_addr __attribute__((unused)), unsigned long rel_size __attribute__((unused))) { return 0; } # 1 "./ldso/include/../../libc/sysdeps/linux/bfin/crtreloc.c" 1 # 37 "./ldso/include/../../libc/sysdeps/linux/bfin/crtreloc.c" union word { char c[4]; void *v; }; static __inline __attribute__ ((__always_inline__)) void *** reloc_range_indirect (void ***p, void ***e, const struct elf32_fdpic_loadmap *map) { while (p < e) { if (*p != (void **)-1) { void *ptr = __reloc_pointer (*p, map); if (ptr != (void *)-1) { void *pt; if ((long)ptr & 3) { unsigned char *c = ptr; int i; unsigned long v = 0; for (i = 0; i < 4; i++) v |= c[i] << 8 * i; pt = (void *)v; } else pt = *(void**)ptr; pt = __reloc_pointer (pt, map); if ((long)ptr & 3) { unsigned char *c = ptr; int i; unsigned long v = (unsigned long)pt; for (i = 0; i < 4; i++, v >>= 8) c[i] = v; } else *(void**)ptr = pt; } } p++; } return p; } __attribute__ ((visibility ("hidden"))) void* __self_reloc (const struct elf32_fdpic_loadmap *map, void ***p, void ***e) { p = reloc_range_indirect (p, e-1, map); if (p >= e) return (void*)-1; return __reloc_pointer (*p, map); } # 352 "ldso/ldso/bfin/elfinterp.c" 2 # 47 "ldso/ldso/ldso.c" 2 char *_dl_library_path = ((void *)0); char *_dl_preload = ((void *)0); int _dl_errno = 0; size_t _dl_pagesize = 0; struct r_debug *_dl_debug_addr = ((void *)0); void *(*_dl_malloc_function) (size_t size) = ((void *)0); void (*_dl_free_function) (void *p) = ((void *)0); static int _dl_secure = 1; # 89 "ldso/ldso/ldso.c" unsigned long __attribute__ ((visibility ("hidden"))) _dl_skip_args = 0; const char *_dl_progname = "ld-uClibc.so.0"; # 1 "ldso/ldso/dl-startup.c" 1 # 95 "ldso/ldso/dl-startup.c" # 1 "./ldso/ldso/bfin/dl-startup.h" 1 # 39 "./ldso/ldso/bfin/dl-startup.h" __asm__( " .pushsection .text\n" " .global __start\n" " .type __start,@function\n" " .hidden __start\n" " .set _start, __start\n" " .global _start\n" " .hidden _start\n" "__start:\n" " call .Lcall\n" ".Lcall:\n" " R4 = RETS;\n" " SP += -32;\n" " R5 = P0;\n" " R6 = P1;\n" " R7 = P2;\n" " R0.L = .Lcall;\n" " R0.H = .Lcall;\n" " R1.L = __ROFIXUP_LIST__;\n" " R1.H = __ROFIXUP_LIST__;\n" " R2.L = __ROFIXUP_END__;\n" " R2.H = __ROFIXUP_END__;\n" " R1 = R1 - R0;\n" " R1 = R1 + R4;\n" " R2 = R2 - R0;\n" " R2 = R2 + R4;\n" " R0 = P1;\n" " CC = R0 == 0;\n" " IF CC R0 = P0;\n" " CALL ___self_reloc;\n" " P3 = R0;\n" " P5 = R0;\n" " R1 = R5;\n" " R2 = R6;\n" " [SP + 12] = R7;\n" " P0 = SP;\n" " P0 += 24;\n" " [SP + 16] = P0;\n" " P0 += 8;\n" " [SP + 20] = P0;\n" " CALL __dl_start;\n" " /* Pass our FINI ptr() to the user in P1 */\n" " R7 = [P5 + __dl_fini@FUNCDESC_GOT17M4];\n" " P4 = [SP + 24];\n" " P3 = [SP + 28];\n" " P0 = R5;\n" " SP += 32;\n" " JUMP (P4);\n" " .size __start,.-__start\n" " .popsection\n" ); #undef DL_START #define DL_START(X) static void __attribute__ ((used)) _dl_start (Elf32_Addr dl_boot_got_pointer, struct elf32_fdpic_loadmap *dl_boot_progmap, struct elf32_fdpic_loadmap *dl_boot_ldsomap, Elf32_Dyn *dl_boot_ldso_dyn_pointer, struct funcdesc_value *dl_main_funcdesc, X) # 108 "./ldso/ldso/bfin/dl-startup.h" #define GET_ARGV(ARGVP,ARGS) ARGVP = (((unsigned long*) ARGS) + 1) # 117 "./ldso/ldso/bfin/dl-startup.h" #define PERFORM_BOOTSTRAP_RELOC(RELP,REL,SYMBOL,LOAD,SYMTAB) switch(ELF_R_TYPE((RELP)->r_info)){ case R_BFIN_BYTE4_DATA: *(REL) += (SYMBOL); break; case R_BFIN_FUNCDESC_VALUE: { struct funcdesc_value fv = { (void*)((SYMBOL) + *(REL)), (LOAD).got_value }; *(struct funcdesc_value volatile *)(REL) = fv; break; } default: _dl_exit(1); } # 140 "./ldso/ldso/bfin/dl-startup.h" #define START() do { struct elf_resolve *exec_mod = _dl_loaded_modules; dl_main_funcdesc->entry_point = _dl_elf_main; while (exec_mod->libtype != elf_executable) exec_mod = exec_mod->next; dl_main_funcdesc->got_value = exec_mod->loadaddr.got_value; return; } while (0) # 96 "ldso/ldso/dl-startup.c" 2 static int (*_dl_elf_main) (int, char **, char **); static void* __rtld_stack_end; extern __typeof (__rtld_stack_end) __libc_stack_end __attribute__ ((alias ("__rtld_stack_end"))); # 117 "ldso/ldso/dl-startup.c" static void __attribute__ ((used)) _dl_start (Elf32_Addr dl_boot_got_pointer, struct elf32_fdpic_loadmap *dl_boot_progmap, struct elf32_fdpic_loadmap *dl_boot_ldsomap, Elf32_Dyn *dl_boot_ldso_dyn_pointer, struct funcdesc_value *dl_main_funcdesc, unsigned long args) { unsigned int argc; char **argv, **envp; struct elf32_fdpic_loadaddr load_addr; Elf32_Addr got; unsigned long *aux_dat; Elf32_Ehdr *header; struct elf_resolve tpnt_tmp; struct elf_resolve *tpnt = &tpnt_tmp; Elf32_auxv_t auxvt[14 + 1]; Elf32_Dyn *dpnt; uint32_t *p32; # 138 "ldso/ldso/dl-startup.c" aux_dat = (((unsigned long*) args) + 1); argc = aux_dat[-1]; argv = (char **) aux_dat; aux_dat += argc; aux_dat++; envp = (char **) aux_dat; ; ; ; ; ; ; while (*aux_dat) aux_dat++; aux_dat++; auxvt[11].a_type = -1; while (*aux_dat) { Elf32_auxv_t *auxv_entry = (Elf32_auxv_t *) aux_dat; if (auxv_entry->a_type <= 14) { _dl_memcpy(&(auxvt[auxv_entry->a_type]), auxv_entry, sizeof(Elf32_auxv_t)); } aux_dat += 2; } # 188 "ldso/ldso/dl-startup.c" if (!auxvt[7].a_un.a_val) auxvt[7].a_un.a_val = elf_machine_load_address(); (__dl_init_loadaddr_map (&(load_addr), dl_boot_got_pointer, dl_boot_ldsomap ?: dl_boot_progmap)); header = (Elf32_Ehdr *) auxvt[7].a_un.a_val; if (!header || header->e_ident[4] != 1 || header->e_ident[6] != 1 || *(p32 = (uint32_t*)&header->e_ident) != ((uint32_t)(0x7f + 0x100 * ('E' + (0x100 * ('L' + 0x100 * 'F'))))) ) { do { static const char __attribute__((section(".text"))) __s[] = ("Invalid ELF header\n"); const char *__p, *__scratch; __asm__ ("call 1f;\n1:\n\t" "%1 = RETS;\n\t" "%0 = [%3 + 1b@GOT17M4];\n\t" "%1 = %1 - %0;\n\t" "%1 = %1 + %2;\n\t" : "=&d" (__scratch), "=&d" (__p) : "d" (__s), "a" (dl_boot_got_pointer) : "RETS"); { const char *tmp1 = (__p); ; _dl_write(2, tmp1, _dl_strlen(tmp1)); }; { int __t; for (__t = 0; __t < 0x1000000; __t++) __asm__ __volatile__ (""); } } while (0); _dl_exit(0); } ; ; ((got) = dl_boot_got_pointer); ((dpnt) = dl_boot_ldso_dyn_pointer); ; ; _dl_memset(tpnt, 0, sizeof(struct elf_resolve)); tpnt->loadaddr = load_addr; ; tpnt->dynamic_addr = dpnt; _dl_parse_dynamic_info(dpnt, tpnt->dynamic_info, ((void *)0), load_addr); # 247 "ldso/ldso/dl-startup.c" ; # 259 "ldso/ldso/dl-startup.c" ; { int indx; #define INDX_MAX 1 for (indx = 0; indx < 1; indx++) { unsigned long rel_addr, rel_size; Elf32_Word relative_count = tpnt->dynamic_info[((34 + (1 + 0 + 0) + 0) - (1 + 0 + 0) - 0)]; rel_addr = (indx ? tpnt->dynamic_info[23] : tpnt->dynamic_info[17]); rel_size = (indx ? tpnt->dynamic_info[2] : tpnt->dynamic_info[18]); if (!rel_addr) continue; if (!indx && relative_count) { rel_size -= relative_count * sizeof(Elf32_Rel); elf_machine_relative(load_addr, rel_addr, relative_count); rel_addr += relative_count * sizeof(Elf32_Rel); } { Elf32_Rel *rpnt; unsigned int i; Elf32_Sym *sym; unsigned long symbol_addr; int symtab_index; unsigned long *reloc_addr; rpnt = (Elf32_Rel *) rel_addr; for (i = 0; i < rel_size; i += sizeof(Elf32_Rel), rpnt++) { reloc_addr = (unsigned long *) ((Elf32_Addr)__reloc_pointer ((void*)((unsigned long)rpnt->r_offset), (load_addr).map)); symtab_index = ((rpnt->r_info) >> 8); symbol_addr = 0; sym = ((void *)0); if (symtab_index) { char *strtab; Elf32_Sym *symtab; symtab = (Elf32_Sym *) tpnt->dynamic_info[6]; strtab = (char *) tpnt->dynamic_info[5]; sym = &symtab[symtab_index]; symbol_addr = (unsigned long) ((Elf32_Addr)__reloc_pointer ((void*)(sym->st_value), (load_addr).map)); } else { ; } switch((((rpnt)->r_info) & 0xff)){ case 0x12: *(reloc_addr) += (symbol_addr); break; case 0x1b: { struct funcdesc_value fv = { (void*)((symbol_addr) + *(reloc_addr)), (load_addr).got_value }; *(struct funcdesc_value volatile *)(reloc_addr) = fv; break; } default: _dl_exit(1); }; } } } } ; __rtld_stack_end = (void *)(argv - 1); _dl_elf_main = (int (*)(int, char **, char **)) _dl_get_ready_to_run(tpnt, load_addr, auxvt, envp, argv , dl_boot_progmap, dl_boot_got_pointer); ; ; do { struct elf_resolve *exec_mod = _dl_loaded_modules; dl_main_funcdesc->entry_point = _dl_elf_main; while (exec_mod->libtype != elf_executable) exec_mod = exec_mod->next; dl_main_funcdesc->got_value = exec_mod->loadaddr.got_value; return; } while (0); } # 94 "ldso/ldso/ldso.c" 2 # 1 "ldso/ldso/dl-symbols.c" 1 # 20 "ldso/ldso/dl-symbols.c" struct elf_resolve *_dl_loaded_modules = ((void *)0); # 95 "ldso/ldso/ldso.c" 2 # 1 "ldso/ldso/dl-array.c" 1 # 34 "ldso/ldso/dl-array.c" static void _dl_run_array_forward(unsigned long array, unsigned long size, struct elf32_fdpic_loadaddr loadaddr) { if (array != 0) { unsigned int j; unsigned int jm; Elf32_Addr *addrs; jm = size / sizeof (Elf32_Addr); addrs = (Elf32_Addr *) ((Elf32_Addr)__reloc_pointer ((void*)(array), (loadaddr).map)); for (j = 0; j < jm; ++j) { void (*dl_elf_func) (void); dl_elf_func = (void (*)(void)) (intptr_t) addrs[j]; ({ struct funcdesc_value fd = { (void*)(dl_elf_func), (loadaddr).got_value }; void (*pf)(void) = (void*) ({ __asm__ ("" : "+m" (*(&fd))); (&fd); }); (* (void (*)(void)) pf)(); }); } } } void _dl_run_init_array(struct elf_resolve *tpnt); void _dl_run_init_array(struct elf_resolve *tpnt) { _dl_run_array_forward(tpnt->dynamic_info[25], tpnt->dynamic_info[27], tpnt->loadaddr); } void _dl_app_init_array(void); void _dl_app_init_array(void) { _dl_run_init_array(_dl_loaded_modules); } void _dl_run_fini_array(struct elf_resolve *tpnt); void _dl_run_fini_array(struct elf_resolve *tpnt) { if (tpnt->dynamic_info[26]) { Elf32_Addr *array = (Elf32_Addr *) ((Elf32_Addr)__reloc_pointer ((void*)(tpnt->dynamic_info[26]), (tpnt->loadaddr).map)); unsigned int i = (tpnt->dynamic_info[28] / sizeof(Elf32_Addr)); while (i-- > 0) { void (*dl_elf_func) (void); dl_elf_func = (void (*)(void)) (intptr_t) array[i]; ({ struct funcdesc_value fd = { (void*)(dl_elf_func), (tpnt->loadaddr).got_value }; void (*pf)(void) = (void*) ({ __asm__ ("" : "+m" (*(&fd))); (&fd); }); (* (void (*)(void)) pf)(); }); } } } void _dl_app_fini_array(void); void _dl_app_fini_array(void) { _dl_run_fini_array(_dl_loaded_modules); } # 96 "ldso/ldso/ldso.c" 2 void _dl_debug_state(void); extern __typeof (_dl_debug_state) _dl_debug_state __asm__ ("_" "__GI__dl_debug_state") __attribute__ ((visibility ("hidden"), noinline));; void _dl_debug_state(void) { __asm__(""); } extern __typeof (_dl_debug_state) __EI__dl_debug_state __asm__("_" "_dl_debug_state"); extern __typeof (_dl_debug_state) __EI__dl_debug_state __attribute__((alias ("" "__GI__dl_debug_state")));; static unsigned char *_dl_malloc_addr = ((void *)0); static unsigned char *_dl_mmap_zero = ((void *)0); static struct elf_resolve **init_fini_list; static struct elf_resolve **scope_elem_list; static unsigned int nlist; extern void _start(void); # 135 "ldso/ldso/ldso.c" const char *_dl_ldsopath = ((void *)0); static void _dl_ldsopath_init(struct elf_resolve *tpnt) { char *ldsopath, *ptmp; # 149 "ldso/ldso/ldso.c" ldsopath = _dl_strdup(tpnt->libname); ptmp = _dl_strrchr(ldsopath, '/'); if (!ptmp) ptmp = ldsopath; *ptmp = '\0'; _dl_ldsopath = ldsopath; do {} while (0) ; } char *_dl_getenv(const char *symbol, char **envp) { char *pnt; const char *pnt1; while ((pnt = *envp++)) { pnt1 = symbol; while (*pnt && *pnt == *pnt1) pnt1++, pnt++; if (!*pnt || *pnt != '=' || *pnt1) continue; return pnt + 1; } return 0; } void _dl_unsetenv(const char *symbol, char **envp) { char *pnt; const char *pnt1; char **newenvp = envp; for (pnt = *envp; pnt; pnt = *++envp) { pnt1 = symbol; while (*pnt && *pnt == *pnt1) pnt1++, pnt++; if (!*pnt || *pnt != '=' || *pnt1) *newenvp++ = *envp; } *newenvp++ = *envp; return; } static int _dl_suid_ok(void) { __kernel_uid_t uid, euid; __kernel_gid_t gid, egid; uid = _dl_getuid(); euid = _dl_geteuid(); gid = _dl_getgid(); egid = _dl_getegid(); if (uid == euid && gid == egid) { return 1; } return 0; } void *_dl_malloc(size_t size) { void *retval; if (_dl_malloc_function) return (*_dl_malloc_function) (size); if (_dl_malloc_addr - _dl_mmap_zero + size > _dl_pagesize) { size_t rounded_size; # 241 "ldso/ldso/ldso.c" if (size < _dl_pagesize) rounded_size = (size + (_dl_pagesize - 1)) & _dl_pagesize; else rounded_size = size; do {} while (0); _dl_mmap_zero = _dl_malloc_addr = _dl_mmap((void *) 0, rounded_size, 0x1 | 0x2, 0x02 | 0x20 | 0x4000000, -1, 0); if ((((void *)_dl_mmap_zero) == ((void *) -1))) { _dl_dprintf(2, "%s: mmap of a spare page failed!\n", _dl_progname); _dl_exit(20); } } retval = _dl_malloc_addr; _dl_malloc_addr += size; _dl_malloc_addr = (unsigned char *) (((unsigned long) _dl_malloc_addr + (32 / 8) - 1) & ~((32 / 8) - 1)); return retval; } static void *_dl_zalloc(size_t size) { void *p = _dl_malloc(size); if (p) _dl_memset(p, 0, size); return p; } void _dl_free(void *p) { if (_dl_free_function) (*_dl_free_function) (p); } # 306 "ldso/ldso/ldso.c" static void __attribute__ ((destructor)) __attribute__ ((__used__)) _dl_fini(void) { unsigned int i; struct elf_resolve * tpnt; for (i = 0; i < nlist; ++i) { tpnt = init_fini_list[i]; if (tpnt->init_flag & 0x000008) continue; tpnt->init_flag |= 0x000008; _dl_run_fini_array(tpnt); if (tpnt->dynamic_info[13]) { void (*dl_elf_func) (void); dl_elf_func = (void (*)(void)) (intptr_t) ((Elf32_Addr)__reloc_pointer ((void*)(tpnt->dynamic_info[13]), (tpnt->loadaddr).map)); do {} while (0); ({ struct funcdesc_value fd = { (void*)(dl_elf_func), (tpnt->loadaddr).got_value }; void (*pf)(void) = (void*) ({ __asm__ ("" : "+m" (*(&fd))); (&fd); }); (* (void(*)(void)) pf)(); }); } } } # 352 "ldso/ldso/ldso.c" static struct elf_resolve * add_ldso(struct elf_resolve *tpnt, struct elf32_fdpic_loadaddr load_addr, Elf32_Addr ldso_mapaddr, Elf32_auxv_t auxvt[14 + 1], struct dyn_elf *rpnt) { Elf32_Ehdr *epnt = (Elf32_Ehdr *) auxvt[7].a_un.a_val; Elf32_Phdr *myppnt = (Elf32_Phdr *) (( Elf32_Addr # 360 "ldso/ldso/ldso.c" )__reloc_pointer ((void*)(epnt->e_phoff), ((load_addr)).map)) ; int j; struct stat st; tpnt = _dl_add_elf_hash_table(tpnt->libname, tpnt->loadaddr, tpnt->dynamic_info, (unsigned long)tpnt->dynamic_addr, 0); tpnt->mapaddr = ldso_mapaddr; if (_dl_stat(tpnt->libname, &st) >= 0) { tpnt->st_dev = st.st_dev; tpnt->st_ino = st.st_ino; } tpnt->n_phent = epnt->e_phnum; tpnt->ppnt = myppnt; for (j = 0; j < epnt->e_phnum; j++, myppnt++) { if (myppnt->p_type == 0x6474e552) { tpnt->relro_addr = myppnt->p_vaddr; tpnt->relro_size = myppnt->p_memsz; break; } } tpnt->libtype = program_interpreter; if (rpnt) { rpnt->next = _dl_zalloc(sizeof(struct dyn_elf)); rpnt->next->prev = rpnt; rpnt = rpnt->next; } else { rpnt = _dl_zalloc(sizeof(struct dyn_elf)); } rpnt->dyn = tpnt; tpnt->rtld_flags = 0x00002 | 0x00100; return tpnt; } static ptrdiff_t _dl_build_local_scope (struct elf_resolve **list, struct elf_resolve *map) { struct elf_resolve **p = list; struct init_fini_list *q; *p++ = map; map->init_flag |= 0x000020; if (map->init_fini) for (q = map->init_fini; q; q = q->next) if (! (q->tpnt->init_flag & 0x000020)) p += _dl_build_local_scope (p, q->tpnt); return p - list; } void *_dl_get_ready_to_run(struct elf_resolve *tpnt, struct elf32_fdpic_loadaddr load_addr, Elf32_auxv_t auxvt[14 + 1], char **envp, char **argv , struct elf32_fdpic_loadmap *dl_boot_progmap, Elf32_Addr dl_boot_got_pointer) { Elf32_Addr app_mapaddr = 0, ldso_mapaddr = 0; Elf32_Phdr *ppnt; Elf32_Dyn *dpnt; char *lpntstr; unsigned int i, cnt, nscope_elem; int unlazy = 0, trace_loaded_objects = 0; struct dyn_elf *rpnt; struct elf_resolve *tcurr; struct elf_resolve *tpnt1; struct elf_resolve *ldso_tpnt = ((void *)0); struct elf_resolve app_tpnt_tmp; struct elf_resolve *app_tpnt = &app_tpnt_tmp; struct r_debug *debug_addr; unsigned long *lpnt; unsigned long *_dl_envp; Elf32_Addr relro_addr = 0; size_t relro_size = 0; struct r_scope_elem *global_scope; struct elf_resolve **local_scope; # 444 "ldso/ldso/ldso.c" _dl_memset(app_tpnt, 0, sizeof(*app_tpnt)); _dl_pagesize = (auxvt[6].a_un.a_val) ? (size_t) auxvt[6].a_un.a_val : (1UL << 12); _dl_malloc_addr = (unsigned char *)_dl_pagesize; _dl_mmap_zero = 0; do {} while (0); if (argv[0]) { _dl_progname = argv[0]; } if (_start == (void *) auxvt[9].a_un.a_val) { _dl_dprintf(2, "Standalone execution is not enabled\n"); _dl_exit(1); } rpnt = ((void *)0); if (_dl_getenv("LD_BIND_NOW", envp)) unlazy = 0x00002; if ((auxvt[11].a_un.a_val == (size_t)-1 && _dl_suid_ok()) || (auxvt[11].a_un.a_val != (size_t)-1 && auxvt[11].a_un.a_val == auxvt[12].a_un.a_val && auxvt[13].a_un.a_val == auxvt[14].a_un.a_val)) { _dl_secure = 0; _dl_preload = _dl_getenv("LD_PRELOAD", envp); _dl_library_path = _dl_getenv("LD_LIBRARY_PATH", envp); } else { static const char unsecure_envvars[] = "LD_PRELOAD\0" "LD_LIBRARY_PATH\0" "LD_DEBUG\0" "LD_DEBUG_OUTPUT\0" "LD_TRACE_LOADED_OBJECTS\0" "TMPDIR\0"; const char *nextp; _dl_secure = 1; nextp = unsecure_envvars; do { _dl_unsetenv (nextp, envp); nextp = _dl_strchr(nextp, '\0') + 1; } while (*nextp != '\0'); _dl_preload = ((void *)0); _dl_library_path = ((void *)0); unlazy = 0x00002; } # 623 "ldso/ldso/ldso.c" { unsigned int idx; Elf32_Phdr *phdr = (Elf32_Phdr *) auxvt[3].a_un.a_val; for (idx = 0; idx < auxvt[5].a_un.a_val; idx++, phdr++) if (phdr->p_type == 6) { (__dl_init_loadaddr_map (&(app_tpnt->loadaddr), 0, dl_boot_progmap)); break; } if (((app_tpnt->loadaddr).got_value)) do {} while (0) ; } debug_addr = _dl_zalloc(sizeof(struct r_debug)); ppnt = (Elf32_Phdr *) auxvt[3].a_un.a_val; for (i = 0; i < auxvt[5].a_un.a_val; i++, ppnt++) { if (ppnt->p_type == 0x6474e552) { relro_addr = ppnt->p_vaddr; relro_size = ppnt->p_memsz; } if (!app_mapaddr && (ppnt->p_type == 1)) { app_mapaddr = ((Elf32_Addr)__reloc_pointer ((void*)(ppnt->p_vaddr), (app_tpnt->loadaddr).map)); } if (ppnt->p_type == 2) { dpnt = (Elf32_Dyn *) ((Elf32_Addr)__reloc_pointer ((void*)(ppnt->p_vaddr), (app_tpnt->loadaddr).map)); _dl_parse_dynamic_info(dpnt, app_tpnt->dynamic_info, debug_addr, app_tpnt->loadaddr); do {} while (0); if (app_tpnt->dynamic_info[22]) { Elf32_Phdr *ppnt_outer = ppnt; ppnt = (Elf32_Phdr *) auxvt[3].a_un.a_val; for (i = 0; i < auxvt[5].a_un.a_val; i++, ppnt++) { if (ppnt->p_type == 1 && !(ppnt->p_flags & (1 << 1))) _dl_mprotect((void *) (((Elf32_Addr)__reloc_pointer ((void*)(ppnt->p_vaddr), (app_tpnt->loadaddr).map)) & (~(_dl_pagesize - 1))), (((Elf32_Addr)__reloc_pointer ((void*)(ppnt->p_vaddr), (app_tpnt->loadaddr).map)) & (_dl_pagesize - 1)) + (unsigned long) ppnt->p_filesz, 0x1 | 0x2 | 0x4); } ppnt = ppnt_outer; } # 689 "ldso/ldso/ldso.c" app_tpnt = _dl_add_elf_hash_table(_dl_progname, app_tpnt->loadaddr, app_tpnt->dynamic_info, (unsigned long) ((Elf32_Addr)__reloc_pointer ((void*)(ppnt->p_vaddr), (app_tpnt->loadaddr).map)), ppnt->p_filesz); _dl_loaded_modules->libtype = elf_executable; _dl_loaded_modules->ppnt = (Elf32_Phdr *) auxvt[3].a_un.a_val; _dl_loaded_modules->n_phent = auxvt[5].a_un.a_val; _dl_symbol_tables = rpnt = _dl_zalloc(sizeof(struct dyn_elf)); rpnt->dyn = _dl_loaded_modules; app_tpnt->mapaddr = app_mapaddr; app_tpnt->rtld_flags = unlazy | 0x00100; app_tpnt->usage_count++; lpnt = (unsigned long *) (app_tpnt->dynamic_info[3]); if (lpnt) { (_dl_loaded_modules)->loadaddr.got_value = (lpnt); lpnt[0] = ((unsigned long *)&_dl_linux_resolve)[0]; lpnt[1] = ((unsigned long *)&_dl_linux_resolve)[1]; lpnt[2] = (unsigned long) _dl_loaded_modules; }; } if (ppnt->p_type == 3) { tpnt->libname = (char *) ((Elf32_Addr)__reloc_pointer ((void*)(ppnt->p_vaddr), (app_tpnt->loadaddr).map)); _dl_ldsopath_init(tpnt); } if (ppnt->p_type == 7) { # 736 "ldso/ldso/ldso.c" _dl_dprintf(2, "Program uses unsupported TLS data!\n"); _dl_exit(1); } } app_tpnt->relro_addr = relro_addr; app_tpnt->relro_size = relro_size; # 820 "ldso/ldso/ldso.c" if (_dl_getenv("LD_TRACE_LOADED_OBJECTS", envp) != ((void *)0)) { trace_loaded_objects++; } # 831 "ldso/ldso/ldso.c" ldso_mapaddr = (Elf32_Addr) auxvt[7].a_un.a_val; debug_addr->r_map = (struct link_map *) _dl_loaded_modules; debug_addr->r_version = 1; debug_addr->r_ldbase = (Elf32_Addr) (((load_addr)).got_value); debug_addr->r_brk = (unsigned long) &_dl_debug_state; _dl_debug_addr = debug_addr; # 852 "ldso/ldso/ldso.c" _dl_map_cache(); if (_dl_preload) { char c, *str, *str2; str = _dl_preload; while (*str == ':' || *str == ' ' || *str == '\t') str++; while (*str) { str2 = str; while (*str2 && *str2 != ':' && *str2 != ' ' && *str2 != '\t') str2++; c = *str2; *str2 = '\0'; if (!_dl_secure || _dl_strchr(str, '/') == ((void *)0)) { do {} while (0); tpnt1 = _dl_load_shared_library( _dl_secure ? 0x0001 : 0, &rpnt, ((void *)0), str, trace_loaded_objects); if (!tpnt1) { if (trace_loaded_objects || 0) _dl_dprintf(1, "\t%s => not found\n", str); else { _dl_dprintf(2, "%s: can't load " "library '%s'\n", _dl_progname, str); _dl_exit(15); } } else { tpnt1->rtld_flags = unlazy | 0x00100; do {} while (0); if (trace_loaded_objects && !0 && tpnt1->usage_count == 1) { if (_dl_strcmp(_dl_progname, str) != 0) _dl_dprintf(1, "\t%s => %s (%x)\n", str, tpnt1->libname, ((tpnt1->loadaddr).got_value)); } } } *str2 = c; str = str2; while (*str == ':' || *str == ' ' || *str == '\t') str++; } } # 1002 "ldso/ldso/ldso.c" nlist = 0; for (tcurr = _dl_loaded_modules; tcurr; tcurr = tcurr->next) { Elf32_Dyn *this_dpnt; nlist++; for (this_dpnt = (Elf32_Dyn *) tcurr->dynamic_addr; this_dpnt->d_tag; this_dpnt++) { if (this_dpnt->d_tag == 1) { char *name; struct init_fini_list *tmp; lpntstr = (char*) (tcurr->dynamic_info[5] + this_dpnt->d_un.d_val); name = _dl_get_last_path_component(lpntstr); do {} while (0); if (_dl_strcmp(name, "ld-uClibc.so.0") == 0) { if (!ldso_tpnt) { ldso_tpnt = add_ldso(tpnt, load_addr, ldso_mapaddr, auxvt, rpnt); } ldso_tpnt->usage_count++; tpnt1 = ldso_tpnt; } else tpnt1 = _dl_load_shared_library(0, &rpnt, tcurr, lpntstr, trace_loaded_objects); if (!tpnt1) { if (trace_loaded_objects || 0) { _dl_dprintf(1, "\t%s => not found\n", lpntstr); continue; } else { _dl_dprintf(2, "%s: can't load library '%s'\n", _dl_progname, lpntstr); _dl_exit(16); } } tmp = __builtin_alloca (sizeof(struct init_fini_list)); tmp->tpnt = tpnt1; tmp->next = tcurr->init_fini; tcurr->init_fini = tmp; tpnt1->rtld_flags = unlazy | 0x00100; do {} while (0); if (trace_loaded_objects && !0 && tpnt1->usage_count == 1) { _dl_dprintf(1, "\t%s => %s (%x)\n", lpntstr, tpnt1->libname, ((tpnt1->loadaddr).got_value)); } } } } _dl_unmap_cache(); nscope_elem = nlist; if (_dl_loaded_modules->libtype == elf_executable) { --nlist; tcurr = _dl_loaded_modules->next; } else tcurr = _dl_loaded_modules; init_fini_list = _dl_malloc(nlist * sizeof(struct elf_resolve *)); i = 0; for (; tcurr; tcurr = tcurr->next) init_fini_list[i++] = tcurr; for (tcurr = _dl_loaded_modules->next; tcurr; tcurr = tcurr->next) { unsigned int j, k; for (j = 0; init_fini_list[j] != tcurr; ++j) ; for (k = j + 1; k < nlist; ++k) { struct init_fini_list *runp = init_fini_list[k]->init_fini; for (; runp; runp = runp->next) { if (runp->tpnt == tcurr) { struct elf_resolve *here = init_fini_list[k]; do {} while (0); for (i = (k - j); i; --i) init_fini_list[i+j] = init_fini_list[i+j-1]; init_fini_list[j] = here; ++j; break; } } } } # 1119 "ldso/ldso/ldso.c" if (!ldso_tpnt) { tpnt = add_ldso(tpnt, load_addr, ldso_mapaddr, auxvt, rpnt); tpnt->usage_count++; nscope_elem++; } else tpnt = ldso_tpnt; # 1135 "ldso/ldso/ldso.c" tpnt->init_flag = 0x000001 | 0x000002; tpnt = ((void *)0); scope_elem_list = (struct elf_resolve **) _dl_malloc(nscope_elem * sizeof(struct elf_resolve *)); for (i = 0, tcurr = _dl_loaded_modules; tcurr; tcurr = tcurr->next) scope_elem_list[i++] = tcurr; _dl_loaded_modules->symbol_scope.r_list = scope_elem_list; _dl_loaded_modules->symbol_scope.r_nlist = nscope_elem; global_scope = &_dl_loaded_modules->symbol_scope; local_scope = _dl_malloc(nscope_elem * sizeof(struct elf_resolve *)); i = 1; for (tcurr = _dl_loaded_modules->next; tcurr; tcurr = tcurr->next) { unsigned int k; cnt = _dl_build_local_scope(local_scope, scope_elem_list[i++]); tcurr->symbol_scope.r_list = _dl_malloc(cnt * sizeof(struct elf_resolve *)); tcurr->symbol_scope.r_nlist = cnt; _dl_memcpy (tcurr->symbol_scope.r_list, local_scope, cnt * sizeof (struct elf_resolve *)); for (k = 1; k < nscope_elem; k++) scope_elem_list[k]->init_flag &= ~0x000020; } _dl_free(local_scope); if (trace_loaded_objects && !0) _dl_exit(0); # 1288 "ldso/ldso/ldso.c" { do {} while (0); # 1306 "ldso/ldso/ldso.c" if (_dl_symbol_tables) if (_dl_fixup(_dl_symbol_tables, global_scope, unlazy)) _dl_exit(-1); for (tpnt = _dl_loaded_modules; tpnt; tpnt = tpnt->next) { if (tpnt->relro_size) _dl_protect_relro (tpnt); } } # 1345 "ldso/ldso/ldso.c" _dl_envp = (unsigned long *) (intptr_t) _dl_find_hash("_" "__environ", global_scope, ((void *)0), 0, ((void *)0)); if (_dl_envp) *_dl_envp = (unsigned long) envp; { unsigned int j; Elf32_Phdr *myppnt; for (tpnt = _dl_loaded_modules; tpnt; tpnt = tpnt->next) { for (myppnt = tpnt->ppnt, j = 0; j < tpnt->n_phent; j++, myppnt++) { if (myppnt->p_type == 1 && !(myppnt->p_flags & (1 << 1)) && tpnt->dynamic_info[22]) { _dl_mprotect((void *) (((Elf32_Addr)__reloc_pointer ((void*)(myppnt->p_vaddr), (tpnt->loadaddr).map)) & (~(_dl_pagesize - 1))), (myppnt->p_vaddr & (_dl_pagesize - 1)) + (unsigned long) myppnt->p_filesz, ( (((myppnt->p_flags) & (1 << 2)) ? 0x1 : 0) | (((myppnt->p_flags) & (1 << 1)) ? 0x2 : 0) | (((myppnt->p_flags) & (1 << 0)) ? 0x4 : 0))); } } } } _dl_debug_addr->r_state = RT_ADD; _dl_debug_state(); _dl_run_array_forward(_dl_loaded_modules->dynamic_info[32], _dl_loaded_modules->dynamic_info[33], _dl_loaded_modules->loadaddr); for (i = nlist; i; --i) { tpnt = init_fini_list[i-1]; tpnt->init_fini = ((void *)0); if (tpnt->init_flag & 0x000004) continue; tpnt->init_flag |= 0x000004; if (tpnt->dynamic_info[12]) { void (*dl_elf_func) (void); dl_elf_func = (void (*)(void)) ((Elf32_Addr)__reloc_pointer ((void*)(tpnt->dynamic_info[12]), (tpnt->loadaddr).map)); do {} while (0); ({ struct funcdesc_value fd = { (void*)(dl_elf_func), (tpnt->loadaddr).got_value }; void (*pf)(void) = (void*) ({ __asm__ ("" : "+m" (*(&fd))); (&fd); }); (* (void(*)(void)) pf)(); }); } _dl_run_init_array(tpnt); } _dl_malloc_function = (void* (*)(size_t)) (intptr_t) _dl_find_hash("_" "malloc", global_scope, ((void *)0), (0x1), ((void *)0)); # 1420 "ldso/ldso/ldso.c" _dl_debug_addr->r_state = RT_CONSISTENT; _dl_debug_state(); return (void *) auxvt[9].a_un.a_val; } # 1 "ldso/ldso/dl-hash.c" 1 # 40 "ldso/ldso/dl-hash.c" struct dyn_elf *_dl_symbol_tables = ((void *)0); struct dyn_elf *_dl_handles = ((void *)0); # 65 "ldso/ldso/dl-hash.c" static __inline__ Elf_Symndx _dl_elf_hash(const unsigned char *name) { unsigned long hash=0; unsigned long tmp; while (*name) { hash = (hash << 4) + *name++; tmp = hash & 0xf0000000; hash ^= tmp; hash ^= tmp >> 24; } return hash; } struct elf_resolve *_dl_add_elf_hash_table(const char *libname, struct elf32_fdpic_loadaddr loadaddr, unsigned long *dynamic_info, unsigned long dynamic_addr, __attribute__ ((unused)) unsigned long dynamic_size) { Elf_Symndx *hash_addr; struct elf_resolve *tpnt; int i; tpnt = _dl_malloc(sizeof(struct elf_resolve)); _dl_memset(tpnt, 0, sizeof(struct elf_resolve)); if (!_dl_loaded_modules) _dl_loaded_modules = tpnt; else { struct elf_resolve *t = _dl_loaded_modules; while (t->next) t = t->next; t->next = tpnt; t->next->prev = t; tpnt = t->next; } tpnt->next = ((void *)0); tpnt->init_flag = 0; tpnt->libname = _dl_strdup(libname); tpnt->dynamic_addr = (Elf32_Dyn *)dynamic_addr; tpnt->libtype = loaded_file; # 140 "ldso/ldso/dl-hash.c" if (dynamic_info[4] != 0) { hash_addr = (Elf_Symndx*)dynamic_info[4]; tpnt->nbucket = *hash_addr++; tpnt->nchain = *hash_addr++; tpnt->elf_buckets = hash_addr; hash_addr += tpnt->nbucket; tpnt->chains = hash_addr; } tpnt->loadaddr = loadaddr; for (i = 0; i < (34 + (1 + 0 + 0) + 0); i++) tpnt->dynamic_info[i] = dynamic_info[i]; return tpnt; } static __attribute__ ((__noinline__)) const Elf32_Sym * check_match (const Elf32_Sym *sym, char *strtab, const char* undef_name, int type_class) { # 175 "ldso/ldso/dl-hash.c" if (type_class & (sym->st_shndx == 0)) return ((void *)0); if (sym->st_value == 0) return ((void *)0); if (((sym->st_info) & 0xf) > 2 && ((sym->st_info) & 0xf) != 5) return ((void *)0); if (_dl_strcmp(strtab + sym->st_name, undef_name) != 0) return ((void *)0); return sym; } # 246 "ldso/ldso/dl-hash.c" static __inline __attribute__ ((__always_inline__)) const Elf32_Sym * _dl_lookup_sysv_hash(struct elf_resolve *tpnt, Elf32_Sym *symtab, unsigned long hash, const char* undef_name, int type_class) { unsigned long hn; char *strtab; const Elf32_Sym *sym; Elf_Symndx symidx; ((hn) = (hash) % (tpnt->nbucket)); strtab = (char *) (tpnt->dynamic_info[5]); ((void)0); for (symidx = tpnt->elf_buckets[hn]; symidx != 0; symidx = tpnt->chains[symidx]) { sym = check_match (&symtab[symidx], strtab, undef_name, type_class); if (sym != ((void *)0)) return sym; } return ((void *)0); } char *_dl_find_hash(const char *name, struct r_scope_elem *scope, struct elf_resolve *mytpnt, int type_class, struct symbol_ref *sym_ref) { struct elf_resolve *tpnt = ((void *)0); Elf32_Sym *symtab; int i = 0; unsigned long elf_hash_number = 0xffffffff; const Elf32_Sym *sym = ((void *)0); char *weak_result = ((void *)0); struct r_scope_elem *loop_scope; if ((sym_ref) && (sym_ref->sym) && (((sym_ref->sym->st_other) & 0x03) == 3)) { sym = sym_ref->sym; if (mytpnt) tpnt = mytpnt; } else for (loop_scope = scope; loop_scope && !sym; loop_scope = loop_scope->next) { for (i = 0; i < loop_scope->r_nlist; i++) { tpnt = loop_scope->r_list[i]; if (!(tpnt->rtld_flags & 0x00100) && mytpnt) { if (mytpnt == tpnt) ; else { struct init_fini_list *tmp; for (tmp = mytpnt->rtld_local; tmp; tmp = tmp->next) { if (tmp->tpnt == tpnt) break; } if (!tmp) continue; } } if ((type_class & (0x0)) && tpnt->libtype == elf_executable) continue; if (tpnt->nbucket == 0) continue; symtab = (Elf32_Sym *) (intptr_t) (tpnt->dynamic_info[6]); # 336 "ldso/ldso/dl-hash.c" if (elf_hash_number == 0xffffffff) elf_hash_number = _dl_elf_hash((const unsigned char *)name); sym = _dl_lookup_sysv_hash(tpnt, symtab, elf_hash_number, name, type_class); if (sym != ((void *)0)) break; } } if (sym) { if (sym_ref) { sym_ref->sym = sym; sym_ref->tpnt = tpnt; } # 362 "ldso/ldso/dl-hash.c" switch ((((unsigned char) (sym->st_info)) >> 4)) { case 2: case 1: if (sym_ref) sym_ref->tpnt = tpnt; return (char *)(((type_class) & 0x80000000) && (((sym)->st_info) & 0xf) == 2 ? _dl_funcdesc_for ((void *)((Elf32_Addr)__reloc_pointer ((void*)((sym)->st_value), ((tpnt)->loadaddr).map)), (tpnt)->loadaddr.got_value) : ((Elf32_Addr)__reloc_pointer ((void*)((sym)->st_value), ((tpnt)->loadaddr).map))); default: break; } } if (sym_ref) sym_ref->tpnt = tpnt; return weak_result; } # 1432 "ldso/ldso/ldso.c" 2 # 1 "ldso/ldso/dl-elf.c" 1 # 37 "ldso/ldso/dl-elf.c" static caddr_t _dl_cache_addr = ((void *)0); static size_t _dl_cache_size = 0; int _dl_map_cache(void) { int fd; struct stat st; header_t *header; libentry_t *libent; int i, strtabsize; if (_dl_cache_addr == ((void *) -1)) return -1; else if (_dl_cache_addr != ((void *)0)) return 0; if (_dl_stat("/usr/bfin-linux-uclibc/" "etc/" "ld.so" ".cache", &st) || (fd = _dl_open("/usr/bfin-linux-uclibc/" "etc/" "ld.so" ".cache", 00|02000000, 0)) < 0) { _dl_cache_addr = ((void *) -1); return -1; } _dl_cache_size = st.st_size; _dl_cache_addr = _dl_mmap(0, _dl_cache_size, 0x1, (0x02), fd, 0); _dl_close(fd); if ((((void *)_dl_cache_addr) == ((void *) -1))) { _dl_dprintf(2, "%s:%i: can't map '%s'\n", _dl_progname, 64, "/usr/bfin-linux-uclibc/" "etc/" "ld.so" ".cache"); return -1; } header = (header_t *) _dl_cache_addr; if (_dl_cache_size < sizeof(header_t) || _dl_memcmp(header->magic, "ld.so-", (sizeof "ld.so-" -1)) || _dl_memcmp(header->version, "1.7.0", (sizeof "1.7.0" -1)) || _dl_cache_size < (sizeof(header_t) + header->nlibs * sizeof(libentry_t)) || _dl_cache_addr[_dl_cache_size - 1] != '\0') { _dl_dprintf(2, "%s: cache '%s' is corrupt\n", _dl_progname, "/usr/bfin-linux-uclibc/" "etc/" "ld.so" ".cache"); goto fail; } strtabsize = _dl_cache_size - sizeof(header_t) - header->nlibs * sizeof(libentry_t); libent = (libentry_t *) & header[1]; for (i = 0; i < header->nlibs; i++) { if (libent[i].sooffset >= strtabsize || libent[i].liboffset >= strtabsize) { _dl_dprintf(2, "%s: cache '%s' is corrupt\n", _dl_progname, "/usr/bfin-linux-uclibc/" "etc/" "ld.so" ".cache"); goto fail; } } return 0; fail: _dl_munmap(_dl_cache_addr, _dl_cache_size); _dl_cache_addr = ((void *) -1); return -1; } int _dl_unmap_cache(void) { if (_dl_cache_addr == ((void *)0) || _dl_cache_addr == ((void *) -1)) return -1; _dl_munmap(_dl_cache_addr, _dl_cache_size); _dl_cache_addr = ((void *)0); return 0; } void _dl_protect_relro (struct elf_resolve *l) { Elf32_Addr base = (Elf32_Addr) ((Elf32_Addr)__reloc_pointer ((void*)(l->relro_addr), (l->loadaddr).map)); Elf32_Addr start = (base & (~(_dl_pagesize - 1))); Elf32_Addr end = ((base + l->relro_size) & (~(_dl_pagesize - 1))); do {} while (0); if (start != end && _dl_mprotect ((void *) start, end - start, 0x1) < 0) { _dl_dprintf(2, "%s: cannot apply additional memory protection after relocation", l->libname); _dl_exit(0); } } static struct elf_resolve * search_for_named_library(const char *name, unsigned rflags, const char *path_list, struct dyn_elf **rpnt) { char *path, *path_n, *mylibname; struct elf_resolve *tpnt; int done; if (path_list==((void *)0)) return ((void *)0); done = _dl_strlen(path_list); path = __builtin_alloca (done + 1); mylibname = __builtin_alloca (2050); _dl_memcpy(path, path_list, done+1); done = 0; path_n = path; do { if (*path == 0) { *path = ':'; done = 1; } if (*path == ':') { *path = 0; if (*path_n) _dl_strcpy(mylibname, path_n); else _dl_strcpy(mylibname, "."); _dl_strcat(mylibname, "/"); _dl_strcat(mylibname, name); if ((tpnt = _dl_load_elf_shared_library(rflags, rpnt, mylibname)) != ((void *)0)) return tpnt; path_n = path+1; } path++; } while (!done); return ((void *)0); } unsigned long _dl_error_number; unsigned long _dl_internal_error_number; struct elf_resolve *_dl_load_shared_library(unsigned rflags, struct dyn_elf **rpnt, struct elf_resolve *tpnt, char *full_libname, int __attribute__ ((unused)) trace_loaded_objects) { char *pnt; struct elf_resolve *tpnt1; char *libname; _dl_internal_error_number = 0; libname = full_libname; if (_dl_strlen(full_libname) > 1024) goto goof; pnt = _dl_strrchr(libname, '/'); if (pnt) { libname = pnt + 1; } do {} while (0); if (libname != full_libname) { do {} while (0); tpnt1 = _dl_load_elf_shared_library(rflags, rpnt, full_libname); if (tpnt1) { return tpnt1; } } pnt = (tpnt ? (char *) tpnt->dynamic_info[15] : ((void *)0)); if (pnt) { pnt += (unsigned long) tpnt->dynamic_info[5]; do {} while (0); if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt)) != ((void *)0)) return tpnt1; } if (_dl_library_path) { do {} while (0); if ((tpnt1 = search_for_named_library(libname, rflags, _dl_library_path, rpnt)) != ((void *)0)) { return tpnt1; } } pnt = (tpnt ? (char *)tpnt->dynamic_info[29] : ((void *)0)); if (pnt) { pnt += (unsigned long) tpnt->dynamic_info[5]; do {} while (0); if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt)) != ((void *)0)) return tpnt1; } # 268 "ldso/ldso/dl-elf.c" if (_dl_cache_addr != ((void *)0) && _dl_cache_addr != ((void *) -1)) { int i; header_t *header = (header_t *) _dl_cache_addr; libentry_t *libent = (libentry_t *) & header[1]; char *strs = (char *) &libent[header->nlibs]; do {} while (0); for (i = 0; i < header->nlibs; i++) { if ((libent[i].flags == 1 || libent[i].flags == 4 || libent[i].flags == 2) && _dl_strcmp(libname, strs + libent[i].sooffset) == 0 && (tpnt1 = _dl_load_elf_shared_library(rflags, rpnt, strs + libent[i].liboffset)) ) { return tpnt1; } } } # 297 "ldso/ldso/dl-elf.c" do {} while (0); tpnt1 = search_for_named_library(libname, rflags, "/usr/bfin-linux-uclibc/" "lib:" "/usr/bfin-linux-uclibc/" "usr/lib" , rpnt); if (tpnt1 != ((void *)0)) return tpnt1; goof: if (_dl_internal_error_number) _dl_error_number = _dl_internal_error_number; else _dl_error_number = 1; do {} while (0); return ((void *)0); } ; static void * map_writeable (int infile, Elf32_Phdr *ppnt, int piclib, int flags, unsigned long libaddr) { int prot_flags = ppnt->p_flags | (1 << 1); char *status, *retval; char *tryaddr; ssize_t size; unsigned long map_size; char *cpnt; char *piclib2map = ((void *)0); if (piclib == 2 && # 353 "ldso/ldso/dl-elf.c" ppnt->p_filesz < ppnt->p_memsz) { piclib2map = (char *) _dl_mmap(0, (ppnt->p_vaddr & (_dl_pagesize - 1)) + ppnt->p_memsz, ( (((prot_flags) & (1 << 2)) ? 0x1 : 0) | (((prot_flags) & (1 << 1)) ? 0x2 : 0) | (((prot_flags) & (1 << 0)) ? 0x4 : 0)), flags | 0x20, -1, 0); if ((((void *)piclib2map) == ((void *) -1))) return 0; } tryaddr = piclib == 2 ? piclib2map : ((char *) (piclib ? libaddr : 0) + (ppnt->p_vaddr & (~(_dl_pagesize - 1)))); size = (ppnt->p_vaddr & (_dl_pagesize - 1)) + ppnt->p_filesz; if (piclib2map == 0) status = (char *) _dl_mmap (tryaddr, size, ( (((prot_flags) & (1 << 2)) ? 0x1 : 0) | (((prot_flags) & (1 << 1)) ? 0x2 : 0) | (((prot_flags) & (1 << 0)) ? 0x4 : 0)), flags | (piclib2map ? 0x10 : 0), infile, ppnt->p_offset & ((~(_dl_pagesize - 1)) & ~(1ul << (sizeof(_dl_pagesize) * 8 - 1)))); else status = ((void *) -1); if ((((void *)status) == ((void *) -1)) && piclib2map && ((_dl_pread((infile), (tryaddr), (size), (ppnt->p_offset & ((~(_dl_pagesize - 1)) & ~(1ul << (sizeof(_dl_pagesize) * 8 - 1)))))) == size)) status = tryaddr; if ((((void *)status) == ((void *) -1)) || (tryaddr && tryaddr != status)) return 0; if (piclib2map) retval = piclib2map; else retval = status; # 411 "ldso/ldso/dl-elf.c" cpnt = (char *) (status + size); map_size = (ppnt->p_vaddr + ppnt->p_filesz + (_dl_pagesize - 1)) & (~(_dl_pagesize - 1)); _dl_memset (cpnt, 0, (((map_size - (ppnt->p_vaddr + ppnt->p_filesz))<(ppnt->p_memsz - ppnt->p_filesz))?(map_size - (ppnt->p_vaddr + ppnt->p_filesz)):(ppnt->p_memsz - ppnt->p_filesz)) ); if (map_size < ppnt->p_vaddr + ppnt->p_memsz && !piclib2map) { tryaddr = map_size + (char*)(piclib ? libaddr : 0); status = (char *) _dl_mmap(tryaddr, ppnt->p_vaddr + ppnt->p_memsz - map_size, ( (((prot_flags) & (1 << 2)) ? 0x1 : 0) | (((prot_flags) & (1 << 1)) ? 0x2 : 0) | (((prot_flags) & (1 << 0)) ? 0x4 : 0)), flags | 0x20 | 0x10, -1, 0); if ((((void *)status) == ((void *) -1)) || tryaddr != status) return ((void *)0); } return retval; } struct elf_resolve *_dl_load_elf_shared_library(unsigned rflags, struct dyn_elf **rpnt, const char *libname) { Elf32_Ehdr *epnt; unsigned long dynamic_addr = 0; Elf32_Dyn *dpnt; struct elf_resolve *tpnt; Elf32_Phdr *ppnt; char *status, *header; unsigned long dynamic_info[(34 + (1 + 0 + 0) + 0)]; unsigned long *lpnt; unsigned long libaddr; unsigned long minvma = 0xffffffff, maxvma = 0; unsigned int rtld_flags; int i, flags, piclib, infile; Elf32_Addr relro_addr = 0; size_t relro_size = 0; struct stat st; uint32_t *p32; struct elf32_fdpic_loadaddr lib_loadaddr; int dl_init_loadaddr_load_count; libaddr = 0; infile = _dl_open(libname, 00, 0); if (infile < 0) { _dl_internal_error_number = 1; return ((void *)0); } if (_dl_fstat(infile, &st) < 0) { _dl_internal_error_number = 1; _dl_close(infile); return ((void *)0); } if (rflags & 0x0001) { if (!(st.st_mode & 04000)) { _dl_close(infile); return ((void *)0); } } for (tpnt = _dl_loaded_modules; tpnt; tpnt = tpnt->next) { if (tpnt->st_dev == st.st_dev && tpnt->st_ino == st.st_ino) { tpnt->usage_count++; _dl_close(infile); return tpnt; } } if (rflags & 0x0002) { _dl_close(infile); return ((void *)0); } header = _dl_mmap((void *) 0, _dl_pagesize, 0x1 | 0x2, 0x02 | 0x20 | 0x4000000, -1, 0); if ((((void *)header) == ((void *) -1))) { _dl_dprintf(2, "%s:%i: can't map '%s'\n", _dl_progname, 505, libname); _dl_internal_error_number = 6; _dl_close(infile); return ((void *)0); } _dl_read(infile, header, _dl_pagesize); epnt = (Elf32_Ehdr *) (intptr_t) header; p32 = (uint32_t*)&epnt->e_ident; if (*p32 != ((uint32_t)(0x7f + 0x100 * ('E' + (0x100 * ('L' + 0x100 * 'F')))))) { _dl_dprintf(2, "%s: '%s' is not an ELF file\n", _dl_progname, libname); _dl_internal_error_number = 3; _dl_close(infile); _dl_munmap(header, _dl_pagesize); return ((void *)0); } if ((epnt->e_type != 3 ) || (epnt->e_machine != 106 )) { _dl_internal_error_number = (epnt->e_type != 3 ? 5 : 4); _dl_dprintf(2, "%s: '%s' is not an ELF executable for " "BFIN" "\n", _dl_progname, libname); _dl_close(infile); _dl_munmap(header, _dl_pagesize); return ((void *)0); } ppnt = (Elf32_Phdr *)(intptr_t) & header[epnt->e_phoff]; piclib = 1; for (i = 0; i < epnt->e_phnum; i++) { if (ppnt->p_type == 2) { if (dynamic_addr) _dl_dprintf(2, "%s: '%s' has more than one dynamic section\n", _dl_progname, libname); dynamic_addr = ppnt->p_vaddr; } if (ppnt->p_type == 1) { if (minvma == 0xffffffff && ppnt->p_vaddr > 0x1000000) { piclib = 0; minvma = ppnt->p_vaddr; } if (piclib && ppnt->p_vaddr < minvma) { minvma = ppnt->p_vaddr; } if (((unsigned long) ppnt->p_vaddr + ppnt->p_memsz) > maxvma) { maxvma = ppnt->p_vaddr + ppnt->p_memsz; } } if (ppnt->p_type == 7) { # 581 "ldso/ldso/dl-elf.c" _dl_dprintf(2, "%s: '%s' library contains unsupported TLS\n", _dl_progname, libname); _dl_internal_error_number = 8; _dl_close(infile); _dl_munmap(header, _dl_pagesize); return ((void *)0); } ppnt++; } do { if (((epnt)->e_flags & 0x00000002) && ! ((epnt)->e_flags & 0x00000001)) (piclib) = 2; else { _dl_internal_error_number = 5; _dl_dprintf(2, "%s: '%s' is not an FDPIC shared library" "\n", (_dl_progname), (libname)); _dl_close(infile); return ((void *)0); } } while (0); maxvma = (maxvma + (_dl_pagesize - 1)) & (~(_dl_pagesize - 1)); minvma = minvma & ~(_dl_pagesize - 1); flags = 0x02 ; if (piclib == 0 || piclib == 1) { status = (char *) _dl_mmap((char *) (piclib ? 0 : minvma), maxvma - minvma, 0x0, flags | 0x20, -1, 0); if ((((void *)status) == ((void *) -1))) { cant_map: _dl_dprintf(2, "%s:%i: can't map '%s'\n", _dl_progname, 609, libname); _dl_internal_error_number = 6; _dl_close(infile); _dl_munmap(header, _dl_pagesize); return ((void *)0); } libaddr = (unsigned long) status; flags |= 0x10; } ppnt = (Elf32_Phdr *)(intptr_t) & header[epnt->e_phoff]; (dl_init_loadaddr_load_count = __dl_init_loadaddr (&(lib_loadaddr), (ppnt), (epnt->e_phnum))); ; for (i = 0; i < epnt->e_phnum; i++) { if (__dl_is_special_segment(epnt, ppnt)) { char *addr; addr = __dl_map_segment (epnt, ppnt, infile, flags); if (addr == ((void *)0)) { cant_map1: (__dl_loadaddr_unmap ((lib_loadaddr), (((void *)0)))); goto cant_map; } (__dl_init_loadaddr_hdr ((lib_loadaddr), (addr), (ppnt), dl_init_loadaddr_load_count)); ppnt++; continue; } if (ppnt->p_type == 0x6474e552) { relro_addr = ppnt->p_vaddr; relro_size = ppnt->p_memsz; } if (ppnt->p_type == 1) { char *tryaddr; ssize_t size; if (ppnt->p_flags & (1 << 1)) { status = map_writeable (infile, ppnt, piclib, flags, libaddr); if (status == ((void *)0)) goto cant_map1; } else { tryaddr = (piclib == 2 ? 0 : (char *) (ppnt->p_vaddr & (~(_dl_pagesize - 1))) + (piclib ? libaddr : 0)); size = (ppnt->p_vaddr & (_dl_pagesize - 1)) + ppnt->p_filesz; status = (char *) _dl_mmap (tryaddr, size, ( (((ppnt->p_flags) & (1 << 2)) ? 0x1 : 0) | (((ppnt->p_flags) & (1 << 1)) ? 0x2 : 0) | (((ppnt->p_flags) & (1 << 0)) ? 0x4 : 0)), flags | (piclib == 2 ? 0x01000 | 0x00800 : 0), infile, ppnt->p_offset & ((~(_dl_pagesize - 1)) & ~(1ul << (sizeof(_dl_pagesize) * 8 - 1)))); if ((((void *)status) == ((void *) -1)) || (tryaddr && tryaddr != status)) goto cant_map1; } (__dl_init_loadaddr_hdr ((lib_loadaddr), (status + (ppnt->p_vaddr & (_dl_pagesize - 1))), (ppnt), dl_init_loadaddr_load_count)) ; } ppnt++; } # 686 "ldso/ldso/dl-elf.c" if (piclib) { dynamic_addr = (unsigned long) ((Elf32_Addr)__reloc_pointer ((void*)(dynamic_addr), (lib_loadaddr).map)); } # 698 "ldso/ldso/dl-elf.c" if (!dynamic_addr) { _dl_internal_error_number = 7; _dl_dprintf(2, "%s: '%s' is missing a dynamic section\n", _dl_progname, libname); _dl_munmap(header, _dl_pagesize); _dl_close(infile); return ((void *)0); } dpnt = (Elf32_Dyn *) dynamic_addr; _dl_memset(dynamic_info, 0, sizeof(dynamic_info)); rtld_flags = _dl_parse_dynamic_info(dpnt, dynamic_info, ((void *)0), lib_loadaddr); if (dynamic_info[22]) { ppnt = (Elf32_Phdr *)(intptr_t) & header[epnt->e_phoff]; for (i = 0; i < epnt->e_phnum; i++, ppnt++) { if (ppnt->p_type == 1 && !(ppnt->p_flags & (1 << 1))) { void *new_addr; new_addr = map_writeable (infile, ppnt, piclib, flags, libaddr); if (!new_addr) { _dl_dprintf(2, "Can't modify %s's text section.", libname); _dl_exit(1); } (__dl_update_loadaddr_hdr ((lib_loadaddr), (new_addr + (ppnt->p_vaddr & (_dl_pagesize - 1))), (ppnt))) ; _dl_parse_dynamic_info(dpnt, dynamic_info, ((void *)0), lib_loadaddr); } } } _dl_close(infile); tpnt = _dl_add_elf_hash_table(libname, lib_loadaddr, dynamic_info, dynamic_addr, 0); tpnt->mapaddr = libaddr; tpnt->relro_addr = relro_addr; tpnt->relro_size = relro_size; tpnt->st_dev = st.st_dev; tpnt->st_ino = st.st_ino; tpnt->ppnt = (Elf32_Phdr *) (( Elf32_Addr # 759 "ldso/ldso/dl-elf.c" )__reloc_pointer ((void*)(epnt->e_phoff), ((tpnt->loadaddr)).map)) ; tpnt->n_phent = epnt->e_phnum; tpnt->rtld_flags |= rtld_flags; # 808 "ldso/ldso/dl-elf.c" if (*rpnt ) { (*rpnt)->next = _dl_malloc(sizeof(struct dyn_elf)); _dl_memset((*rpnt)->next, 0, sizeof(struct dyn_elf)); (*rpnt)->next->prev = (*rpnt); *rpnt = (*rpnt)->next; } else { *rpnt = _dl_symbol_tables = _dl_malloc(sizeof(struct dyn_elf)); _dl_memset(*rpnt, 0, sizeof(struct dyn_elf)); } (*rpnt)->dyn = tpnt; tpnt->usage_count++; tpnt->libtype = elf_lib; # 843 "ldso/ldso/dl-elf.c" lpnt = (unsigned long *) dynamic_info[3]; if (lpnt) { lpnt = (unsigned long *) (dynamic_info[3]); { (tpnt)->loadaddr.got_value = (lpnt); lpnt[0] = ((unsigned long *)&_dl_linux_resolve)[0]; lpnt[1] = ((unsigned long *)&_dl_linux_resolve)[1]; lpnt[2] = (unsigned long) tpnt; }; } # 922 "ldso/ldso/dl-elf.c" do {} while (0); do {} while (0); do {} while (0) ; _dl_munmap(header, _dl_pagesize); return tpnt; } int _dl_fixup(struct dyn_elf *rpnt, struct r_scope_elem *scope, int now_flag) { int goof = 0; struct elf_resolve *tpnt; Elf32_Word reloc_size, relative_count; Elf32_Addr reloc_addr; if (rpnt->next) goof = _dl_fixup(rpnt->next, scope, now_flag); if (goof) return goof; tpnt = rpnt->dyn; if (!(tpnt->init_flag & 0x000001)) do {} while (0); if (__builtin_expect((!!(tpnt->dynamic_info[7])),0)) { do {} while (0) ; goof++; return goof; } reloc_size = tpnt->dynamic_info[18]; reloc_size -= tpnt->dynamic_info [2]; if (tpnt->dynamic_info[17] && !(tpnt->init_flag & 0x000001)) { reloc_addr = tpnt->dynamic_info[17]; relative_count = tpnt->dynamic_info[((34 + (1 + 0 + 0) + 0) - (1 + 0 + 0) - 0)]; if (relative_count) { reloc_size -= relative_count * sizeof(Elf32_Rel); elf_machine_relative(tpnt->loadaddr, reloc_addr, relative_count); reloc_addr += relative_count * sizeof(Elf32_Rel); } goof += _dl_parse_relocation_information(rpnt, scope, reloc_addr, reloc_size); tpnt->init_flag |= 0x000001; } if (tpnt->dynamic_info[24]) now_flag = 0x00002; if (tpnt->dynamic_info[23] && (!(tpnt->init_flag & 0x000002) || (now_flag && !(tpnt->rtld_flags & now_flag)))) { tpnt->rtld_flags |= now_flag; if (!(tpnt->rtld_flags & 0x00002)) { _dl_parse_lazy_relocation_information(rpnt, tpnt->dynamic_info[23], tpnt->dynamic_info [2]); } else { goof += _dl_parse_relocation_information(rpnt, scope, tpnt->dynamic_info[23], tpnt->dynamic_info[2]); } tpnt->init_flag |= 0x000002; } # 1006 "ldso/ldso/dl-elf.c" return goof; } void _dl_dprintf(int fd, const char *fmt, ...) { int num; va_list args; char *start, *ptr, *string; char *buf; if (!fmt) return; buf = _dl_mmap((void *) 0, _dl_pagesize, 0x1 | 0x2, 0x02 | 0x20, -1, 0); if ((((void *)buf) == ((void *) -1))) { _dl_write(fd, "mmap of a spare page failed!\n", 29); _dl_exit(20); } start = ptr = buf; if (_dl_strlen(fmt) >= (_dl_pagesize - 1)) { _dl_write(fd, "overflow\n", 11); _dl_exit(20); } _dl_strcpy(buf, fmt); __builtin_va_start(args,fmt); while (start) { while (*ptr != '%' && *ptr) { ptr++; } if (*ptr == '%') { *ptr++ = '\0'; _dl_write(fd, start, _dl_strlen(start)); switch (*ptr++) { case 's': string = __builtin_va_arg(args,char *); if (!string) _dl_write(fd, "(null)", 6); else _dl_write(fd, string, _dl_strlen(string)); break; case 'i': case 'd': { char tmp[22]; num = __builtin_va_arg(args,int); string = _dl_simple_ltoa(tmp, num); _dl_write(fd, string, _dl_strlen(string)); break; } case 'x': case 'X': { char tmp[22]; num = __builtin_va_arg(args,int); string = _dl_simple_ltoahex(tmp, num); _dl_write(fd, string, _dl_strlen(string)); break; } default: _dl_write(fd, "(null)", 6); break; } start = ptr; } else { _dl_write(fd, start, _dl_strlen(start)); start = ((void *)0); } } _dl_munmap(buf, _dl_pagesize); return; } char *_dl_strdup(const char *string) { char *retval; int len; len = _dl_strlen(string); retval = _dl_malloc(len + 1); _dl_strcpy(retval, string); return retval; } unsigned int _dl_parse_dynamic_info(Elf32_Dyn *dpnt, unsigned long dynamic_info[], void *debug_addr, struct elf32_fdpic_loadaddr load_off) { return __dl_parse_dynamic_info(dpnt, dynamic_info, debug_addr, load_off); } # 1432 "ldso/ldso/ldso.c" 2