X-Git-Url: https://git.wh0rd.org/?p=ICEs.git;a=blobdiff_plain;f=bfin-text-sect-attrs%2Fldso.i.0;fp=bfin-text-sect-attrs%2Fldso.i.0;h=a0a085fe7f57d653250106f1603e2f69b8a1596e;hp=0000000000000000000000000000000000000000;hb=bd3239d2bbe0de3a200b266503e3330b1e391489;hpb=dbff64cb4b7530861c2309c794efdd4e0cf47a23 diff --git a/bfin-text-sect-attrs/ldso.i.0 b/bfin-text-sect-attrs/ldso.i.0 new file mode 100644 index 0000000..a0a085f --- /dev/null +++ b/bfin-text-sect-attrs/ldso.i.0 @@ -0,0 +1,12681 @@ +# 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